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许可证发布。

脚注

  1. 尽管库使用资产融资术语,但它同样可以解决投资类场景中的问题。
  2. 现金流图是金融交易时间和方向的图形表示。图中以水平线表示合同期限,垂直箭头表示资金流动方向。

更多关于Flutter金融计算器插件库curo的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter金融计算器插件库curo的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter 插件 Curo是一个用于执行简单到高级分期信用金融计算的功能丰富的库。它能够解决固定期限分期信贷产品中的未知现金流值和隐含利率,例如租赁、贷款和分期付款合同。该库移植自curo-calculator TypeScript仓库,并进行了少量重构和代码重组。

回到顶部