MACD指标是市场上绝大多数投资者熟知的分析工具,一般研判标准主要是围绕快速和慢速两条均线及红、绿柱线状况和它们的形态展开。但在具体运用时,会在运用的准确性、实效性、可操作性上有很多茫然的地方,本例采用MACD指标柱状图分析法,研判底背离的情况。
一、MACD底部背离的策略思路:
1,本波绿柱面积没有创新低:本波绿柱的面积小于前一波绿柱的面积。
2,本波绿柱长度没有创新低:本波绿柱过程中的MACD最低值大于前一波绿柱中的最低值。
3,行情价格出现了新低: 本波绿柱过程中的行情的最低价小于前一波绿柱中的最低价。
以上思路是严格的MACD底背离的判断,即价格新低,但柱子面积和柱子长度都没有新低。
量化分析后伪代码:
//当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓
IF all(macd<0,3) and ref(macd,1)<macd and ref(macd,1)<ref(macd,2) THEN
IF 本波截止到目前的绿柱面积〈 前一波绿柱面积 //柱子面积没有新低
+ 本波绿柱过程中的MACD最低值 〉前一波绿柱中的最低值 //长度没有新低
+ 本波绿柱过程中的最低价 〈 前一波绿柱中的最低价 //价格新低
THEN BUY.
//绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓
IF ref(macd<0,1) and macd>0 THEN
IF 前一波绿柱面积 〈 更前一波绿柱面积 //柱子面积没有新低
+ 最近一波绿柱过程中的MACD最低值 〉更前一波绿柱中的最低值 //长度没有新低
+ 最近一波绿柱过程中的最低价 〈 更前一波绿柱中的最低价 //价格新低
THEN BUY。
二、金字塔策略源码
//全局变量
variable:gsum=0; //gsum绿柱总和
variable:glong=0; //glong最长绿柱
variable:glow=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
gsum:=0; //绿柱开始,清0
glong:=0; //绿柱开始,清0
glow:=low; //绿柱开始,初始化
end
if macd<0 then
begin
gsum:=gsum+macd; //累加
if abs(macd)>abs(glong) then glong:=macd; //如果绿柱更长,则记录
if low<glow then glow:=low; //如果价格更低,则记录
end
numb:=max(gnum,bnum)+1;
//交易条件
con1:=abs(gsum)<abs(ref(gsum,numb)); //面积小于前一波--面积没创新低
con2:=abs(glong)<abs(ref(glong,numb)); //柱子长度小于前一波----长度没创新低
con3:=glow<ref(glow,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 buy(1,1,market); //低背离,面积没创新低,长度没创新低,价格创新低
end
//绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓
if ref(macd<0,1) and macd>0 then
begin
if con1 and con2 and con3 then 加:buy(1,1,market); //低背离,面积没创新低,长度没创新低,价格创新低
end
//如果下破零轴,平仓离场
if CROSS(0,MACD) and diff<0 then sell(holding>0,holding,market);