12评论

4收藏

MA Cross w_Alert

avatar 老王吧 | 6323 人阅读 | 12 人评论 | 2016-04-22

EURUSDM30.png

  1. // This is Not Tested , Use At Your Own Risk !

  2. //+--------------------------------------------------------------------------+
  3. //| 3 MA Cross w_Alert v2.mq4                                                |
  4. //| Copyright © 2005, Jason Robinson (jnrtrading)                            |
  5. //| http://www.jnrtading.co.uk                                               |
  6. //| 3 ma conversion and Alert , David Honeywell , transport.david@gmail.com  |
  7. //| http://finance.groups.yahoo.com/group/MetaTrader_Experts_and_Indicators/ |
  8. //+--------------------------------------------------------------------------+

  9. /*
  10.   +-------------------------------------------------------------------------------+
  11.   | Allows you to enter 3 ma periods and it will then show you and alert you at   |
  12.   | which point the 2 faster ma's "OPEN" are both above or below the Slowest ma . |
  13.   +-------------------------------------------------------------------------------+
  14. */   

  15. #property copyright "Copyright © 2005, Jason Robinson (jnrtrading)"
  16. #property link      "http://www.jnrtrading.co.uk"

  17. #property indicator_chart_window
  18. #property indicator_buffers 2
  19. #property indicator_color1 Aqua
  20. #property indicator_color2 Coral

  21. double CrossUp[];
  22. double CrossDown[];
  23. double prevtime;
  24. double Range, AvgRange;
  25. double fasterMAnow, fasterMAprevious, fasterMAafter;
  26. double mediumMAnow, mediumMAprevious, mediumMAafter;
  27. double slowerMAnow, slowerMAprevious, slowerMAafter;

  28. extern int FasterMA    =    5;
  29. extern int FasterShift =   -5;
  30. extern int FasterMode  =    1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma

  31. extern int MediumMA    =   20;
  32. extern int MediumShift =   -5;
  33. extern int MediumMode  =    1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma

  34. extern int SlowerMA    =   34;
  35. extern int SlowerShift =    0;
  36. extern int SlowerMode  =    1; // 0 = sma, 1 = ema, 2 = smma, 3 = lwma

  37. extern int SoundAlert =    1; // 0 = disabled

  38. //+------------------------------------------------------------------+
  39. //| Custom indicator initialization function                         |
  40. //+------------------------------------------------------------------+
  41. int init()
  42.   {
  43. //---- indicators
  44.    SetIndexStyle(0, DRAW_ARROW, EMPTY);
  45.    SetIndexArrow(0, 233);
  46.    SetIndexBuffer(0, CrossUp);
  47.    SetIndexStyle(1, DRAW_ARROW, EMPTY);
  48.    SetIndexArrow(1, 234);
  49.    SetIndexBuffer(1, CrossDown);
  50. //----
  51.    return(0);
  52.   }
  53. //+------------------------------------------------------------------+
  54. //| Custom indicator deinitialization function                       |
  55. //+------------------------------------------------------------------+
  56. int deinit()
  57.   {
  58. //----

  59. //----
  60.    return(0);
  61.   }
  62. //+------------------------------------------------------------------+
  63. //| Custom indicator iteration function                              |
  64. //+------------------------------------------------------------------+
  65. int start()
  66. {
  67.    
  68.    int limit, i, counter;
  69.    
  70.    int counted_bars=IndicatorCounted();
  71.    //---- check for possible errors
  72.    if(counted_bars<0) return(-1);
  73.    //---- last counted bar will be recounted
  74.    if(counted_bars>0) counted_bars--;
  75.    
  76.    limit=Bars-counted_bars;
  77.    
  78.    for(i = 0; i <= limit; i++)
  79.     {
  80.       
  81.       counter=i;
  82.       Range=0;
  83.       AvgRange=0;
  84.       for (counter=i ;counter<=i+9;counter++)
  85.        {
  86.          AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
  87.        }
  88.       Range=AvgRange/10;
  89.       
  90.       fasterMAnow      = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+1);
  91.       fasterMAprevious = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i+2);
  92.       fasterMAafter    = iMA(NULL, 0, FasterMA, FasterShift, FasterMode, PRICE_CLOSE, i-1);
  93.       
  94.       mediumMAnow      = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+1);
  95.       mediumMAprevious = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i+2);
  96.       mediumMAafter    = iMA(NULL, 0, MediumMA, MediumShift, MediumMode, PRICE_CLOSE, i-1);
  97.       
  98.       slowerMAnow      = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+1);
  99.       slowerMAprevious = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i+2);
  100.       slowerMAafter    = iMA(NULL, 0, SlowerMA, SlowerShift, SlowerMode, PRICE_CLOSE, i-1);
  101.       
  102.       if ((fasterMAnow     > slowerMAnow       &&
  103.           fasterMAprevious <= slowerMAprevious  &&
  104.           fasterMAafter    > slowerMAafter     &&
  105.           mediumMAnow      > slowerMAnow     )
  106.           ||
  107.           (fasterMAnow     > slowerMAnow       &&
  108.           mediumMAnow      > slowerMAnow       &&
  109.           mediumMAprevious <= slowerMAprevious  &&
  110.           mediumMAafter    > slowerMAafter   ))
  111.        {
  112.          CrossUp[i] = Low[i] - Range*0.5;
  113.        }
  114.       
  115.       if ((fasterMAnow     < slowerMAnow       &&
  116.           fasterMAprevious >= slowerMAprevious  &&
  117.           fasterMAafter    < slowerMAafter     &&
  118.           mediumMAnow      < slowerMAnow     )
  119.           ||
  120.           (fasterMAnow     < slowerMAnow       &&
  121.           mediumMAnow      < slowerMAnow       &&
  122.           mediumMAprevious >= slowerMAprevious  &&
  123.           mediumMAafter    < slowerMAafter   ))
  124.        {
  125.          CrossDown[i] = High[i] + Range*0.5;
  126.        }
  127.       
  128.     }
  129.    
  130.       if ((CrossUp[0] > 2000) && (CrossDown[0] > 2000)) { prevtime = 0; }
  131.       
  132.       if ((CrossUp[0] == Low[0] - Range*0.5) && (prevtime != Time[0]) && (SoundAlert != 0))
  133.        {
  134.          prevtime = Time[0];
  135.          Alert(Symbol()," 3 MA Cross Up @  Hour ",Hour(),"  Minute ",Minute());
  136.        }
  137.       
  138.       if ((CrossDown[0] == High[0] + Range*0.5) && (prevtime != Time[0]) && (SoundAlert != 0))
  139.        {
  140.          prevtime = Time[0];
  141.          Alert(Symbol()," 3 MA Cross Down @  Hour ",Hour(),"  Minute ",Minute());
  142.        }
  143.    
  144.    //Comment("  CrossUp[0]  ",CrossUp[0]," ,  CrossDown[0]  ",CrossDown[0]," ,  prevtime  ",prevtime);
  145.    //Comment("");
  146.    
  147.    return(0);
  148. }
复制代码


MA Cross w_Alert .zip
""
还没有人打赏,支持一下

评论|共 12 个

金源

发表于 2019-1-24 03:12:39 | 显示全部楼层

666666666666666666

金源

发表于 2019-1-24 03:37:33 | 显示全部楼层

有飘逸666666666666666666

我说你喜欢我

发表于 2020-4-12 17:17:23 | 显示全部楼层

我是个凑数的。。。

我是6哥

发表于 2020-4-13 07:55:14 来自手机 | 显示全部楼层

看着不错不错不错

xhcun

发表于 2020-7-7 21:27:19 | 显示全部楼层

谢谢楼主分享

00000

发表于 2020-7-13 10:00:52 | 显示全部楼层

帮你顶下哈!!

dajaylove

发表于 2020-7-22 11:43:42 | 显示全部楼层

学习了,不错

我是6哥

发表于 2020-7-22 12:46:30 来自手机 | 显示全部楼层

学习技术交流

qing521ruan

发表于 2020-11-13 11:28:04 | 显示全部楼层

顶下

12下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则