1. 程式人生 > >【原始碼分享】經典指標和K線圖系列之MACD

【原始碼分享】經典指標和K線圖系列之MACD

最近從經典技術指標開始學習量化策略,有些在talib中有打包好的函式,但我還是希望自己在編的過程中學習策略的思想、進一步改進基礎策略。今天學習了移動平滑異同平均線(Moving Average Convergence Divergence,簡稱MACD指標)策略。MACD是查拉爾·阿佩爾(Geral Appel)於1979年提出的,由一快及一慢指數移動平均(EMA)(可以參考指數平滑均線文件)之間的差計算出來。“快”指短時期的EMA,而“慢”則指長時期的EMA,最常用的是12及26日EMA。

1 MACD原理

  MACD指標是運用快速(短期)和慢速(長期)移動平均線及其聚合與分離的徵兆,加以雙重平滑運算,是一種趨向類指標。而根據移動平均線原理髮展出來的MACD,一則去除了移動平均線頻繁發出假訊號的缺陷,二則保留了移動平均線的效果,因此,MACD指標具有均線趨勢性、穩重性、安定性等特點,是用來研判買賣股票的時機,預測股票價格漲跌的技術分析指標 。


  MACD指標主要是通過EMA、DIF和DEA(或叫MACD、DEM)這三值之間關係的研判,DIF和DEA連線起來的移動平均線的研判以及DIF減去 DEM值而繪製成的柱狀圖(BAR)的研判等來分析判斷行情,預測股價中短期趨勢的主要的股市技術分析指標。其中,DIF是核心,DEA是輔助。DIF是快速平滑移動平均線(EMA1)和慢速平滑移動平均線(EMA2)的差。BAR柱狀圖在股市技術軟體上是用紅柱和綠柱的收縮來研判行情。

2 MACD計算方法

EMA計算方法請參考指數平滑均線文件,這裡的平滑係數引數以12日,26日,9日引數為例。引數大家可以進行修改。
12日EMA的計算:EMA12 = 前一日EMA12 X 11/13 + 今日收盤 X 2/13

26日EMA的計算:EMA26 = 前一日EMA26 X 25/27 + 今日收盤 X 2/27
差離值(DIF)的計算: DIF = EMA12 - EMA26 。
根據差離值計算其9日的EMA,即離差平均值,是所求的DEA值。今日DEA = (前一日DEA X 8/10 + 今日DIF X 2/10)
DIF與它自己的移動平均之間差距的大小BAR=(DIF-DEA)*2,即為MACD柱狀圖。
買賣原則為:
DIF、DEA均為正,DIF向上突破DEA,買入訊號參考。
DIF、DEA均為負,DIF向下突破DEA,賣出訊號參考。

3 MACD策略回測

投資域:滬深300股票

回測時間段 :2012年1月1日至2015年10月9日
回測頻率 :按日回測
回測資金:50萬
手續費:每筆交易時的手續費是, 買入時萬分之八,賣出時千分之1.3, 每筆交易最低扣5塊錢。

回測結果如下表


4 簡單分析

回測了24只滬深300股票,其中11只收益率超過基準收益率,但是回撤還是有些大。MACD買入賣出訊號還可以通過分析紅綠柱子實現,比如柱狀線由紅變綠(正變負),賣出訊號參考;由綠變變紅,買入訊號參考。下一步準備將傳統的MACD和KDJ兩個指標融合成一個指標,當兩指標同時發出買入或賣出訊號,即指標曲線出現“金叉共振”為加強型買入訊號,後勢上漲概率較大。反之,兩指標同時發出賣出訊號為加強型賣出訊號。

收益



風險



5 原始碼

經典指標和K線圖系列之MACD