X_O_serg153xo





//+------------------------------------------------------------------+
//|                                                X_O_serg153xo.mq4 |
//|                                        Copyright © 2005, Serg153 |
//|                                                               "" |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Serg153" 
#property link      ""
//----
#property indicator_chart_window
extern color ColorUp   = Red;      // Öâåò "êðåñòèêà"
extern color ColorDown = Yellow;   // Öâåò "íîëèêà" 
//---- input parameters 
extern int RazmBox = 20; 
//----
int i, p, Lt, Lt1, Tb; 
double RazmBoXO, Cnac; 
int VsegoBarov; 
//+------------------------------------------------------------------+ 
//| Custom indicator deinitialization function                       | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
   for(i = 0; i < 99999; i++) 
     {
       ObjectDelete("BodyXO" + i);
       ObjectDelete("BodyX" + i);
     }
//----
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| Êðåñòèêè Íîëèêè                                                  | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   RazmBoXO = RazmBox*Point; 
   VsegoBarov = Bars - 1 ; 
   Lt = 0; 
   Cnac = Open[VsegoBarov]; 
   Tb = 0; 
   p = 0; 
// 1 ïðîãîí ïîäñ÷¸ò âñåõ áàðîâ
   for(i = VsegoBarov; i >= 1; i--)
     { 
       p = 0; 
       while(High[i] >= Cnac + RazmBoXO) 
         { 
           if(Tb == 0) 
               Lt++; 
           Cnac += RazmBoXO; 
           p++; 
           Tb = 1; 
         } 
       if(p > 0) 
           continue; 
       while(Low[i] <= Cnac - RazmBoXO) 
         { 
           if(Tb == 1) 
               Lt++; 
           Cnac -= RazmBoXO; Tb=0;  
         } 
     } 
   Lt = 10 + Lt*2;
// ñäâèãàåì âñå áàðû âïðàâî
// 2 ïðîãîí ðàçðèñîâêà ãðàôèêà
   Cnac = Open[VsegoBarov]; 
   Lt1 = 0;
   for(i = VsegoBarov; i >= 1; i--)
     { 
       p = 0; 
       while (High[i] >= Cnac + RazmBoXO) 
         { 
           if(Tb == 0) 
               Lt -= 2; 
           Lt1++; 
           ObjectCreate("BodyXO" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE2, Cnac + RazmBoXO);
           ObjectSet("BodyXO" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyXO" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyXO" + Lt1, OBJPROP_COLOR, ColorUp);
           ObjectCreate("BodyX" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE2, Cnac + RazmBoXO);
           ObjectSet("BodyX" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyX" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyX" + Lt1, OBJPROP_COLOR, Blue);
           Cnac += RazmBoXO; 
           Tb = 1; 
           p++; 
         } 
       if(p > 0) 
           continue; 
       while(Low[i] <= Cnac - RazmBoXO) 
         { 
           if(Tb == 1) 
               Lt -= 2; 
           Lt1++;
           ObjectCreate("BodyXO" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE2, Cnac - RazmBoXO);
           ObjectSet("BodyXO" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyXO" + Lt1, OBJPROP_BACK, True);
           ObjectSet("BodyXO" + Lt1, OBJPROP_COLOR, ColorDown);
           ObjectCreate("BodyX" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE2, Cnac - RazmBoXO);
           ObjectSet("BodyX" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyX" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyX" + Lt1, OBJPROP_COLOR, Blue);
           Cnac -= RazmBoXO; 
           Tb = 0; 
         } 
     } 
   return(0); 
  }
//+------------------------------------------------------------------+ 

 



Sample





Analysis



Market Information Used:

Series array that contains open prices of each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: