我写了一些代码来计算内部收益率,结果很好。。。在import scipy.optimize as optimize

import datetime

def npv(cf, rate=0.1):

if len(cf) >= 2:

first_date = min([x[0] for x in cf])

dcf = [x[1] * (1 /

((1 + rate) ** ((x[0] - first_date).days / 365))) for x in cf]

return sum(dcf)

elif len(cf) == 1:

return cf[0][1]

else:

return 0

def irr(cf):

f = lambda x: npv(cf, rate=x)

r = optimize.newton(f, 0, maxiter=70)

return r

…但当我尝试这种现金流时

^{pr2}$

我得到这个错误:File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 503, in getIRR

return irr(cf)

File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 37, in irr

r = optimize.newton(f, 0, maxiter=70)

File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/optimize/zeros.py", line 204, in newton

q1 = func(p1, *args)

File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 36, in

f = lambda x: npv(cf, rate=x)

File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 27, in npv

((1 + rate) ** ((x[0] - first_date).days / 365))) for x in cf]

File "/Users/maxim/Dropbox/Python/FinProject/fintrack/main/models.py", line 27, in

((1 + rate) ** ((x[0] - first_date).days / 365))) for x in cf]

OverflowError: complex exponentiation

[30/Nov/2018 21:28:36] "GET /inv/19/ HTTP/1.1" 500 299065

但是我知道正确答案是-38.912….%我是通过Excel得到这个结果的。

这里怎么了?用Excel的其他函数得到相同的结果。。。我应该使用其他函数来查找参数吗?在

注:以下是迭代的参数和结果列表(财务中的OMG复数%—):rate= 0.0 result= -46148.94

rate= 0.0001 result= -46151.281226688276

rate= -1.9711435988300456 result= (-54972.27265283515-4141.40178622848j)

rate= (8.450859228811169-3.967580022971747j) result= (-51089.96465099011+0.07614432462298902j)

rate= (46.548868303534285-96.82120737804672j) result= (-51089.93999938349-9.638432563347345e-07j)

rate= (63880696.05472335+4880892.707757121j) result= (-51089.94-1.7420169038104924e-34j)

rate= (-1.3534185437764045e+18-2.52038641964956e+18j) result= (-51089.94-5.721141417411886e-85j)

rate= (-7.391799165398238e+56+3.969311207511089e+56j) result= (-51089.94+9.185514002355334e-269j)

rate= (3.5446051170119047e+145+6.600895665730368e+145j) result= ERROR!!!

python npv 计算公式_Python中IRR的计算相关推荐

  1. python npv 计算公式_Python numpy 中常用的数据运算

    Numpy 精通面向数组编程和思维方式是成为Python科学计算大牛的一大关键步骤.--<利用Python进行数据分析> Numpy(Numerical Python)是Python科学计 ...

  2. python npv 计算公式_Python for NPV and IRR

    计算NPV和IRR,可以直接调用numpy或是numpy-financial模块的npv()和irr()函数,具体请移步https://www.jianshu.com/p/91b0ee7a98c8 . ...

  3. python npv 计算公式_python – IRR实现中使用的数值方法是什么?

    ActiveState Recipes站点具有在Python中实现 Internal Rate of Return的功能: def irr(cashflows,iterations=100): &qu ...

  4. python npv 计算公式_python数据分析进阶之路(二)----Numpy进阶

    简单应用 矩阵创建及运算 1.手动创建矩阵 np.mat('str') 利用mat('字符串')函数创建矩阵,其中字符串的 表示中,矩阵的行与行之间用分号隔开,行内的元素之间用空格隔开. b = np ...

  5. python 数据结构包_python 中numpy科学计算工具包——基础数据结构

    认识numpy基础数据结构 # 认识数组 ar = np.array([[1,2,3,4,5],[6,7,8,9,10]]) br = [[1,2,3,4,5],[6,7,8,9,10]] print ...

  6. python数字计算公式_Python中数字以及算数运算符的相关使用

    Python数字 数字数据类型用于存储数值. 他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象. 当你指定一个值时,Number对象就会被创建: var1 = 1 var2 = 1 ...

  7. python基本统计量_Python中简单统计量的计算

    本篇文章给大家带来的内容是关于Python中简单统计量的计算,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.这些操作都要确保已经在电脑中安装好了Anaconda集成库,如果安装好 ...

  8. python map用法_Python中ChainMap的一种实用用法

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 简而言之ChainMap:将多个字典视为一个,解锁Python超能力. Python标准库中的集合模块包含 ...

  9. python数字计算公式_python数的运算

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 什么是运算符? 本章节主要说明python的运算符. 举个简单的例子4 +5 = ...

  10. python power函数_python中pow函数的用法_python中pow函数用法及功能说明

    幂运算是高更数学的应用学科,是一种关于幂的数学运算.同底数幂相乘,底数不变,指数相加.同底数幂相除,底数不变,指数相减.幂的乘方,底数不变,指数相乘.适用于精确计算领域. 计算机作为精确计算的一种方式 ...

最新文章

  1. 【权值分块】bzoj1503 [NOI2004]郁闷的出纳员
  2. java B2B2C Springboot仿淘宝电子商城系统-负载均衡之ribbon+feign
  3. 从CSDN的趣味题学PYTHON
  4. 【mycat】读写分离
  5. python内积 卷积
  6. C++:顺序表的基本操作(待完善)
  7. utils C/C++的常用工具类
  8. sqlserver迁移数据到mysql_SQLServer数据库之将ABP的数据库从SQLSERVER迁移到MySql
  9. php 置cookie,另:(Cookie.php)cookie操作
  10. 新产品Wyn Enterprise 详解,立即预约公开课
  11. 智能门禁考勤机:刷脸同时开门和打卡
  12. java gui 保存文件_用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开操作...
  13. 免费下载遥感数据的网址
  14. 电脑记事本中文都乱码了解决方法
  15. it试用评估_it员工转正自我评价
  16. erp软件的优点和用途
  17. 这个夏天,飞到北纬18°去玩海——带着小样儿去三亚(二)
  18. 总结移动开发入行十周年
  19. (轉貼) 千頭萬緒 : 學習多執行緒程式設計的好書 (.NET) (Java)
  20. GSR2501国产2.4G PA替代RFX2401C,AT2401C,RT201

热门文章

  1. 关于城市旅游的HTML网页设计 HTML+CSS+JS学生旅游网页设计与实现
  2. 2020.12.28Excel(数字到BZZ)
  3. $('xx')[0].files[0]的意思
  4. 很多网友问那个磁力搜索站好用,就由本君说说吧!
  5. Yii使用 case when 来模糊排序查询
  6. DHT11修改stm32引脚的笔记
  7. oracle同义词很慢,通过问题长知识----ORACLE同义词
  8. CTF 每日一题 Day39 达芬奇密码
  9. 几行代码教你轻松瓜分双十一20亿红包
  10. echarts柱状图显示百分比