SuperAPI AI 工具集

time-value-of-money

数据与分析

查看项目

更新于 10-15 14:57

技能介绍

用途

该技能用于处理货币时间价值(Time Value of Money)相关的金融计算,帮助评估项目、贷款与投资在考虑利率与时间因素后的真实价值。它把常见的金融数学公式整理为可复用的方法,并提供 Python 脚本实现。

主要能力

技能覆盖以下核心概念与计算:

  • 终值(FV)与现值(PV):单笔资金按利率 r 复利 n 期后的价值,或未来资金折现到当前的价值。
  • 复利惯例:支持离散复利(每年 m 次)与连续复利,并提供有效年利率(EAR)计算。常见频率包括年度、半年、季度、月度、每日与连续。
  • 年金:普通年金(期末支付)与期初年金(Annuity Due)的现值与终值。
  • 增长年金:每期按固定增长率 g 增长的有限期支付流的现值。
  • 永续年金与增长永续年金:无限期等额支付或按固定增长率增长的支付流的现值,后者即戈登增长模型(Gordon Growth Model)。
  • 净现值(NPV):对一系列现金流按折现率折现并求和,用于判断项目是否创造价值。
  • 内部收益率(IRR):使 NPV 为零的折现率,通常通过数值方法(牛顿-拉夫森或二分法)求解。
  • 摊销:将每期还款拆分为利息与本金部分,并跟踪剩余余额,生成摊销计划。

使用方式

技能提供脚本 scripts/time_value_of_money.py,其中 TimeValueOfMoney 类以静态方法实现上述公式,包括 present_value、future_value、npv、irr、annuity_pv、annuity_fv、growing_annuity_pv、perpetuity_pv、fisher_rate、continuous_compounding,另有 AmortizationSchedule 类用于摊销计划。

运行方式:

  • uv run scripts/time_value_of_money.py(使用 PEP 723 内联元数据,仅依赖标准库,无第三方依赖)
  • 或 python3 scripts/time_value_of_money.py

直接运行(或使用 --verify)会打印所有方法的演示,并断言示例中的数值(示例 1 月供 = $1,896.20;示例 2 NPV = $17,378.78,IRR = 21.18%),若不一致则以非零状态退出。--help 列出可用方法及导入用法。

若用于程序化调用,建议导入而非运行:from time_value_of_money import TimeValueOfMoney, AmortizationSchedule,然后调用如 TimeValueOfMoney.npv(...)。

适用场景

  • 项目投资评估:计算 NPV 与 IRR,判断是否达到要求回报率。
  • 贷款测算:计算月供、总利息与摊销计划。
  • 年金估值:租赁、租金、保险等期初或期末支付流的估值。
  • 权益估值:多阶段股利折现模型、增长年金与永续年金。
  • 薪酬与养老金预测:增长年金用于工资流或养老金流。

限制与注意事项

  • 利率与支付周期必须匹配:若按月支付,折现率应为月利率,不能直接使用年利率。
  • 现金流符号约定需一致:投资为负、回报为正(或相反),否则 IRR 结果无意义。
  • 名义利率与有效利率需区分:例如 12% 名义利率按月复利,其 EAR 为 12.68%。
  • 期初年金与普通年金存在一期差异,期初年金需乘以 (1 + r) 调整。
  • 非传统现金流(符号变化多次)可能产生多个 IRR,此时建议使用 NPV 剖面或修正内部收益率(MIRR)。
  • 脚本仅依赖标准库,未提供第三方依赖或图形界面;具体平台兼容性暂未提供。

交叉引用

  • return-calculations(核心插件):CAGR 是复合增长的特例;投资组合 MWR 使用相同的 NPV=0 框架。
  • statistics-fundamentals(核心插件):折现率估计常依赖回归(CAPM beta)与分布假设。