/*-------------------------------------------------------------------+
 |                                                      EUR_2bL.mq4  |
 |                                             basisforex@gmail.com  |
 |                                                       05/01/2010  |
 +------------------------------------------------------------------ */
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Aqua//Blue
#property indicator_color2 Salmon//Brown
#property indicator_color3 Aqua//Blue
#property indicator_color4 Salmon//Brown
extern string _ = "Hi__or__Lo__or__HL__or__Cl";
extern string shift = "HL";
 double Line1[], Line2[], Line3[], Line4[];
 int TimeFrame = 0;
 int HorizShift = 0;
 double VertShift;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
 {
   SetIndexStyle(0, DRAW_HISTOGRAM, 0, 3);
   SetIndexBuffer(0, Line1);
   SetIndexShift( 0, HorizShift); 
     
   SetIndexStyle(1, DRAW_HISTOGRAM, 0, 3);
   SetIndexBuffer(1, Line2);  
   SetIndexShift( 1, HorizShift);
   
   SetIndexStyle(2, DRAW_HISTOGRAM, 0, 1);
   SetIndexBuffer(2, Line3);
   SetIndexShift( 2, HorizShift);
   
   SetIndexStyle(3, DRAW_HISTOGRAM, 0, 1);
   SetIndexBuffer(3, Line4);
   SetIndexShift( 3, HorizShift);
      
   if (TimeFrame == 0) TimeFrame = Period(); 
   //----
   return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
 {
   ObjectDelete("C_Line");
   //----
   return(0);
 }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
 {
   int counted_bars = IndicatorCounted();
   if(counted_bars < 0)  return(-1);
   if(counted_bars > 0)   counted_bars--;
   int i = Bars - counted_bars;
   if(counted_bars==0) i--;
   
   while(i >= 0)             
    {
      double Hea = iHigh("EURAUD", TimeFrame,i), Lea = iLow("EURAUD", TimeFrame,i), Oea = iOpen("EURAUD",TimeFrame,i), Cea = iClose("EURAUD", TimeFrame,i);
      double koHa = iHigh(NULL, PERIOD_D1, 1) - iHigh("EURAUD", PERIOD_D1, 1), koLa = iLow(NULL, PERIOD_D1, 1) - iLow("EURAUD", PERIOD_D1, 1), koCa = iClose(NULL, PERIOD_D1, 1) - iClose("EURAUD", PERIOD_D1, 1);
      //---
      double Hec = iHigh("EURCAD", TimeFrame,i), Lec = iLow("EURCAD", TimeFrame,i), Oec = iOpen("EURCAD",TimeFrame,i), Cec = iClose("EURCAD", TimeFrame,i);
      double koHc = iHigh(NULL, PERIOD_D1, 1) - iHigh("EURCAD", PERIOD_D1, 1), koLc = iLow(NULL, PERIOD_D1, 1) - iLow("EURCAD", PERIOD_D1, 1), koCc = iClose(NULL, PERIOD_D1, 1) - iClose("EURCAD", PERIOD_D1, 1);
      //---
      double Hej = iHigh("EURJPY", TimeFrame,i) / 100, Lej = iLow("EURJPY", TimeFrame,i) / 100, Oej = iOpen("EURJPY",TimeFrame,i) / 100, Cej = iClose("EURJPY", TimeFrame,i) / 100;
      double koHj = iHigh(NULL, PERIOD_D1, 1) - iHigh("EURJPY", PERIOD_D1, 1) / 100, koLj = iLow(NULL, PERIOD_D1, 1) - iLow("EURJPY", PERIOD_D1, 1) / 100, koCj = iClose(NULL, PERIOD_D1, 1) - iClose("EURJPY", PERIOD_D1, 1) / 100;
      //---
      double Hef = iHigh("EURCHF", TimeFrame,i), Lef = iLow("EURCHF", TimeFrame,i), Oef = iOpen("EURCHF",TimeFrame,i), Cef = iClose("EURCHF", TimeFrame,i);
      double koHf = iHigh(NULL, PERIOD_D1, 1) - iHigh("EURCHF", PERIOD_D1, 1), koLf = iLow(NULL, PERIOD_D1, 1) - iLow("EURCHF", PERIOD_D1, 1), koCf = iClose(NULL, PERIOD_D1, 1) - iClose("EURCHF", PERIOD_D1, 1);
      //---
      double Heg = iHigh("EURGBP", TimeFrame,i), Leg = iLow("EURGBP", TimeFrame,i), Oeg = iOpen("EURGBP",TimeFrame,i), Ceg = iClose("EURGBP", TimeFrame,i);
      double koHg = iHigh(NULL, PERIOD_D1, 1) - iHigh("EURGBP", PERIOD_D1, 1), koLg = iLow(NULL, PERIOD_D1, 1) - iLow("EURGBP", PERIOD_D1, 1), koCg = iClose(NULL, PERIOD_D1, 1) - iClose("EURGBP", PERIOD_D1, 1);
      //---
      double H = (Hea + Hec + Hej + Hef + Heg) / 5;
      double L = (Lea + Lec + Lej + Lef + Leg) / 5;
      double O = (Oea + Oec + Oej + Oef + Oeg) / 5;
      double C = (Cea + Cec + Cej + Cef + Ceg) / 5;
      //---
      double koH = (koHa + koHc + koHj + koHf + koHg) / 5;
      double koL = (koLa + koLc + koLj + koLf + koLg) / 5;
      double koHL = (koH + koL) / 2;
      double koC = (koCa + koCc + koCj + koCf + koCg) / 5;
      //---
      if(shift == "Hi") VertShift = koH; if(shift == "Lo") VertShift = koL; if(shift == "HL") VertShift = koHL; if(shift == "Cl") VertShift = koC;
      //---
      if(C > O)
       {
          Line1[i] = C + VertShift; Line2[i] = O + VertShift; Line3[i] = H + VertShift; Line4[i] = L + VertShift; 
          GlobalVariableSet("globEur", 999); 
          GlobalVariableSet("EurPrice", C + VertShift); 
       }
      else if(C < O)
       {
          Line1[i] = C + VertShift; Line2[i] = O + VertShift; Line3[i] = L + VertShift; Line4[i] = H + VertShift; 
          GlobalVariableSet("globEur", -111);
          GlobalVariableSet("EurPrice", C + VertShift); 
       }
      else if(C == O)
       {
          Line1[i] = O + VertShift; Line2[i] = Line1[i] + 0.01 * Point; Line3[i] = L + VertShift; Line4[i] = H + VertShift; 
          GlobalVariableSet("globEur", 0);
          GlobalVariableSet("EurPrice", C + VertShift); 
       }
      //============================================================================================================= 
      i--;      
    }
   ObjectCreate("C_Line", OBJ_FIBO, 0, Time[0], C, Time[0], C);
   ObjectSet("C_Line",OBJPROP_TIME2, Time[0]);
	ObjectSet("C_Line",OBJPROP_TIME1, Time[0]);
   ObjectSet("C_Line",OBJPROP_PRICE1, C + VertShift);
	ObjectSet("C_Line",OBJPROP_PRICE2, C + VertShift);
	ObjectSet("C_Line",OBJPROP_LEVELCOLOR, White);
   ObjectSet("C_Line",OBJPROP_FIBOLEVELS, 1);
   ObjectSet("C_Line",OBJPROP_FIRSTLEVEL + 0, 0.0);
	ObjectSetFiboDescription("C_Line", 0, "Eur");
   //----
   return(0);
 }
             
            
            
            
Comments