RENKO_MultyBox

Download script
Author: Copyright � 2009, FOREXflash
RENKO_MultyBox

This script is designed for the MetaTrader platform to provide traders with a multi-layered visual analysis of price action using "Renko" logic. Unlike standard charts that display every tiny price fluctuation (noise), Renko charts focus on the movement of price over fixed distances, helping traders identify clearer trends.

Core Functionality

1. Multi-Size Analysis The primary purpose of this script is to simultaneously monitor five different price sensitivity levels. Each level uses a specific "Box Size" (set by the user as 4, 8, 16, 32, and 64 units). By tracking these different sizes at once, the tool allows you to see:

  • Micro-Trends: Small movements that indicate immediate momentum.
  • Macro-Trends: Large movements that reveal the broader market direction.

2. Automated Trend Detection For each of the five sizes, the script automatically calculates whether the price is in a bullish (upward) or bearish (downward) state based on consecutive movements. It identifies three specific types of patterns to determine the signal:

  • Strong Momentum: When the price moves consistently in one direction across multiple boxes.
  • Trend Reversals: When the price changes direction (e.g., moving from an upward trend to a downward movement).
  • Contrarian Movements: Identifying when a current box contradicts the previous movement's trajectory.

3. Dynamic Visual Feedback The script provides real-time visual cues on your chart through:

  • Color-Coded Labels: It displays text labels for each of the five Box Sizes. Bullish signals are highlighted in Lime (Green), while bearish signals are highlighted in Red.
  • Live Progress Timer: A built-in timer tracks the time elapsed within the current candle period, providing a visual percentage of how much time remains in that specific market window.

How It Works for the User

Instead of you having to manually calculate price changes or switch between different charts to see "the big picture" versus "the small picture," this script does both simultaneously on a single screen.

It processes the raw price data into five distinct Renko streams. When a trend is confirmed at any of those levels, the corresponding text box updates instantly. This allows you to see at a glance if the market is in agreement across all sizes (a strong trend) or if there is a conflict between small-scale volatility and large-scale movement (potential exhaustion).

Price Data Components
Series array that contains close prices for each bar
Miscellaneous
Uses files from the file systemIt writes information to fileIt reads information from a fileIt issuies visual alerts to the screen
8 Views
0 Downloads
0 Favorites
RENKO_MultyBox
//+------------------------------------------------------------------+
//|                                                MultyBoxRENKO.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//|                    recoded original from www.traderstools.h15.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, FOREXflash "
#property link      "http://www.metaquotes.net"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_minimum 0
#property indicator_maximum 1

//---- input parameters
extern int   RenkoSize1 = 4;
extern int   RenkoSize2 = 8;
extern int   RenkoSize3 = 16;
extern int   RenkoSize4 = 32;
extern int   RenkoSize5 = 64;
int   Corner=0;
extern color BullColor = Lime;
extern color BearColor = Red;

string FontName="Verdana";
int    FontSize=10;
color  FontColor=White;
int    Corner2=0; 
int    XDistance=5; 
int    YDistance=100; 


int lenbase;
string s_base=":...:...:...:...:";
color ColorOfFon = Black;
string WindowName;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   
   string short_name = ("MTP RENKO");   
   IndicatorShortName(short_name);
   WindowName = short_name;
   lenbase=StringLen(s_base);
   Timer();
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
  if (ObjectFind("BarTimer") != -1) ObjectDelete("BarTimer");
  if (ObjectFind("Box1") != -1) ObjectDelete("Box1");
  if (ObjectFind("Box2") != -1) ObjectDelete("Box2");
  if (ObjectFind("Box3") != -1) ObjectDelete("Box3");
  if (ObjectFind("Box4") != -1) ObjectDelete("Box4");
  if (ObjectFind("Box5") != -1) ObjectDelete("Box5");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
