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 的說法,當 DatetimeIndex 由 pandas > 0.15 創建時,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)`

雖然這不是解決這個問題的最佳方法,但我知道你們最終可以找到最好的方法。希望這些信息對你們有所幫助。

謝謝。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。