banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

RQAlpha BUG 问题#219

回复 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)`

虽然这不是解决问题的最佳方法,但我知道你最终可以找到最好的方法。希望这些信息对你有所帮助。

谢谢。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。