【宽客策略】MACD柱线与价格的经典战法

0
回复
6699
查看
[复制链接]

34

主题

33

回帖

270

积分

中级会员

积分
270
来源: 2020-3-10 18:33:30 显示全部楼层 |阅读模式
MACD指标是市场上绝大多数投资者熟知的分析指标之一,甚至被称为指标之王。一般研判标准主要是围绕快速和慢速两条均线及红、绿柱线状况和它们的形态展开。但在具体运用时,会在运用的准确性、实效性、可操作性上有很多茫然的地方,本例采用MACD指标柱状图分析法,研判底背离的情况
一、MACD底部背离的策略思路

1,本波绿柱面积没有创新低:本波绿柱的面积小于前一波绿柱的面积。
2,本波绿柱长度没有创新低:本波绿柱过程中的MACD最低值大于前一波绿柱中的最低值。
3,行情价格出现了新低:      本波绿柱过程中的行情的最低价小于前一波绿柱中的最低价。
     以上思路是严格的MACD底背离的判断,即价格新低,但柱子面积和柱子长度都没有新低
20191111425247309.jpg

代码基于金字塔
  1. //当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓



  2. IF all(macd<0,3) and ref(macd,1)<macd and ref(macd,1)<ref(macd,2) THEN

  3. IF  本波截止到目前的绿柱面积〈 前一波绿柱面积                                      //柱子面积没有新低

  4. + 本波绿柱过程中的MACD最低值  〉前一波绿柱中的最低值                   //长度没有新低

  5. + 本波绿柱过程中的最低价   〈  前一波绿柱中的最低价                         //价格新低

  6. THEN BUY.



  7. //绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓



  8. IF ref(macd<0,1) and macd>0 THEN

  9. IF 前一波绿柱面积 〈 更前一波绿柱面积                                               //柱子面积没有新低

  10. + 最近一波绿柱过程中的MACD最低值  〉更前一波绿柱中的最低值    //长度没有新低

  11. + 最近一波绿柱过程中的最低价   〈  更前一波绿柱中的最低价          //价格新低

  12. THEN BUY。
复制代码

策略源码:
  1. //全局变量

  2. variable:gsum=0;   //gsum绿柱总和
  3. variable:glong=0;  //glong最长绿柱
  4. variable:glow=0;   //glow绿柱区域最低价


  5. //中间变量

  6. //MACD指标

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


  10. gnum:=barslast(ref(macd>0,1) and macd<0);     //红转绿
  11. bnum:=barslast(ref(macd<0,1) and macd>0);    //绿转红



  12. if ref(macd,1)>0 and macd<0 then
  13. begin
  14.    gsum:=0;                                                            //绿柱开始,清0
  15.    glong:=0;                                                          //绿柱开始,清0
  16.    glow:=low;                                                      //绿柱开始,初始化
  17. end


  18. if macd<0 then
  19. begin
  20.    gsum:=gsum+macd;                                          //累加
  21.    if abs(macd)>abs(glong) then glong:=macd; //如果绿柱更长,则记录
  22.    if low<glow then glow:=low;                           //如果价格更低,则记录
  23. end



  24. numb:=max(gnum,bnum)+1;


  25. //交易条件
  26. con1:=abs(gsum)<abs(ref(gsum,numb));      //面积小于前一波--面积没创新低
  27. con2:=abs(glong)<abs(ref(glong,numb));    //柱子长度小于前一波----长度没创新低
  28. con3:=glow<ref(glow,numb);                     //价格小于前一波-----价格创新低





  29. //下单模块
  30. //当绿柱开始收缩时(熊市即将结束,可能反转向上(或低位盘整)),如果出现低背离,则少量建仓

  31. if all(macd<0,3) and ref(macd,1)<macd and ref(macd,1)<ref(macd,2) then
  32. begin
  33.    if con1 and con2 and con3 then buy(1,1,market);       //低背离,面积没创新低,长度没创新低,价格创新低
  34. end



  35. //绿柱消失、红柱开始放出时(下跌行情(或低位盘整)已经结束),如果出现低背离,则加仓
  36. if ref(macd<0,1) and macd>0 then
  37. begin
  38.     if con1 and con2 and con3  then 加:buy(1,1,market);    //低背离,面积没创新低,长度没创新低,价格创新低
  39. end


  40. //如果下破零轴,平仓离场
  41. if  CROSS(0,MACD) and diff<0 then sell(holding>0,holding,market);


复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册
关注微信