引言:
邢不行的系列帖子“量化小講堂”,通過實際案例教初學(xué)者使用python進行量化投資,了解行業(yè)研究方向,希望能對大家有幫助。
【必讀文章】:《10年400倍策略分享-附視頻逐行講解代碼》
《EOS期現(xiàn)套利,一周時間,15%無風(fēng)險收益》
【歷史文章匯總】:http://xalimeijing.com/thread-3950124-1-1.html
微信個人號:xingbuxing0807,有問題歡迎交流
量化投資中,計算技術(shù)指標(biāo)時常見的8個坑(上)
這是邢不行第49 期量化小講堂的分享
“我自己計算的指標(biāo),跟同花順給出的指標(biāo)值差別很大,這是什么情況?”
“talib計算的指標(biāo)和很多主流平臺也不一樣……很好奇參數(shù)相同為何差別這么大?”
“有人算過macd指標(biāo)嗎?算出來和wind提供的數(shù)值相差有點多呀!
以上問題都來自我量化課程答疑群里的小伙伴。
我們在做量化交易的時候,經(jīng)常會自己編程計算一些技術(shù)指標(biāo)。計算完之后為了驗證準(zhǔn)確性,會和行情軟件上的數(shù)據(jù)進行對比,此時往往會發(fā)現(xiàn)有差別,就會產(chǎn)生以上的疑問。
那么這些差異,是什么原因造成的呢?我們應(yīng)該采用什么樣的應(yīng)對措施呢?本文就列舉了幾個常見錯誤,來幫大家避免這些問題。
01
股票價格是否復(fù)權(quán)
如果你是根據(jù)股票數(shù)據(jù)計算指標(biāo),第一點需要注意的是,你的股票數(shù)據(jù)是否經(jīng)過復(fù)權(quán)處理。
在股票市場里,因為分紅派息、拆股送股等原因,股價會發(fā)生異常變化。為了消除這些異常變化,大家往往會對股票數(shù)據(jù)進行復(fù)權(quán)處理。
以下是亨通光電這個股票的原始價格和復(fù)權(quán)之后的價格?梢钥闯觯紨(shù)據(jù)的K線圖中有一個巨大的缺口。
亨通光電原始數(shù)據(jù)
亨通光電復(fù)權(quán)后的數(shù)據(jù)
針對這樣的股票,我們在計算指標(biāo)的時候就要特別留意:我們自己使用的數(shù)據(jù)是否進行了復(fù)權(quán)。如果你的數(shù)據(jù)沒有復(fù)權(quán),而行情軟件使用的數(shù)據(jù)復(fù)權(quán)了,那么自然計算出來的技術(shù)指標(biāo)的結(jié)果是不一樣的。
02
復(fù)權(quán)方式不一樣
另外,即使你保證了你的數(shù)據(jù)和行情軟件一樣,都經(jīng)過了復(fù)權(quán)處理,但你還要注意:你們的復(fù)權(quán)方式是否一樣。
因為其實復(fù)權(quán)方式有不同的計算方法。舉個簡單的例子,股票分紅之后會進行扣稅,有的復(fù)權(quán)方法會計算扣稅,有的卻不會計算。
即使同樣是行情軟件,復(fù)權(quán)方法都會不一樣。以下是2019年2月28日貴州茅臺這個股票在通達(dá)信行情軟件和大智慧行情軟件的數(shù)據(jù)對比:
貴州茅臺在通達(dá)信行情軟件
貴州茅臺在大智慧行情軟件
從圖中我們可以看到,同樣的股票、同樣的日期、同樣的后復(fù)權(quán),但最后的數(shù)據(jù)卻不一樣。這其實就是兩個軟件計算復(fù)權(quán)的方式不一樣導(dǎo)致的。感興趣的可以扒扒它們的計算公式,或者加我微信xingbuxing0807交流。
所以我們要特別留意自己數(shù)據(jù)的復(fù)權(quán)方式。如果你的數(shù)據(jù)和行情軟件數(shù)據(jù)的復(fù)權(quán)方法不一樣,那最終計算出來的技術(shù)指標(biāo)肯定是有差別的。
03
股票數(shù)據(jù)開始時間是否一樣
除了復(fù)權(quán)之外,我們還要留意股票數(shù)據(jù)的完整性。
很多技術(shù)指標(biāo),即使用的數(shù)據(jù)一樣,但如果你開始計算指標(biāo)的時間不一樣,最終結(jié)果也會差很多。
比如當(dāng)你剛打開行情軟件的時候,由于網(wǎng)絡(luò)等原因可能導(dǎo)致股票數(shù)據(jù)加載不完全,它上面顯示的技術(shù)指標(biāo)可能是從6個月之前開始算的。
但是你自己的數(shù)據(jù)是從6年之前開始計算的,兩者的開始時間不一樣,這種情況就會造成某些技術(shù)指標(biāo)的結(jié)果不一樣。
當(dāng)然也有可能是你自己數(shù)據(jù)比較短,只有最近一部分時間,這樣也會造成和行情軟件的不一致。
所以,當(dāng)自己計算的技術(shù)指標(biāo)與交易所顯示的不同,那我們要去注意一下兩者的數(shù)開始時間是否一致。
04
數(shù)字貨幣市場中交易所不一樣
之前講了股票,接下來講講數(shù)字貨幣。
首先是不要在不同的交易所之間比較技術(shù)指標(biāo)。
數(shù)字貨幣的交易所有幾千家。交易所之間的買賣交易是互相獨立的,因此它們的交易數(shù)據(jù)也是各自獨立存在而不相干的。
例如,以下兩幅圖是bitfinex交易所和okex交易所BTC/USDT交易對的K線數(shù)據(jù)對比。
bitfinex交易所
okex交易所
這兩幅圖對應(yīng)的時間段完全相同,仔細(xì)觀察會發(fā)現(xiàn),兩者價格走勢接近,但不是完全一樣的。所以基于此算出來的技術(shù)指標(biāo)肯定也不會完全一樣。
所以,我們在計算指標(biāo)的時候,千萬不要自己的數(shù)據(jù)是來自一家交易所的,但是卻對照著另外一家交易所的行情數(shù)據(jù)去對比計算出的技術(shù)指標(biāo),這肯定是不一樣的。
其他幾個坑,詳見下篇