其他
需要计算资金时间价值(现值、终值、NPV、IRR、贷款月供…
当用户询问折现现金流、年金/永续年金估值、不同时点投资比较、房贷摊销表、项目是否值得做、或求解使现金流相等的利率时,用这套公式与步骤完成计算。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 47/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 50/100 ×0.15
适用场景
需要计算资金时间价值(现值、终值、NPV通用
解决思路
- 计算终值:FV = PV × (1 + r)^n,其中 n 为期数、r 为每期利率。
- 计算现值:PV = FV / (1 + r)^n,这是所有估值的基础。
- 处理离散复利:FV = PV × (1 + r_nom/m)^(m×t),其中 m 为每年复利次数(年 1、半年 2、季 4、月 12、日 365)。
- 处理连续复利:FV = PV × e^(r×t)。
- 计算有效年利率 EAR = (1 + r_nom/m)^m - 1;连续复利时 EAR = e^(r_nom) - 1,用于跨复利频率比较利率。
- 计算普通年金现值:PV = PMT × [1 - (1 + r)^(-n)] / r;终值:FV = PMT × [(1 + r)^n - 1] / r。
- 计算期初年金(annuity due):在普通年金结果上乘以 (1 + r),因为每笔现金流提前一期。
- 计算增长年金现值:PV = PMT/(r - g) × [1 - ((1 + g)/(1 + r))^n],要求 g ≠ r。
- 计算永续年金现值:PV = PMT / r。
- 计算增长永续年金现值:PV = PMT / (r - g),要求 g < r;用于 Gordon 增长模型。
- 计算净现值 NPV = Σ CF_t / (1 + r)^t,t 从 0 到 T;CF_0 通常为负的初始投资,NPV 为正表示创造价值。
- 计算 IRR:数值求解使 Σ CF_t / (1 + r)^t = 0 的 r(用 Newton-Raphson 或二分法);常规现金流(仅一次符号变化)存在唯一 IRR。
- 构建摊销表:每期利息 = 上期余额 × r;每期本金 = PMT - 利息;剩余余额 = 上期余额 - 本金;利息占比逐期下降、本金占比逐期上升。
- 示例1(房贷月供):30 万美元、年利率 6.5%、30 年、按月还款,先算 r_monthly = 0.065/12 = 0.00541667、n = 360,再解 300000 = PMT × [1 - (1.00541667)^(-360)] / 0.00541667,得 PMT = $1,896.20;总还款 $682,632,总利息 $382,632。
- 示例2(NPV):初始投资 $50,000,第1-5年现金流 $12,000/$15,000/$18,000/$22,000/$25,000,折现率 10%;逐笔折现后求和得 NPV = +$17,378.78,项目应接受;该现金流 IRR 约为 21.18%,高于 10% 门槛。
- 运行脚本:uv run scripts/time_value_of_money.py(PEP 723 内联元数据,仅用标准库),或 python3 scripts/time_value_of_money.py;裸调用或 --verify 会打印所有方法演示并断言上述示例值(月供 $1,896.20、NPV $17,378.78、IRR 21.18%),不匹配则非零退出;--help 列出可用方法;程序化使用改为导入:from time_value_of_money import TimeValueOfMoney, AmortizationSchedule,再调用 TimeValueOfMoney.npv(...) 等。
- 避免利率与期数频率不匹配:按月还款必须用月利率,将年名义利率除以 12,而不是对 (1 + 年利率) 开 12 次方(除非从 EAR 转换)。
- IRR 现金流符号约定要一致:投资为负、回报为正(或反之),符号错误会得到无意义的 IRR。
- 区分名义利率与有效利率:12% 名义利率按月复利对应 EAR 12.68%,不是 12%,务必明确复利基准。
- 期初年金与普通年金不要差一期:期初年金所有支付提前一期,忘记乘 (1 + r) 会低估期初年金价值。
- 非传统现金流可能出现多个 IRR:现金流符号变化超过一次时,正实数 IRR 解最多等于符号变化次数;此时改用 NPV 剖面或修正 IRR(MIRR)。
适用边界 · 注意事项
- 投资组合的资金加权收益率(投资者申购/赎回的 dollar-weighted IRR)应使用 return-calculations,而不是本技能。
- 现金流符号变化超过一次时不要直接采用 IRR,应改用 NPV 剖面或 MIRR。
- 不要混用名义利率与有效利率,也不要在月供计算中直接使用年利率而不转换为月利率。