python - 年化 yield 转换函数返回复数

标签 python python-3.x finance complex-numbers

我正在编写一个 Python 函数,将复合返回率转换为年化返回率:

annual_rate = ((1 + ((1 + compound_rate) ** (1 / nb_days) - 1)) ** 365 - 1)

这很好用

compound_rate = 0.1
nb_days = 100
>>0.41606536550485806

但在某些情况下,会返回一个复数

compound_rate = -1.8536
nb_days = 362
>>(-1.852192062046392-0.022192088919279443j)

这是一个真实的例子:

如果我有一个如下所示的付款存款表:

03/03/2018  £1000
03/04/2018  £1000
03/05/2018  £1000
03/06/2018  £1000
03/07/2018  £1000
03/08/2018  £1000
03/09/2018  £1000
03/10/2018  £1000
03/11/2018  £1000
03/12/2018  £1000
03/01/2019  £1000
03/02/2019  £1000

..如果我输光了所有的钱,到 2019 年 2 月底最后只有 100 英镑,我会投入 12000 英镑,在 362 天内损失 11900 英镑。

如果我从那里应用我的公式,将返回一个复数(参见上面的第二个示例)。

有什么我在这里没有看到的吗?毫不夸张地说,这个结果对我来说并不真实。

最佳答案

这可能是您正在寻找的:

import numpy as np
l = [-1000]*12
l.append(100)
print(l)
#[-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 100]
print(np.irr(l))
#-0.9090909090908827

关于python - 年化 yield 转换函数返回复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55184015/

相关文章:

python - PyQt5循环问题,只有QWebEngineView对象的最后一次迭代有效

python - 在 web2py 中查找用户正在使用的浏览器

python - 获取边的开始节​​点和结束节点 id,没有 map step() gremline for neptune

python - 无法将图像上传到Django项目,获取Form对象没有属性 'save'

javascript - Yahoo Ticker API 不再实时

finance - 对于金融部门的人员来说,数据存储问题

python - 绑定(bind)在销毁后保持事件状态

Python 一行 if 语句有两个 Action

python - 如何返回类型提示定义的类型

具有季节性的 Excel 时间序列预测