当前位置: 首页 > news >正文

量化自学 - 金融理论与python - Net Present Value 净现值

净现值(Net Present Value,NPV)是金融理论中用于评估投资项目价值的指标。其核心思想是将未来现金流按一定贴现率折算为当前价值,并减去初始投资成本。若NPV为正,表明项目预期收益高于成本,具有投资价值;反之则可能不值得投资。

NPV公式

在这里插入图片描述

其中:

  • (C_t) 是第 (t) 期的现金流(初始投资 (C_0) 通常为负值)。
  • (r) 是贴现率。
  • (t) 是时间周期。

Python实现方法

方法1:纯Python实现

通过遍历现金流列表,逐项计算现值并累加。

def calculate_npv(rate, cash_flows):
    npv = 0.0
    for t, cf in enumerate(cash_flows):
        npv += cf / (1 + rate)**t
    return npv

# 示例
cash_flows = [-100, 50, 60, 70]  # 初始投资-100,后续三年现金流
discount_rate = 0.1  # 贴现率10%
result = calculate_npv(discount_rate, cash_flows)
print(f"NPV: {result:.2f}")  # 输出: NPV: 47.63
方法2:使用NumPy库

NumPy提供npv函数,但需注意其假设现金流从 (t=1) 开始,因此需单独处理初始投资。

import numpy as np

cash_flows = [-100, 50, 60, 70]
discount_rate = 0.1

# numpy.npv的现金流从t=1开始,需手动加上t=0的现金流
npv_numpy = cash_flows[0] + np.npv(discount_rate, cash_flows[1:])
print(f"NPV (NumPy): {npv_numpy:.2f}")  # 输出: NPV (NumPy): 47.63

注意事项

  • 时间对齐:确保现金流列表的第一个元素对应 (t=0)(即初始投资)。
  • 贴现率范围:贴现率应大于-1(避免分母为零或负数)。
  • 结果解读:NPV > 0 表示项目可行,NPV < 0 则可能拒绝。

示例验证

对于现金流 [-100, 50, 60, 70] 和贴现率10%:

在这里插入图片描述

计算结果与代码输出一致,验证正确性。

相关文章:

  • Linux arm64 IOMMU总结
  • 【产品小白】B端产品系统从需求到落地
  • 前端对话框项目 react如何实时接收,Node.js 服务端转发Coze API响应结果详解
  • deepin 下安装nvm(npm+node)
  • 【LeetCode】LCR 139. 训练计划 I
  • SAP-工单技术性关闭操作手册
  • 【STM32学习】标准库实现STM32 ADC采集1路、2路、多路
  • JWT 令牌
  • top命令显示iowait (wa)非常高时怎么排查
  • 环境变量2
  • C# 背景 透明 抗锯齿 (效果很不错)
  • 清华大学DeepSeek最新研究报告《DeepSeek与AI幻觉》【附下载链接】
  • C++二叉树:数据的“家族树”与高效检索的奥秘
  • python subprocess库
  • 阿里云上的网站配置HTTPS
  • Ansys EMC Plus:HIRF 与飞机耦合演示
  • qsort介绍与实现
  • 【Python 学习 / 7】模块与文件操作
  • 一键部署开源DeepSeek并集成到钉钉
  • Python常见面试题的详解14
  • 地下5300米开辟“人造气路”,我国页岩气井垂深纪录再刷新
  • 某博主遭勒索后自杀系自导自演,成都警方立案调查
  • 金价大跌!足金饰品每克一夜便宜14元,涨势是否已终结?
  • 淡马锡辟谣:淡马锡和太白投资未在中国销售任何投资产品或金融工具
  • 中方发布会:中美经贸高层会谈取得了实质性进展,达成了重要共识
  • 可量产9MWh超大容量储能系统亮相慕尼黑,宁德时代:大储技术迈入新时代