我试图将返回转换为价格指数,以模拟ffn库的收盘价,但没有成功。
import pandas as pd
times = pd.to_datetime(pd.Series(['2014-07-4',
'2014-07-15','2014-08-25','2014-08-25','2014-09-10','2014-09-15']))
strategypercentage = [0.01, 0.02, -0.03, 0.04,0.5,-0.3]
df = pd.DataFrame({'llt_return': strategypercentage}, index=times)
df['llt_close']=1
df['llt_close']=df['llt_close'].shift(1)*(1+df['llt_return'])
df.head(10)
llt_return llt_close
2014-07-04 0.01 NaN
2014-07-15 0.02 1.02
2014-08-25 -0.03 0.97
2014-08-25 0.04 1.04
2014-09-10 0.50 1.50
2014-09-15 -0.30 0.70我怎么才能把这件事纠正过来?
发布于 2018-03-18 23:20:50
您可以使用return-relatives.的累积积。
回归亲属是一天的回报。
>>> start = 1.0
>>> df['llt_close'] = start * (1 + df['llt_return']).cumprod()
>>> df
llt_return llt_close
2014-07-04 0.01 1.0100
2014-07-15 0.02 1.0302
2014-08-25 -0.03 0.9993
2014-08-25 0.04 1.0393
2014-09-10 0.50 1.5589
2014-09-15 -0.30 1.0912这假设价格指数在2014-07-04交易日结束时从start开始。
在7-04年,回报率为1%,价格指数收于1* (1 + .01) = 1.01。
在7-15日,回报率为2%,收盘价为1.01 * (1 + .02) = 1.0302.
当然,这是不完全现实的,因为你正在形成一个基于不规则频率数据的价格索引(缺失日期),但希望这能回答你的问题。
https://stackoverflow.com/questions/49352551
复制相似问题