回复 https://github.com/ricequant/rqalpha/issues/219
你好,RQAlpha 团队
RQAlpha 是一个非常有效的价格回测工具。
当我使用命令 `# rqalpha plot someresult.pkl` 绘制我的回测结果时,我发现了一些问题。它只显示了一个空白窗口。我尝试解决这个问题,并发现了一些有趣的东西。
在 `rqalpha/rqalpha/mod/rqalpha_mod_sys_analyser/plot.py` 的第 52-53 行
portfolio = result_dict["portfolio"]
benchmark_portfolio = result_dict.get("benchmark_portfolio")
print portfolio.index
print benchmark_portfolio.index
通过打印 portfolio.index 和 benchmark_portfolio.index,我发现了一个不合理的差异。
![图片](https://user-images.githubusercontent.com/4476941/33165321-59a13c02-d071-11e7-80e1-b41a5fbdd6db.png)
根据 https://github.com/pandas-dev/pandas/issues/8614 的说法,当使用 pandas > 0.15 创建 DatetimeIndex 时,matplotlib 无法绘图。
我找到了一个临时解决办法,最终绘图功能正常工作。
使用 `index.to_pydatetime ()` 将 `DatetimeIndex` 类型的索引显式转换为 Python 的 `Datetime` 类型。
例如:修改 `rqalpha/rqalpha/mod/rqalpha_mod_sys_analyser/plot.py` 的第 152 行 `ax.plot (portfolio ["unit_net_value"] - 1.0, label=_(u"strategy"), alpha=1, linewidth=2, color=red)` 为 `ax.plot (index.to_pydatetime (),portfolio ["unit_net_value"] - 1.0, label=_(u"strategy"), alpha=1, linewidth=2, color=red)`
虽然这不是解决问题的最佳方法,但我知道你最终可以找到最好的方法。希望这些信息对你有所帮助。
谢谢。