[MT4指标]4macd外汇策略
应该是属于看大做小的系统
具体我们可以一起研究
//+------------------------------------------------------------------+
//|                                          4h_MACD_FX_Strategy.mq4 |
//|                                     Giorgio "Obi Wan" Scarabello |
//|                            http://www.fxtradeblog.com/index.html |
//+------------------------------------------------------------------+
#property copyright "Giorgio Obi Wan Scarabello"
#property link      "http://www.fxtradeblog.com/index.html"
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_color1 SkyBlue
#property indicator_color2 MediumSeaGreen
#property indicator_color3 Red
#property indicator_color4 Blue
#property indicator_color5 Green
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 2
#property indicator_width4 3
#property indicator_width5 1
#property indicator_style1 2
#property indicator_style2 2
#property indicator_style3 0
#property indicator_style4 0
#property indicator_style5 2
//---- buffers
double ExtMapBuffer1;
double ExtMapBuffer2;
double ExtMapBuffer3;
double ExtMapBuffer4;
double ExtMapBuffer5;
//---- Variables
double EMA8=0.0;
double EMA21=0.0;
double SMA89=0.0;
double SMA200=0.0;
double EMA365=0.0;
int rhythm=0;
string rh="";
int x=0;
int limit;
int col=0xFFFFFF;
extern int fontsize = 10;
extern int corner = 3;
//extern bool orientation = 0;
extern int xdispl = 1;
extern int ydispl = 1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"EMA 8");
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexLabel(1,"EMA 21");
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexLabel(2,"SMA 89");
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexLabel(3,"SMA 200");
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexLabel(4,"EMA 365");
//----
//---- Text Object
   ObjectCreate("Rhythm", OBJ_LABEL, 0, 0, 0);
   //ObjectSetText("Range", gs_rRange,fontsize,"Arial",Yellow);
   ObjectSet("Rhythm", OBJPROP_CORNER, corner);
   ObjectSet("Rhythm", OBJPROP_XDISTANCE, xdispl);
   ObjectSet("Rhythm", OBJPROP_YDISTANCE, ydispl);
   
//---- Line Objects
   ObjectCreate("Roundover", OBJ_HLINE, 0, 0, 0);
   ObjectSet("Roundover", OBJPROP_STYLE, STYLE_DASH);
   ObjectSet("Roundover", OBJPROP_COLOR, Lime);
   
   ObjectCreate("Roundunder", OBJ_HLINE, 0, 0, 0);
   ObjectSet("Roundunder", OBJPROP_STYLE, STYLE_DASH);
   ObjectSet("Roundunder", OBJPROP_COLOR, Red);
   
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("Rhythm");
   ObjectDelete("Roundover");
   ObjectDelete("Roundunder");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//Moving averages stuff
for (x=limit; x>=0; x--)
   {
      //calculation
      EMA8=iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,x);
      EMA21=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,x);
      SMA89=iMA(NULL,0,89,0,MODE_SMA,PRICE_CLOSE,x);
      SMA200=iMA(NULL,0,200,0,MODE_SMA,PRICE_CLOSE,x);
      EMA365=iMA(NULL,0,365,0,MODE_EMA,PRICE_CLOSE,x);
      
      //drawing
      ExtMapBuffer1[x]=EMA8;
      ExtMapBuffer2[x]=EMA21;
      ExtMapBuffer3[x]=SMA89;
      ExtMapBuffer4[x]=SMA200;
      ExtMapBuffer5[x]=EMA365;        
   }
   
//Rhythm stuff
rhythm=0;
if (Close[0]>SMA89)
   {
      rhythm=1;
      rh="Weak Bull Rhythm Strength";
      col=0xAAFFAA;
      
      if (Close[0]>EMA8)
      {
         rhythm++;
         rh="Strong Bull Rhythm Strength";
         col=0x00FF00;
         
      }
    }
 else if (Close[0]4h_MACD_FX_Strategy.jpg 