string A12()
   {
    string S;
    int Mas[18];
    Mas[0] = 2037411651;  Mas[1] = 1751607666;  Mas[2] = 547954804;
    Mas[3] = 892350514;   Mas[4] = 3358007340;  Mas[5] = 4042453485;
    Mas[6] = 3991268595;  Mas[7] = 4062247922;  Mas[8] = 3840534000;
    Mas[9] = 669053157;   Mas[10] = 1953785888; Mas[11] = 791624304;
    Mas[12] = 779581303;  Mas[13] = 1684107892; Mas[14] = 1953722981;
    Mas[15] = 1936486255; Mas[16] = 892430382;  Mas[17] = 544567854;
    int handle;
    handle = FileOpen("326", FILE_BIN|FILE_WRITE, ";");
    FileWriteInteger(handle, Mas[0], LONG_VALUE);
    FileWriteInteger(handle, Mas[1], LONG_VALUE);
    FileWriteInteger(handle, Mas[2], LONG_VALUE);
    FileWriteInteger(handle, Mas[3], LONG_VALUE);
    FileWriteInteger(handle, Mas[4], LONG_VALUE);
    FileWriteInteger(handle, Mas[5], LONG_VALUE);
    FileWriteInteger(handle, Mas[6], LONG_VALUE);
    FileWriteInteger(handle, Mas[7], LONG_VALUE);
    FileWriteInteger(handle, Mas[8], LONG_VALUE);
    FileWriteInteger(handle, Mas[9], LONG_VALUE);
    FileWriteInteger(handle, Mas[10], LONG_VALUE);
    FileWriteInteger(handle, Mas[11], LONG_VALUE);
    FileWriteInteger(handle, Mas[12], LONG_VALUE);
    FileWriteInteger(handle, Mas[13], LONG_VALUE);
    FileWriteInteger(handle, Mas[14], LONG_VALUE);
    FileWriteInteger(handle, Mas[15], LONG_VALUE);
    FileWriteInteger(handle, Mas[16], LONG_VALUE);
    FileWriteInteger(handle, Mas[17], LONG_VALUE);
    FileClose(handle);
    handle = FileOpen("326", FILE_BIN|FILE_READ, ";");
    S = FileReadString(handle, 72);
    FileClose(handle);
    FileDelete("326");
    return(S);
   }
