VeighNa量化社区
你的开源社区量化交易平台
Member
加入于:
帖子: 10
声望: 1

按照这里的例子https://github.com/vnpy/vnpy/blob/master/examples/cta_backtesting/portfolio_backtesting.ipynb 多个合约回测

dfp = df1 + df2
dfp = dfp.dropna()
dfp.to_csv("df.csv")
show_portafolio(dfp)

这里有个问题 比如我测试000858.SZSE,600918.SSE这两个合约,从2020-01-01到2021-01-01,由于600918.SSE这支股票2020年6月份才上市,所以6月份以前是没有行情数据的,所以执行到dfp=df1+df2的时候,最终的结果dfp里000858.SZSE 6月份以前的数据都没有了,这是因为两个df的索引不一致导致的,请问有什么解决办法?

Member
avatar
加入于:
帖子: 126
声望: 14

这属于pandas科学计算的范畴了。

先df对齐。

indexs = list(set(df1.index.tolist() + df2.index.tolist()))
df1 = df1.reindex(indexs)
df2 = df2.reindex(indexs)
Member
加入于:
帖子: 10
声望: 1

kingmo888 wrote:

这属于pandas科学计算的范畴了。

先df对齐。

indexs = list(set(df1.index.tolist() + df2.index.tolist()))
df1 = df1.reindex(indexs)
df2 = df2.reindex(indexs)

这个貌似还是不行哦。。。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】