MACD柱線與價格的經典戰法

macd是程序化交易中一個很常用的指標,今天分享一個我研究很久寫出的macd指標背離代碼。

MACD指標的背離就是指MACD指標的圖形的走勢正好和K線圖的走勢方向正好相反。當股價K線圖上的股票走勢一峯比一峯高,股價一直在向上漲,而MACD指標圖形上的由紅柱構成的圖形的走勢是一峯比一峯低,即當股價的高點比前一次的高點高、而MACD指標的高點比指標的前一次高點低,這叫頂背離現象。頂背離現象一般是股價在高位即將反轉轉勢的信號,表明價格短期內即將下跌,是賣出的信號。
一、MACD頂部背離的策略思路:

1,本波紅柱面積沒有創新高:本波紅柱的面積小於前一波紅柱的面積。
2,本波紅柱長度沒有創新高:本波紅柱過程中的MACD最高值小於前一波紅柱中的最高值。
3,行情價格出現了新高: 本波紅柱過程中的行情的最高價大於前一波紅柱中的最高價。

 以上思路是嚴格的MACD頂背離的判斷,即價格新高,但柱子面積和柱子長度都沒有新高。

二、金字塔策略源碼

//全局變量

variable:gsumr=0; //gsum紅柱總和

variable:glongr=0; //glong最長紅柱

variable:ghighr=0; //glow紅柱區域最高價

//中間變量

//MACD指標

DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA);

gnum:=barslast(ref(macd>0,1) and macd<0); //紅轉綠

bnum:=barslast(ref(macd<0,1) and macd>0); //綠轉紅

if ref(macd,1)<0 and macd>0 then

begin

gsumr:=0; //紅柱開始,清0

glongr:=0; //紅柱開始,清0

ghighr:=high; //紅柱開始,初始化

end

if macd>0 then

begin

gsumr:=gsumr+macd; //累加

if abs(macd)>abs(glongr) then glongr:=macd; //如果紅柱更長,則記錄

if high>ghighr then ghighr:=high; //如果價格更高,則記錄

end

numb:=max(gnum,bnum)+1; //兩次紅柱/綠柱之間間隔

//交易條件

con1:=abs(gsumr)<abs(ref(gsumr,numb)); //面積小於前一波--面積沒創新高

con2:=abs(glongr)<abs(ref(glongr,numb)); //柱子長度小於前一波----長度沒創新高

con3:=ghighr>ref(ghighr,numb); //價格大於前一波-----價格創新高

//下單模塊

//當紅柱開始收縮時(牛市即將結束,可能反轉向下(或高位盤整)),如果出現頂背離,則少量建倉

if all(macd>0,3) and ref(macd,1)>macd and ref(macd,1)>ref(macd,2) then

begin

if con1 and con2 and con3 then buyshort(1,1,market);//頂背離,面積沒創新高,長度沒創新高,價格創新高

end

//紅柱消失、綠柱開始放出時(上漲行情(或高位盤整)已經結束),如果出現頂背離,則加倉

if ref(macd>0,1) and macd<0 then

begin

if con1 and con2 and con3  then 加:buyshort(1,1,market);//低背離,面積沒創新低,長度沒創新低,價格創新低

end

//如果上穿零軸,平倉離場

if CROSS(MACD,0) then sellshort(holding<0,holding,market);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章