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

量化自学 - 金融理论与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%:

在这里插入图片描述

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


http://www.kler.cn/a/558455.html

相关文章:

  • 智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践
  • 【Python爬虫(42)】分布式爬虫:规模扩展与稳健维护之道
  • vue组件,父子通信,路由,异步请求后台接口,跨域
  • Spring Boot 中事务的用法详解
  • 【操作幂等和数据一致性】保障业务在MySQL和COS对象存储的一致
  • 乐享数科:供应链金融—三个不同阶段的融资模式
  • Oracle 深入理解Lock和Latch ,解析访问数据块全流程
  • 内外网文件传输 安全、可控、便捷的跨网数据传输方案
  • MySQL 选择数据库
  • 【部署优化篇三】《DeepSeek边缘计算实战:把目标检测模型塞进树莓派,让AI在巴掌大的设备上“开天眼“》
  • CASAIM与韩国DOOSAN集团达成合作,开启工业制造自动化检测新篇
  • 网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
  • Python 数据结构与实践深度剖析
  • 【HeadFirst系列之HeadFirstJava】第4天之理解对象的行为:方法操作实例变量
  • 3<4>2【Python链式对比,也叫连续比较】
  • Missing required prop: “maxlength“
  • C#上位机--进程和线程的区别
  • 解决Excel文件格式损坏问题:如何通过程序读取并复制内容
  • LLaMA-Factory|微调大语言模型初探索(4),64G显存微调13b模型
  • vue 识别 <think></think>