年return转换函数returns复值
Annual return conversion function returns complex value
我正在编写一个 Python 函数,将复合 return 利率转换为年化利率:
annual_rate = ((1 + ((1 + compound_rate) ** (1 / nb_days) - 1)) ** 365 - 1)
这个很好用
compound_rate = 0.1
nb_days = 100
>>0.41606536550485806
但在某些情况下,复数是 returned
compound_rate = -1.8536
nb_days = 362
>>(-1.852192062046392-0.022192088919279443j)
这是一个真实的例子:
如果我有按以下方式支付的押金table:
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 英镑。
如果我从那里应用我的公式,一个复数是 returned(见上面的第二个例子)。
这里有什么我没看到的吗?毫不夸张地说,这个结果对我来说并不真实。
这可能是您要找的:
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 函数,将复合 return 利率转换为年化利率:
annual_rate = ((1 + ((1 + compound_rate) ** (1 / nb_days) - 1)) ** 365 - 1)
这个很好用
compound_rate = 0.1
nb_days = 100
>>0.41606536550485806
但在某些情况下,复数是 returned
compound_rate = -1.8536
nb_days = 362
>>(-1.852192062046392-0.022192088919279443j)
这是一个真实的例子:
如果我有按以下方式支付的押金table:
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 英镑。
如果我从那里应用我的公式,一个复数是 returned(见上面的第二个例子)。
这里有什么我没看到的吗?毫不夸张地说,这个结果对我来说并不真实。
这可能是您要找的:
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