從量化角度告訴你常見的技術指標到底能不能賺錢?
前言: 我們經常能聽到某些股票分析師,誇誇其談什麼均線多頭排列,雙均線金叉,KDJ 金叉,MACD 金叉,綜合判定當下 行情多頭強勢,正是我們買入賺錢的好時機,然後拿出某隻強勢上漲的股票例證:您看這隻股票的這一波大漲是不是 都出現我所說的買入訊號呢?
實際情況,當某隻股票行情走勢很好,出現類似指標金叉的訊號是很常見的現象。但是有時候某隻當日股票波動很大, 同樣出現指標金叉買入訊號,然而為什麼次日股價不漲反而轉跌呢?
那麼,到底這樣的訊號可靠性如何,正確率又怎麼樣呢?這裡,我們利用掘金量化交易平臺,基於歷史行情,市場資料, 對全市場股票進行模擬交易,根據技術指標訊號進行操作,驗證這些技術指標到底效果怎樣? 同時,我們會根據技術指標的計算方式,對其內在含義進行分析,引導大家去了解它的交易邏輯。
常見技術指標舉例
雙均線 雙均線策略是市面上經常見到的一種擇時操作,具體而言,就是比較長短兩個週期的均線,當短期均線突破長期均線的時候,我們認為短期趨勢向上,應該進場;當長期均線突破短期均線的時候,則認為短期趨勢向下, 應該出場等待 (針對國內股票) 或者賣空 (針對境外股票和期貨等支援賣空的品種)。
目前市場上流行的均線一般主要是兩種,一種是簡單的均線,即將過去一段時間內的價格計算簡單平均,之後 隨著新的資料過來,均線也會有新的值產生;但是這種簡單均線的計算方式,將過去一段時間的價格認為是等權重的,這會導致我們看到的均線相比股價變化,滯後太過嚴重,因此,有人提出了指數平滑移動平均線,將 離當前日期更近的價格賦予更大的權重,為了計算需要,我們假設,當日收盤價定義為 C_0, 之前第 n 日的收盤價定義為 C_n, 於是,我們就有如下公式:
除了簡單均線,指數平滑移動平均線,還有很多其他類的均線,包括累計移動平均線,加權移動平均線,指數加 權移動平均線等,具體計算公式和說明可以看 MovingAverage Wiki。
KDJ
KDJ 的計算方式具體分為以下幾個步驟:
1.隨機未成熟指標 (RSV) 的計算: (收盤價 - N_1 日最低價) / (N_1 日最高價 - N_1 日最低價) * 100;
2.K 值:RSV 值的 N_2 日移動平均;
3.D 值:K 值的 N_3 日移動平均;
4.J 值: 3×K-2×D;
其中, N_1 的取值一般為 9, N_2 與 N_3 的取值一般均為 3。
從計算方式,可以知道,最近 9 日的最高和最低形成了一個通道,最近一日的收盤價在這個通道內距離通道底側 (9 日最低價) 位置由 RSV 表示,因此,RSV 的 3 日平均表明了最近 3 日收盤價在通道內的平均位置,表明 短期收盤價的執行趨勢;
而 D 值作為 K 值的 3 日平均,則表明了收盤價的更長期的趨勢,因此,利用 KD 均 線的位置關係,我們可以去評判最近的趨勢執行方向。而 J 值的定義,一個比較容易的理解方式是,其表明了短期 短期趨勢力量的強弱,而且,因為對於 K 的權重設定為 3,對於 D 的權重設定為 2,可以認為 J 值對於短期 價格更為敏感。如果將 J 值具體展開,表示式為 (7R_0+5R_1+3R_2-4R_3-2R_4)/9, 可以看出 J 值會在 166.67 和 -66.67 之間波動,實際情況中,J 值經常會在 20 到 80 之間波動,如果價格不斷上行, 則 J 值會在大於 80 的區域執行;如果價格不斷下行,則 J 值不斷在 20 以下區域執行。
MACD
MACD 的計算方式具體分為以下幾個步驟:
•12 日 EMA 的計算:EMA12 = 前一日 EMA12 X 11/13 + 今日收盤 X 2/13; •26 日 EMA 的計算:EMA26 = 前一日 EMA26 X 25/27 + 今日收盤 X 2/27; •差離值(DIF)的計算:DIF = EMA12 - EMA26; •今日 DEA = (前一日 DEA X 8/10 + 今日 DIF X 2/10)用(DIF-DEA)*2 即為 MACD 柱狀圖。
從 MACD 計算公式進行分析:
•12 日和 26 日的 EMA 差值體現了短期 (12 日) 和長期 (26) 日的趨勢變化,即 DIF 的涵義,當 DIF 不斷 變大時,表明短期趨勢不斷向上;反之,則不斷向下;
•對 DIF 進行指數移動平均計算,則體現了趨勢的延續性,也就是 DEA 的含義,當用 DIF - DEA 的時候,表明當期趨勢相比一段時間內的趨勢的能量大小,因此,如果看到紅柱長度不斷萎縮,表明向上的力量越來越弱;反之, 則表示趨勢的力量很強。
技術指標回測與分析
最原始策略
基於以上技術指標的分析,我們很容易就形成簡單的股票買賣邏輯,譬如,雙均線金叉我們就買入,雙均線死叉 我們就賣出;KD 金叉就買入,KD 死叉就賣出;MACD 紅柱時買入持有,一旦 MACD 綠柱了,立刻賣出,那麼 這樣的交易邏輯是否合理,能否賺錢呢?
此時,回測技術的使用,能極大地幫助我們去對指標有效性合理性進行判斷和分析。這裡,我們使用掘金量化平 臺進行回測,回測週期為 2016 年 6 月 17 日到 2017 年 8 月 21 日。同時,為了避免出現針對某一支股票上應用技術指標回測而出現類似倖存者偏差的問題,我們分別對滬深 300 的成分股和中證 500 的成分 股分別進行了回測分析。收益曲線具體可以看下面 6 張圖。左邊從上往下,依次為雙均線策略,KD策略和MACD策略在滬深300成分股上的回測收益曲線;右邊3圖從上往下依次為雙均線,KD以及MACD策略在中證500成分股上的回測收益曲線。
技術指標到底有沒有效果?
從上面的結果,我們可以看到,有些指標有些效果,有些指標甚至有反面效果,那麼,是否技術指標就沒有用, 或者我們選擇的指標難道不對?
其實,我們可以從幾個方面去理解技術指標:首先,單指標而言,很多股票交易邏輯都跑不過滬深 300 的指數, 如果只是單純做投資,那不如直接去買滬深 300 的指數基金。但是,從歷史的滬深 300 走勢,我們也能看 出來,哪怕滬深 300 指數,都是有漲有跌的,如果去保證我們買入在低點,賣出在高點,這個也不是說隨機 就能做到的。我們投資的資金不是說能一直都保留不動的,中間可能會隨機要取出來,如果說不小心在指數處於 低點的時候賣出,而在指數高點的時候買入,未免不合時宜。因此,哪怕對於指數,我們也希望能夠去做 一些擇時操作,能夠去儘量追漲殺跌。
但是,從之前的回測結果看,單一的技術指標效果似乎很一般,是否說技術指標就沒有效果了呢?其實這時候, 我們可以返回過來看技術指標的內稟涵義,雙均線,包括 KD 均線,用到的技術都是看短期趨勢和長期趨勢 的比較,但是,兩者看的時間趨勢範圍是不同的,一個是 5,20 日的趨勢,一個是 9,3,3 形成的短, 長週期趨勢比較,而 MACD 不僅包含了另外的時間範圍內趨勢的變化,更是加入了趨勢變化強弱的概念, 對於這些從不同維度看待股票的技術指標,我們完全可以去做多個指標的結合,一方面從多個角度去確認 我們進場訊號的正確性,另一方面是去儘早找到應該離場的點在哪裡。
篇幅所限,筆者這裡簡單做了一個雙均線與指數MACD雙重訊號確認,出場結合 MACD 的策略,並將其應用到滬深 300 上, 回測效果如下圖所示。各位讀者如果感興趣,完全可以基於對技術指標的理解,去開發屬於自己的策略, 譬如,根據 MACD 量柱的長短,也就是趨勢力量的強弱去決定進出場,去根據 KDJ 中 J 值的含義, 去做關於 J 值的股票交易邏輯策略。
寫在最後 關於技術指標,市面上要不就批的很臭,要不就奉為圭臬,歸根結底,都是一葉障目,只看到了短期的某一支或某幾支股票,而某些股票大師又會去挑出符合他們說辭的股票走勢來試圖給他們的言論加上說服力。其實,如果投資者懂一些回測技術,利用歷史資料,去將自己的想法簡單實現,對於這些指標應該能有一些自己的判斷。
在本文,筆者之所以用滬深300的成分股和中證500的成分股去做指標的回測,目的就是為了避免只操作幾支股票,出現倖存者偏差,另一方面,通過更多投資標的的組合,也能將風險控制在一定範圍內,以避免單獨一支或幾支股票出現黑天鵝,導致投資出現不可控的風險。
此外,由於中國股市中,個股與大盤指數相關性極強,因此,完全可以加入大盤指數的擇時判斷,然後再去操作個股,如果大盤指數擇時訊號很差,那麼,完全可以空倉等待,寧不做,不做錯。