黄金
4MAsTrend.mq4
回复:0  浏览:550
  • 楼主admin 圈主
  • 2019-05-05 05:15
QQ截图20160425114522.png

  1. //+------------------------------------------------------------------+
  2. //|                                                    4MAs Trend.mq4 |
  3. //|                                                      |
  4. //|                                        http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+

  6. #property indicator_separate_window
  7. #property indicator_minimum 0
  8. #property indicator_maximum 1
  9. #property indicator_buffers 3
  10. #property indicator_color1 Red
  11. #property indicator_color2 LimeGreen
  12. #property indicator_color3 Gold
  13. //---- input parameters
  14. extern int Minutes=60;
  15. extern int MA1_Value=5;
  16. extern int MA1_Mode=0;
  17. extern int MA2_Value=13;
  18. extern int MA2_Mode=0;
  19. extern int MA3_Value=34;
  20. extern int MA3_Mode=3;
  21. extern int MA4_Value=55;
  22. extern int MA4_Mode=3;

  23. //---- buffers
  24. double ExtMapBuffer1[];
  25. double ExtMapBuffer2[];
  26. double ExtMapBuffer3[];
  27. string TimeframeStr;
  28. double MA1,MA2,MA3,MA4;
  29. //+------------------------------------------------------------------+
  30. //| Custom indicator initialization function                         |
  31. //+------------------------------------------------------------------+
  32. int init()
  33.   {
  34. //---- indicators
  35.   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2,Red);
  36.   SetIndexBuffer(0,ExtMapBuffer1);
  37.   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2, LimeGreen);
  38.   SetIndexBuffer(1,ExtMapBuffer2);
  39.   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2, Gold);
  40.   SetIndexBuffer(2,ExtMapBuffer3);

  41. switch(Minutes)
  42.    {
  43.       case 1 : TimeframeStr="Period_M1"; break;
  44.       case 5 : TimeframeStr="Period_M5"; break;
  45.       case 15 : TimeframeStr="Period_M15"; break;
  46.       case 30 : TimeframeStr="Period_M30"; break;
  47.       case 60 : TimeframeStr="Period_H1"; break;
  48.       case 240 : TimeframeStr="Period_H4"; break;
  49.       case 1440 : TimeframeStr="Period_D1"; break;
  50.       case 10080 : TimeframeStr="Period_W1"; break;
  51.       case 43200 : TimeframeStr="Period_MN1"; break;
  52.       default : TimeframeStr="Current Timeframe"; Minutes=0;
  53.    }
  54.    IndicatorShortName("Flat Trend w 4 MAs ("+TimeframeStr+")");  


  55. //----
  56.    return(0);
  57.   }
  58. //+------------------------------------------------------------------+
  59. //| Custom indicator deinitialization function                       |
  60. //+------------------------------------------------------------------+
  61. int deinit()
  62.   {
  63. //----
  64.    
  65. //----
  66.    return(0);
  67.   }
  68. //+------------------------------------------------------------------+
  69. //| Custom indicator iteration function                              |
  70. //+------------------------------------------------------------------+
  71. int start()
  72.   {
  73.    int    counted_bars=IndicatorCounted();
  74. //----

  75. for (int i = 0; i < 300; i++){
  76.    ExtMapBuffer1[i]=0;
  77.    ExtMapBuffer2[i]=0;
  78.    ExtMapBuffer3[i]=0;
  79.    
  80.    MA1=iMA(NULL,Minutes,MA1_Value,0,MA1_Mode,PRICE_CLOSE,i);
  81.    MA2=iMA(NULL,Minutes,MA2_Value,0,MA2_Mode,PRICE_CLOSE,i);
  82.    MA3=iMA(NULL,Minutes,MA3_Value,0,MA3_Mode,PRICE_CLOSE,i);
  83.    MA4=iMA(NULL,Minutes,MA4_Value,0,MA4_Mode,PRICE_CLOSE,i);


  84.    if(MA1 > MA2 && MA2 > MA3 && MA3 > MA4 )ExtMapBuffer2[i] = 1;
  85.    if(MA1 < MA2 && MA2 < MA3 && MA3 < MA4 )ExtMapBuffer1[i] = 1;

  86.    if(ExtMapBuffer1[i] == 0 && ExtMapBuffer2[i] == 0)  {ExtMapBuffer3[i] = 1;}
  87.   
  88. }



  89.    
  90. //----
  91.    return(0);
  92.   }
  93. //+------------------------------------------------------------------+