高頻交易算法研發心得--MACD指標算法及應用

鳳鸞寶賬景很是,滿是泥金巧樣妝。算法

曲曲遠山飛翠色;翩翩舞袖映霞裳。微信

梨花帶雨爭嬌豔;芍藥籠煙騁媚妝。工具

但得妖嬈能舉動,取回長樂侍君王。spa

【摘自《封神演義》紂王在女媧宮上香時題的詩】blog

 

一首定場詩完畢,我們書接上回。上回我們說到使用基於MA長短週期均線上下穿越的方式對行情進行跟蹤。同時也提出該方法的問題,即:當前K線在短期內出現了相似正弦曲線的波動時,短週期均線和長週期均線會頻繁的相互交差。這種狀況的問題就是會致使系統進行頻繁的交易,若是看官們有過手動交易的經驗值,就不難發現,交易的越頻繁,可能賠的越多,同是,心臟承擔的壓力也越大。ip

從本文開始,咱們來聊聊若是使用短線指標來儘可能下降交易次數(注意:只能儘可能下降,不可能徹底屏幕!),首先來看看MACD指標。開發

MACD指標應該是大多數交易軟件中的默認技術指標(另筆者比較暈的是,爲何這些指標會被叫作「技術指標」,徹底看不出來和技術有半點關係,另外我也很討厭不少公司裏都把軟件工程師叫作「技術」),其維基百科的定義以下:get

MACD指數平滑異同移動平均線Moving Average Convergence / Divergence, MACD)是股票交易中一種常見的技術分析工具,用於研判股票價格變化的強度、方向、能量,以及趨勢週期,以便把握股票買進和賣出的時機。MACD指標由一組曲線與圖形組成,經過收盤時股價或指數的快變及慢變的指數移動平均值EMA)之間的計算出來。指更短時段的EMA,而則指較長時段的EMA,最經常使用的是1226EMA數學

一般狀況下,咱們會看到的默認數值爲MACD12269),那麼,該指標的算法過程是什麼,參數的意義又是什麼呢?it

其計算過程以下:

//1.首先分別計算當前點的12次EMA均值和26次EMA均值的差,KlineValues能夠取Close值或者中間值,其名曰:dif

var dif = EMA(KlineValues, 12) - EMA(KlineValues, 26);

//2.爲了數據的平穩性,對前面的均值差,再一次計算EMA,次數爲9

var dea = EMA(dif,9);

//3.爲了其數據的可視化,求上面兩者的差值,並放大兩倍

var macd = (dif - dea) * 2;

 

從計算過程的第一步中,看官不難發現,MACD的本質是將EMA曲線進行了座標系統的變換,即:以長週期爲X軸,並查看短週期的變化狀況。因爲DIF值是由兩個不一樣週期的均線計算獲得的,所以,該值老是圍繞着0點上下變換的。

(看官:若是您有過3D系統開發經驗(DXOPENGLU3D。。。)或者嵌入式電子系統開發經驗的話,那麼對這種「先進行座標系統變換,而後獲得可量化處理數據」的應用方式就不會感到陌生。)

若是將上面計算過程當中dea的參數次數由9改成1的話,上面的macd值就退化成咱們前一篇文章中所說的長短均線追逐了,當dif值大於0時,短週期上穿長週期,能夠考慮買入,反之亦然。

經過分析,咱們大致上能夠了解MACD12269)的數學含義。您能夠認爲1226是兩個較短週期的跟蹤方式。在默認參數的狀況下,MACD值出現了穿越了0值時,不能100%的作爲買入、賣出條件,可是能夠成爲上一章節所提的MA線追逐算法下降交易次數的重要參考,狀況以下圖所示:

 

因爲MACD值是由均值差值計算所得,所以,即便K線走勢持平或者微弱上升,都會致使兩個均值的差值愈來愈小,MACD也可能會出現0值跳變。另外,高點或低點峯不能做爲斷定點,由於你沒法預料後面是否還會出現峯值。

若是但願彌補MACD線的弱點,可使用SAR指標加以共同判讀,關於SAR指標,且聽下回分解。

 

 

                                                    做者:科學家

                                                    Emailwarensoft@163.com

                                                    微信:43175692