回饋 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)`
雖然這不是解決這個問題的最佳方法,但我知道你們最終可以找到最好的方法。希望這些信息對你們有所幫助。
謝謝。