Flutter金融计算器插件库curo的使用
Flutter金融计算器插件库curo的使用
Curo简介
Curo是一个用于执行简单到高级分期信用金融计算的功能丰富的库。它能够解决固定期限分期信贷产品中的未知现金流值和隐含利率,例如租赁、贷款和分期付款合同。该库移植自curo-calculator TypeScript仓库,并进行了少量重构和代码重组。
更新日志
- 2024年12月:已开发了一个使用此库的Flutter应用程序,现在作为Web应用程序可用。目标是在解决所有问题后将其作为Android应用发布。为此,需要20名测试人员在Google Play上进行beta测试。如果您有兴趣帮忙,请联系我![curocalculator@gmail.com]
概述
这个金融计算器库旨在解决未知现金流值和隐含利率,适用于租赁、贷款和分期付款合同等固定期限分期信贷产品。它设计用于超出标准金融代数的应用需求。
更多功能介绍请参阅GitHub仓库中的示例和配套的现金流图,这些图以图形方式表示每个示例的现金流入和流出。
使用示例
示例1:使用solveValue(...)
查找未知现金流值
import 'package:curo/curo.dart';
Future<void> main() async {
// Step 1: Instantiate the calculator
final calculator = Calculator();
// Step 2: Define the advance, payment, and/or charge cash flow series
calculator.add(
SeriesAdvance(
label: 'Loan',
value: 10000.0,
),
);
calculator.add(
SeriesPayment(
numberOf: 6,
label: 'Instalment',
value: null, // leave undefined or null when it is the unknown to solve
mode: Mode.arrear,
),
);
// Step 3: Calculate the unknown cash flow value (result = 1707.00 to 2 decimal places)
final valueResult = await calculator.solveValue(
dayCount: const US30360(),
interestRate: 0.0825,
);
print('The unknown instalment value is: ${valueResult.toStringAsFixed(2)}');
}
示例2:使用solveRate(...)
查找隐含利率
import 'package:curo/curo.dart';
Future<void> main() async {
// Step 1: Instantiate the calculator
final calculator = Calculator();
// Step 2: Define the advance, payment, and/or charge cash flow series
calculator.add(
SeriesAdvance(
label: 'Loan',
value: 10000.0,
),
);
calculator.add(
SeriesPayment(
numberOf: 6,
label: 'Instalment',
value: 1707.00,
mode: Mode.arrear,
),
);
// Step 3: Calculate the IRR or Internal Rate of Return (result = 8.250040%)
final irrRate = await calculator.solveRate(
dayCount: const US30360(),
);
print('The IRR rate is: ${irrRate * 100}%');
// Step 4: Calculate the APR for regulated EU Consumer Credit agreements (result = 8.569257%)
final aprRate = await calculator.solveRate(
dayCount: const EU200848EC(),
);
print('The APR rate is: ${aprRate * 100}%');
}
日计数惯例(Day Count Conventions)
日计数惯例是每个金融计算的关键组成部分,它决定了用于测量系列中每次现金流之间时间间隔的方法。支持的主要日计数惯例包括:
常规 | 描述 |
---|---|
Actual ISDA | 根据闰年和非闰年的部分,实际天数之间的现金流日期,如文档所述。 |
Actual/360 | 实际天数之间的现金流日期,每年按360天计算,如文档所述。 |
Actual/365 | 实际天数之间的现金流日期,每年按365天计算,如文档所述。 |
EU 30/360 | 基于30天一个月,360天一年的现金流日期之间的天数,如文档所述。 |
EU 2008/48/EC | 基于现金流日期和初始提款日期之间的时间段,以天数和/或完整的周、月或年表示。专门用于欧盟消费者信贷协议中的APR(年百分率)计算,符合EU2008/49/EC指令,如文档所述。 |
US 30/360 | 基于30天一个月,360天一年的现金流日期之间的天数,如文档所述。这是Hewlett Packard HP12C和类似金融计算器默认使用的惯例,因此在不确定时选择此惯例。 |
US 30U/360 | 类似US 30/360,但在二月份处理28日和闰年的29日为30天。命名中的U表示统一,即每月30天均匀分布。 |
除了EU 2008/48/EC之外,所有惯例默认情况下都会根据相邻现金流的日期计算时间间隔。要覆盖此设置,使时间间隔参考首次提款日期(如XIRR计算),只需在相应的日计数惯例构造函数中传递useXirrMethod: true
。
安装
使用Dart安装
$ dart pub add curo
使用Flutter安装
$ flutter pub add curo
许可证
版权所有 © 2022 Andrew Murphy。根据MIT许可证发布。
脚注
- 尽管库使用资产融资术语,但它同样可以解决投资类场景中的问题。
- 现金流图是金融交易时间和方向的图形表示。图中以水平线表示合同期限,垂直箭头表示资金流动方向。
更多关于Flutter金融计算器插件库curo的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter金融计算器插件库curo的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
Flutter 插件 Curo是一个用于执行简单到高级分期信用金融计算的功能丰富的库。它能够解决固定期限分期信贷产品中的未知现金流值和隐含利率,例如租赁、贷款和分期付款合同。该库移植自curo-calculator TypeScript仓库,并进行了少量重构和代码重组。