Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains open prices of each barSeries array that contains close prices for each bar
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
EUR_2bL
/*-------------------------------------------------------------------+
 |                                                      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