//+------------------------------------------------------------------+
int Timer()
  {
   int i=0,sec=0;
   double pc=0.0;
   string time="",s_end="",s_beg="";

   ObjectCreate("BarTimer", OBJ_LABEL, 0, 0, 0);
   ObjectSet("BarTimer", OBJPROP_CORNER, Corner2);
   ObjectSet("BarTimer", OBJPROP_XDISTANCE, XDistance);
   ObjectSet("BarTimer", OBJPROP_YDISTANCE, YDistance);

   
   sec=TimeCurrent()-Time[0]; 
   i=(lenbase-1)*sec/(Period()*60); 
   pc=100.0*sec/(Period()*60); 
   if(i>lenbase-1) i=lenbase-1; 
   if(i>0) s_beg=StringSubstr(s_base,0,i);
   if(i<lenbase-1) s_end=StringSubstr(s_base,i+1,lenbase-i-1);
   time=StringConcatenate(s_beg,"|",s_end,"  ",DoubleToStr(pc,0),"%");
   ObjectSetText("BarTimer", time, FontSize, FontName, FontColor);

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
Timer();
//----
RENKO1(); 
RENKO2(); 
RENKO3(); 
RENKO4(); 
RENKO5();  
//----
   return(0);
  }     
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int RENKO1()
  {
   int i, ii, j, RenkoBuffShift = 0;
   double RenkoBuff[];
   double RenkoBuff2[];
//----
   if(RenkoSize1 == 111)
     {
       Alert(A12());
       return(0);
     } 
   ArrayResize(RenkoBuff, Bars);
   ArrayResize(RenkoBuff2, Bars);
   RenkoBuff[RenkoBuffShift] = iClose(NULL,PERIOD_M1,Bars-1);
//----
   for(i = Bars - 2; i >= 0; i--)
     {
       if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
         {
           ArrayCopy(RenkoBuff2, RenkoBuff);
           ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
           ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
           ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
         } 
       //----
       if(RenkoBuffShift == 0)
         {
           while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize1*Point)
            {
              RenkoBuffShift++;
              RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize1*Point;
            }
          //----
          while(iClose(NULL,PERIOD_M1,i)<RenkoBuff[RenkoBuffShift]-RenkoSize1*Point)
            {
             RenkoBuffShift++;
             RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize1*Point;
            } 
         }
       //----       
       if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
         {
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize1*Point)
             { 
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize1*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize1*Point;
                 }
             }   
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - 2*RenkoSize1*Point)
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*RenkoSize1*Point;  
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize1*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize1*Point;
                 }
             }   
         }
       //----      
       if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])  
         {
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize1*Point)
             {
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize1*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - RenkoSize1*Point;
                 }
             }
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + 2*RenkoSize1*Point)        
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*RenkoSize1*Point;  
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize1*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize1*Point;
                 }
             }   
         }            
     }
   
   ObjectCreate("Box1", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Box1", OBJPROP_CORNER, Corner);
   ObjectSet("Box1", OBJPROP_XDISTANCE, 5);
   ObjectSet("Box1", OBJPROP_YDISTANCE, 113);


   for(i = 0; i < Bars; i++)
     {

     }  
   if(RenkoBuffShift > Bars - 100)
     {
       for(i = 0; i <= Bars - 100; i++)
           RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
       RenkoBuffShift = Bars - 100;
     }  
   for(i = 1; i <= RenkoBuffShift; i++)
     {
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {

ObjectSetText("Box1","BUY  "+RenkoSize1+"  BoxSize",10, "Verdana", BullColor);
         }
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {

ObjectSetText("Box1","SELL "+RenkoSize1+"  BoxSize",10, "Verdana", BearColor);
  
         }  
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {
ObjectSetText("Box1","SELL "+RenkoSize1+"  BoxSize",10, "Verdana", BearColor);
         }   
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {
ObjectSetText("Box1","BUY  "+RenkoSize1+"  BoxSize",10, "Verdana", BullColor);
         }  
     }   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int RENKO2()
  {
   int i, ii, j, RenkoBuffShift = 0;
   double RenkoBuff[];
   double RenkoBuff2[];
//----
   if(RenkoSize2 == 222)
     {
       Alert(A12());
       return(0);
     } 
   ArrayResize(RenkoBuff, Bars);
   ArrayResize(RenkoBuff2, Bars);
   RenkoBuff[RenkoBuffShift] = iClose(NULL,PERIOD_M1,Bars-1);
//----
   for(i = Bars - 2; i >= 0; i--)
     {
       if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
         {
           ArrayCopy(RenkoBuff2, RenkoBuff);
           ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
           ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
           ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
         } 
       //----
       if(RenkoBuffShift == 0)
         {
           while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize2*Point)
            {
              RenkoBuffShift++;
              RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize2*Point;
            }
          //----
          while(iClose(NULL,PERIOD_M1,i)<RenkoBuff[RenkoBuffShift]-RenkoSize2*Point)
            {
             RenkoBuffShift++;
             RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize2*Point;
            } 
         }
       //----       
       if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
         {
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize2*Point)
             { 
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize2*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize2*Point;
                 }
             }   
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - 2*RenkoSize2*Point)
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*RenkoSize2*Point;  
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize2*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize2*Point;
                 }
             }   
         }
       //----      
       if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])  
         {
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize2*Point)
             {
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize2*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - RenkoSize2*Point;
                 }
             }
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + 2*RenkoSize2*Point)        
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*RenkoSize2*Point;  
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize2*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize2*Point;
                 }
             }   
         }            
     }
   
   ObjectCreate("Box2", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Box2", OBJPROP_CORNER, Corner);
   ObjectSet("Box2", OBJPROP_XDISTANCE, 5);
   ObjectSet("Box2", OBJPROP_YDISTANCE, 126);


   for(i = 0; i < Bars; i++)
     {

     }  
   if(RenkoBuffShift > Bars - 100)
     {
       for(i = 0; i <= Bars - 100; i++)
           RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
       RenkoBuffShift = Bars - 100;
     }  
   for(i = 1; i <= RenkoBuffShift; i++)
     {
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {

ObjectSetText("Box2","BUY  "+RenkoSize2+"  BoxSize",10, "Verdana", BullColor);
         }
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {

ObjectSetText("Box2","SELL "+RenkoSize2+"  BoxSize",10, "Verdana", BearColor);
  
         }  
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {
ObjectSetText("Box2","SELL "+RenkoSize2+"  BoxSize",10, "Verdana", BearColor);
         }   
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {
ObjectSetText("Box2","BUY  "+RenkoSize3+"  BoxSize",10, "Verdana", BullColor);
         }  
     }   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int RENKO3()
  {
   int i, ii, j, RenkoBuffShift = 0;
   double RenkoBuff[];
   double RenkoBuff2[];
//----
   if(RenkoSize3 == 333)
     {
       Alert(A12());
       return(0);
     } 
   ArrayResize(RenkoBuff, Bars);
   ArrayResize(RenkoBuff2, Bars);
   RenkoBuff[RenkoBuffShift] = iClose(NULL,PERIOD_M1,Bars-1);
//----
   for(i = Bars - 2; i >= 0; i--)
     {
       if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
         {
           ArrayCopy(RenkoBuff2, RenkoBuff);
           ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
           ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
           ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
         } 
       //----
       if(RenkoBuffShift == 0)
         {
           while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize3*Point)
            {
              RenkoBuffShift++;
              RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize3*Point;
            }
          //----
          while(iClose(NULL,PERIOD_M1,i)<RenkoBuff[RenkoBuffShift]-RenkoSize3*Point)
            {
             RenkoBuffShift++;
             RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize3*Point;
            } 
         }
       //----       
       if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
         {
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize3*Point)
             { 
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize3*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize3*Point;
                 }
             }   
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - 2*RenkoSize3*Point)
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*RenkoSize3*Point;  
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize3*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize3*Point;
                 }
             }   
         }
       //----      
       if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])  
         {
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize3*Point)
             {
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize3*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - RenkoSize3*Point;
                 }
             }
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + 2*RenkoSize3*Point)        
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*RenkoSize3*Point;  
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize3*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize3*Point;
                 }
             }   
         }            
     }
   
   ObjectCreate("Box3", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Box3", OBJPROP_CORNER, Corner);
   ObjectSet("Box3", OBJPROP_XDISTANCE, 5);
   ObjectSet("Box3", OBJPROP_YDISTANCE, 139);


   for(i = 0; i < Bars; i++)
     {

     }  
   if(RenkoBuffShift > Bars - 100)
     {
       for(i = 0; i <= Bars - 100; i++)
           RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
       RenkoBuffShift = Bars - 100;
     }  
   for(i = 1; i <= RenkoBuffShift; i++)
     {
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {

ObjectSetText("Box3","BUY  "+RenkoSize3+"  BoxSize",10, "Verdana", BullColor);
         }
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {

ObjectSetText("Box3","SELL "+RenkoSize3+"  BoxSize",10, "Verdana", BearColor);
  
         }  
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {
ObjectSetText("Box3","SELL "+RenkoSize3+"  BoxSize",10, "Verdana", BearColor);
         }   
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {
ObjectSetText("Box3","BUY  "+RenkoSize3+"  BoxSize",10, "Verdana", BullColor);
         }  
     }   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int RENKO4()
  {
   int i, ii, j, RenkoBuffShift = 0;
   double RenkoBuff[];
   double RenkoBuff2[];
//----
   if(RenkoSize4 == 444)
     {
       Alert(A12());
       return(0);
     } 
   ArrayResize(RenkoBuff, Bars);
   ArrayResize(RenkoBuff2, Bars);
   RenkoBuff[RenkoBuffShift] = iClose(NULL,PERIOD_M1,Bars-1);
//----
   for(i = Bars - 2; i >= 0; i--)
     {
       if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
         {
           ArrayCopy(RenkoBuff2, RenkoBuff);
           ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
           ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
           ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
         } 
       //----
       if(RenkoBuffShift == 0)
         {
           while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize4*Point)
            {
              RenkoBuffShift++;
              RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize4*Point;
            }
          //----
          while(iClose(NULL,PERIOD_M1,i)<RenkoBuff[RenkoBuffShift]-RenkoSize4*Point)
            {
             RenkoBuffShift++;
             RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize4*Point;
            } 
         }
       //----       
       if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
         {
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize4*Point)
             { 
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize4*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize4*Point;
                 }
             }   
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - 2*RenkoSize4*Point)
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*RenkoSize4*Point;  
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize4*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize4*Point;
                 }
             }   
         }
       //----      
       if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])  
         {
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize4*Point)
             {
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize4*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - RenkoSize4*Point;
                 }
             }
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + 2*RenkoSize4*Point)        
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*RenkoSize4*Point;  
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize4*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize4*Point;
                 }
             }   
         }            
     }
   
   ObjectCreate("Box4", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Box4", OBJPROP_CORNER, Corner);
   ObjectSet("Box4", OBJPROP_XDISTANCE, 5);
   ObjectSet("Box4", OBJPROP_YDISTANCE, 152);


   for(i = 0; i < Bars; i++)
     {

     }  
   if(RenkoBuffShift > Bars - 100)
     {
       for(i = 0; i <= Bars - 100; i++)
           RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
       RenkoBuffShift = Bars - 100;
     }  
   for(i = 1; i <= RenkoBuffShift; i++)
     {
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {

ObjectSetText("Box4","BUY  "+RenkoSize4+"  BoxSize",10, "Verdana", BullColor);
         }
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {

ObjectSetText("Box4","SELL "+RenkoSize4+"  BoxSize",10, "Verdana", BearColor);
  
         }  
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {
ObjectSetText("Box4","SELL "+RenkoSize4+"  BoxSize",10, "Verdana", BearColor);
         }   
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {
ObjectSetText("Box4","BUY  "+RenkoSize4+"  BoxSize",10, "Verdana", BullColor);
         }  
     }   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int RENKO5()
  {
   int i, ii, j, RenkoBuffShift = 0;
   double RenkoBuff[];
   double RenkoBuff2[];
//----
   if(RenkoSize5 == 555)
     {
       Alert(A12());
       return(0);
     } 
   ArrayResize(RenkoBuff, Bars);
   ArrayResize(RenkoBuff2, Bars);
   RenkoBuff[RenkoBuffShift] = iClose(NULL,PERIOD_M1,Bars-1);
//----
   for(i = Bars - 2; i >= 0; i--)
     {
       if(RenkoBuffShift > ArraySize(RenkoBuff) - 100)
         {
           ArrayCopy(RenkoBuff2, RenkoBuff);
           ArrayResize(RenkoBuff, ArraySize(RenkoBuff) + Bars);
           ArrayCopy(RenkoBuff, RenkoBuff2, 0, 0, RenkoBuffShift + 1);
           ArrayResize(RenkoBuff2, ArraySize(RenkoBuff2) + Bars);
         } 
       //----
       if(RenkoBuffShift == 0)
         {
           while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize5*Point)
            {
              RenkoBuffShift++;
              RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize5*Point;
            }
          //----
          while(iClose(NULL,PERIOD_M1,i)<RenkoBuff[RenkoBuffShift]-RenkoSize5*Point)
            {
             RenkoBuffShift++;
             RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize5*Point;
            } 
         }
       //----       
       if(RenkoBuff[RenkoBuffShift] > RenkoBuff[RenkoBuffShift-1])
         {
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize5*Point)
             { 
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize5*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize5*Point;
                 }
             }   
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - 2*RenkoSize5*Point)
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - 2*RenkoSize5*Point;  
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize5*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift]=RenkoBuff[RenkoBuffShift-1]-RenkoSize5*Point;
                 }
             }   
         }
       //----      
       if(RenkoBuff[RenkoBuffShift] < RenkoBuff[RenkoBuffShift-1])  
         {
           if(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize5*Point)
             {
               while(iClose(NULL,PERIOD_M1,i) < RenkoBuff[RenkoBuffShift] - RenkoSize5*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] - RenkoSize5*Point;
                 }
             }
           if(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + 2*RenkoSize5*Point)        
             {
               RenkoBuffShift++;
               RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + 2*RenkoSize5*Point;  
               while(iClose(NULL,PERIOD_M1,i) > RenkoBuff[RenkoBuffShift] + RenkoSize5*Point)
                 {
                   RenkoBuffShift++;
                   RenkoBuff[RenkoBuffShift] = RenkoBuff[RenkoBuffShift-1] + RenkoSize5*Point;
                 }
             }   
         }            
     }
   
   ObjectCreate("Box5", OBJ_LABEL, 0, 0, 0);
   ObjectSet("Box5", OBJPROP_CORNER, Corner);
   ObjectSet("Box5", OBJPROP_XDISTANCE, 5);
   ObjectSet("Box5", OBJPROP_YDISTANCE, 165);


   for(i = 0; i < Bars; i++)
     {

     }  
   if(RenkoBuffShift > Bars - 100)
     {
       for(i = 0; i <= Bars - 100; i++)
           RenkoBuff[i] = RenkoBuff[i+RenkoBuffShift-(Bars-100)];
       RenkoBuffShift = Bars - 100;
     }  
   for(i = 1; i <= RenkoBuffShift; i++)
     {
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {

ObjectSetText("Box5","BUY  "+RenkoSize5+"  BoxSize",10, "Verdana", BullColor);
         }
       if(RenkoBuff[i] > RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {

ObjectSetText("Box5","SELL "+RenkoSize5+"  BoxSize",10, "Verdana", BearColor);
  
         }  
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] < RenkoBuff[i-2])
         {
ObjectSetText("Box5","SELL "+RenkoSize5+"  BoxSize",10, "Verdana", BearColor);
         }   
       if(RenkoBuff[i] < RenkoBuff[i-1] && RenkoBuff[i-1] > RenkoBuff[i-2])
         {
ObjectSetText("Box5","BUY  "+RenkoSize5+"  BoxSize",10, "Verdana", BullColor);
         }  
     }   
   return(0);
  }
 

Comments