在回測(cè)系統(tǒng)中有非常重要且相對(duì)獨(dú)立的一塊,那就是數(shù)據(jù)的可視化??梢暬軌蜃尣呗匝芯空叻浅V庇^地看到策略地效果,并且快速形成一篇漂亮的回測(cè)報(bào)告。
在量化回測(cè)系統(tǒng)中,可視化一般可以采用Python的Matplotlib包進(jìn)行實(shí)現(xiàn),Matplotlib包運(yùn)用靈活且不失嚴(yán)謹(jǐn),能夠十分方便地滿足可視化的需求。在本講中,我們將通過繪制股票走勢(shì)圖的小例子初步對(duì)Matplotlib進(jìn)行探索。
在Matplotlib中可以采取函數(shù)式的繪圖方法,該方式與Matlab類似。然而函數(shù)式的繪圖方法無論從效率還是功能上都不如面向?qū)ο蟮睦L圖方式,因此推薦大家采用面向?qū)ο蟮姆绞嚼L圖。
采用面向?qū)ο罄L圖首先從Figure對(duì)象開始,它代表整個(gè)圖像,是其他對(duì)象的根基。在一個(gè)Figure中,可以包含很多Axes對(duì)象,它們可以理解為獨(dú)立的子圖,擁有各自的繪圖(坐標(biāo))區(qū)域。每個(gè)ax對(duì)象擁有其他子對(duì)象,這些子對(duì)象是圖形的組成要素,如Title(標(biāo)題),Axis(坐標(biāo)軸),Label(坐標(biāo)軸標(biāo)注),Tick(刻度線)。
以上這些對(duì)象的含義和隸屬關(guān)系可以通過以下兩幅圖來清楚地顯示:
(以上圖片來自Vamei's cnblog)
下面我們來看一個(gè)小例子討論如何繪制股票走勢(shì)圖。在回測(cè)系統(tǒng)中,常常也需要繪制策略的收益曲線圖、賬戶資金的變化曲線圖等等,它們的繪制方法都大同小異。
導(dǎo)入相關(guān)繪圖模塊
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
準(zhǔn)備繪圖相關(guān)數(shù)據(jù)
import tushare as ts
bars = ts.get_h_data('002337', start='2015-01-01', end='2015-03-16')
生成Figure和Axis對(duì)象
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
add_subplot是增加子圖的方法,其用法與Matlab中的subplot類似。
plot方法操控子圖繪圖
ax1.plot(bars.index,bars['close'])
設(shè)置x軸的刻度以及格式
ax1.xaxis.set_major_locator(mdates.DayLocator(bymonthday=range(1,32), interval=4))
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
將ticker標(biāo)簽旋轉(zhuǎn)
for label in ax1.xaxis.get_ticklabels():
label.set_rotation(45)
通過set_title設(shè)置子圖標(biāo)題
ax1.set_title('002337')
如果需要對(duì)于X和Y坐標(biāo)設(shè)置標(biāo)簽,可以采用set_xlabel和set_ylabel方法。
通過subplots_adjust方法對(duì)邊框進(jìn)行調(diào)整
plt.subplots_adjust(bottom=0.20, top=0.90)
通過以上的繪制,最終就可以得到股票的走勢(shì)圖啦?。?/span>
聯(lián)系客服