MTF_4 TF XO_M30D1_v1





//+------------------------------------------------------------------+
//|                MTF_4 TF XO_M30D1           ZZ MTF XO A.mq4    ik |
//|                                     /www.forex-tsd.com/xo-method |
//+------------------------------------------------------------------+
#property copyright " ZZ MTF XO A    MTF_4 TF XO_M30D1"
#property link      " ZZ MTF XO A "
//----
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 DarkGreen//PaleGreen
#property indicator_color2 Maroon
#property indicator_color3 LimeGreen  //Lime
#property indicator_color4 Red
#property indicator_width1 1//2
#property indicator_width2 1
#property indicator_width3 1//2
#property indicator_width4 1//2
//----
#property indicator_maximum 4
#property indicator_minimum -4
//----
extern double KirPER=7;                            //10
extern int TF1=30;       // PERIOD_M5
extern int TF2=60;
extern int TF3=240;
extern int TF4=1440;
//----
extern double KirPER1=4.5;//7
extern double KirPER2=4.5;
extern double KirPER3=4.5;
extern double KirPER4=4.5;//7
//---- input parameters
/*************************************************************************
PERIOD_M1   1
PERIOD_M5   5
PERIOD_M15  15
PERIOD_M30  30 
PERIOD_H1   60
PERIOD_H4   240
PERIOD_D1   1440
PERIOD_W1   10080
PERIOD_MN1  43200
You must use the numeric value of the timeframe that you want to use
when you set the TimeFrame' value with the indicator inputs.
**************************************************************************/
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,1);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,1);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,1);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_HISTOGRAM,EMPTY,1);
   SetIndexBuffer(3,ExtMapBuffer4);
   //
   string short_name;
   short_name=("MTF_4TFXO");
   IndicatorShortName(short_name);
   SetIndexLabel(0,"MTF_4TF_XO_TF"+TF1+"");
   SetIndexLabel(1,"MTF_4TF_XO_TF"+TF2+"");
   SetIndexLabel(2,"MTF_4TF_XO_TF"+TF3+"");
   SetIndexLabel(3,"MTF_4TF_XO_TF"+TF4+"");
  }
//----
   return(0);
//+------------------------------------------------------------------+
//| MTF Parabolic Sar                                                |
//+------------------------------------------------------------------+
int start()
  {
   int    i,limit,y=0,counted_bars=IndicatorCounted();
//----
   limit=Bars-counted_bars;
   limit=Bars-counted_bars;
   int lastp15=0, lastp30=0, lastp60=0;
   for(i=0,y=0;i<limit;i++)
     {
      int p1,p2,p3,p4;
      p1=iBarShift( NULL, TF1, Time[i], false );
      p2=iBarShift( NULL, TF2, Time[i], false );
      p3=iBarShift( NULL, TF3, Time[i], false );
      p4=iBarShift( NULL, TF4, Time[i], false );
/***********************************************************   
   Add your main indicator loop below.  You can reference an existing
      indicator with its iName  or iCustom.
   Rule 1:  Add extern inputs above for all neccesary values   
   Rule 2:  Use 'TimeFrame' for the indicator time frame
   Rule 3:  Use 'y' for your indicator's shift value
 **********************************************************/
      double totalUp=0.0;
      double totalDown=0.0;
//----
      totalUp=iCustom(NULL,TF1,"XO",KirPER1,0,p1);
      totalDown=iCustom(NULL,TF1,"XO",KirPER1,1,p1);
      totalUp= totalUp + iCustom(NULL,TF2,"XO",KirPER2,0,p2);
      totalDown= totalDown + iCustom(NULL,TF2,"XO",KirPER2,1,p2);
      totalUp= totalUp + iCustom(NULL,TF3,"XO",KirPER3,0,p3);
      totalDown= totalDown + iCustom(NULL,TF3,"XO",KirPER3,1,p3);
      totalUp= totalUp + iCustom(NULL,TF4,"XO",KirPER4,0,p4);
      totalDown= totalDown + iCustom(NULL,TF4,"XO",KirPER4,1,p4);
//----
      ExtMapBuffer1[i]=0;
      ExtMapBuffer2[i]=0;
      ExtMapBuffer3[i]=0;
      ExtMapBuffer4[i]=0;
        if(totalUp==4 || totalDown==-4)
        {
         ExtMapBuffer3[i]=totalUp;
         ExtMapBuffer4[i]=totalDown;
         }
          else 
         {
         ExtMapBuffer1[i]=totalUp;
         ExtMapBuffer2[i]=totalDown;
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:




Custom Indicators Used:
XO

Order Management characteristics:

Other Features: