Problems with dashboard

 

Good morning friends, I am writing a simple table, using moving averages, and I am making a mistake that I cannot detect.

I leave you an image in which surely you can quickly see what I am doing, and the mq4 code.

Thank you very much in advance, I am very grateful if someone helps me with this.


Files:
 

Try this .

The first loop goes through your labels ,finds the biggest in width and assigns that value plus the offset as the offset value (xm)

//+------------------------------------------------------------------+
//|                                                     Multiple.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 12

int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"};
string signalNameString[]={"SMA5","EMA5","SMA10","EMA10","SMA20","EMA20","SMA50","EMA50","SMA100","EMA100","SMA200","EMA200"};

extern int scaleX=20, // horizontal interval at which the squares are created
           scaleY=20, // vertical interval
           offsetX=35, // horizontal indent of all squares
           offsetY=50, // vertical indent
           fontSize=20, // font size
           corner=0;
           
extern color signalBuyColor=clrGreen,
             signalSellColor=clrRed;
             //noSignalColor=WhiteSmoke, //Disabled for the moment
             //textColor=Gold;           //Disabled for the moment

//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
double Buffer9[];
double Buffer10[];
double Buffer11[];
double Buffer12[];

double myPoint; //initialized in OnInit


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
   uint indynames_max=0;
   TextSetFont("Tahoma",8,0,0);
   int x;
   int y;   
   for(int y=0;y<12;y++)
       {
       uint w,h;
       TextGetSize(signalNameString[y],w,h);
       if(w>indynames_max) indynames_max=w;
       }
   int xm=indynames_max+offsetX;
   for(int x=0;x<9;x++)
   for(int y=0;y<12;y++)
        {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
         // change the corner
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+xm);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(110),fontSize,"Wingdings",Gold);
        }
 
   // name of timeframes
   for(x=0;x<9;x++)
        {
         ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
         //ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
         // changing the corner
         ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+xm+(scaleX/2));
         ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY+scaleY/8);
         ObjectSetText("textPeriod"+x,periodString[x],8,"Tahoma",Gold);
         ObjectSetDouble(ChartID(),"textPeriod"+x,OBJPROP_ANGLE,90);
         ObjectSetInteger(ChartID(),"textPeriod"+x,OBJPROP_ANCHOR,ANCHOR_LEFT);
        }
 
   // names of indicators
   for(y=0;y<12;y++)
       {
        ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
        //ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);
        // change the corner
        ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,xm);
        ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*scaleY+offsetY+scaleY/2);
        ObjectSetText("textSignal"+y,signalNameString[y],8,"Tahoma",Gold);
        ObjectSetInteger(ChartID(),"textSignal"+y,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
       }
   
  
   //initialize myPoint
        myPoint = Point();
        if(Digits() == 5 || Digits() == 3)
       {
        myPoint *= 10;
       }
       
     return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
   int limit = rates_total - prev_calculated;
   
   ArraySetAsSeries(Buffer1, true);
   ArraySetAsSeries(Buffer2, true);
   ArraySetAsSeries(Buffer3, true);
   ArraySetAsSeries(Buffer4, true);
   ArraySetAsSeries(Buffer5, true);
   ArraySetAsSeries(Buffer6, true);
   ArraySetAsSeries(Buffer7, true);
   ArraySetAsSeries(Buffer8, true);
   ArraySetAsSeries(Buffer9, true);
   ArraySetAsSeries(Buffer10, true);
   ArraySetAsSeries(Buffer11, true);
   ArraySetAsSeries(Buffer12, true);
 
   if(prev_calculated < 1)
     {
      ArrayInitialize(Buffer1, 0);
      ArrayInitialize(Buffer2, 0);
      ArrayInitialize(Buffer3, 0);
      ArrayInitialize(Buffer4, 0);
      ArrayInitialize(Buffer5, 0);
      ArrayInitialize(Buffer6, 0);
      ArrayInitialize(Buffer7, 0);
      ArrayInitialize(Buffer8, 0);
      ArrayInitialize(Buffer9, 0);
      ArrayInitialize(Buffer10, 0);
      ArrayInitialize(Buffer11, 0);
      ArrayInitialize(Buffer12, 0);
     }
   else
      limit++;
   
   //--- main loop
   for(int i = limit-1; i >= 0; i--)
     {
      if (i >= MathMin(5000-1, rates_total-1-50)) continue; //omit some old rates to prevent "Array out of range"
      
  //- 
   int x;    
   for(int x=0;x<9;x++)
    
    
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//        
      
      //Indicator Buffer 1
      
      if(Bid > iMA(NULL, period[x], 5, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average 
      
        ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//        

      //Indicator Buffer 2
      
      if(Bid > iMA(NULL, period[x], 5, 0, MODE_EMA, PRICE_CLOSE, i))//Price > Moving Average
      
      ObjectSetText("signal"+x+"1",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"1",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
        
      //Indicator Buffer 3
      
      if(Bid > iMA(NULL, period[x], 10, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      

      ObjectSetText("signal"+x+"2",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"2",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
    
     //Indicator Buffer 4
      
      if(Bid > iMA(NULL, period[x], 10, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"3",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"3",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
      
      //Indicator Buffer 5
      
      if(Bid > iMA(NULL, period[x], 20, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"4",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"4",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
    
     //Indicator Buffer 6
      
      if(Bid > iMA(NULL, period[x], 20, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"5",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"5",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 7
      
      if(Bid > iMA(NULL, period[x], 50, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"6",CharToStr(110),fontSize,"Wingdings",signalBuyColor);  
      else
        {
       ObjectSetText("signal"+x+"6",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 8
      if(Bid > iMA(NULL, period[x], 50, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"7",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
       else
        {
        ObjectSetText("signal"+x+"7",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 9
      
      if(Bid > iMA(NULL, period[x], 100, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"8",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"8",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
        
      //Indicator Buffer 10
      
      if(Bid > iMA(NULL, period[x], 100, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"9",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"9",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
      
      //Indicator Buffer 11
      
      if(Bid > iMA(NULL, period[x], 200, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"10",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"10",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 12
      if (Bid > iMA(NULL, period[x], 200, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"11",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"11",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
     }
     return(0);
   
  }
//+------------------------------------------------------------------+
 
Lorentzos Roussos:

Try this .

The first loop goes through your labels ,finds the biggest in width and assigns that value plus the offset as the offset value (xm)

Oh, thank you very much, the truth is that you have solved one of the problems I had, that of the placement of the posters, thanks for the help.

But my main problem is that only one of the rows of x and one of the rows of y is filled, and the rest are not.

I have checked the code many times, and I cannot find the problem. It is a very simple code, but I can't fix it.


 
Enrique Enguix Vino:

Oh, thank you very much, the truth is that you have solved one of the problems I had, that of the placement of the posters, thanks for the help.

But my main problem is that only one of the rows of x and one of the rows of y is filled, and the rest are not.

I have checked the code many times, and I cannot find the problem. It is a very simple code, but I can't fix it.


You are not iterating through the main boxes . you have 12 buffers but 12*9 boxes 

//+------------------------------------------------------------------+
//|                                                     Multiple.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 12

int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"};
string signalNameString[]={"SMA5","EMA5","SMA10","EMA10","SMA20","EMA20","SMA50","EMA50","SMA100","EMA100","SMA200","EMA200"};

extern int scaleX=20, // horizontal interval at which the squares are created
           scaleY=20, // vertical interval
           offsetX=35, // horizontal indent of all squares
           offsetY=50, // vertical indent
           fontSize=20, // font size
           corner=0;
           
extern color signalBuyColor=clrGreen,
             signalSellColor=clrRed;
             //noSignalColor=WhiteSmoke, //Disabled for the moment
             //textColor=Gold;           //Disabled for the moment

//--- indicator buffers
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];
double Buffer9[];
double Buffer10[];
double Buffer11[];
double Buffer12[];

double myPoint; //initialized in OnInit


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
   uint indynames_max=0;
   TextSetFont("Tahoma",8,0,0);
   int x;
   int y;   
   for(int y=0;y<12;y++)
       {
       uint w,h;
       TextGetSize(signalNameString[y],w,h);
       if(w>indynames_max) indynames_max=w;
       }
   int xm=indynames_max+offsetX;
   for(int x=0;x<9;x++)
   for(int y=0;y<12;y++)
        {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
         // change the corner
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+xm);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(110),fontSize,"Wingdings",Gold);
        }
 
   // name of timeframes
   for(x=0;x<9;x++)
        {
         ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
         //ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
         // changing the corner
         ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+xm+(scaleX/2));
         ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY+scaleY/8);
         ObjectSetText("textPeriod"+x,periodString[x],8,"Tahoma",Gold);
         ObjectSetDouble(ChartID(),"textPeriod"+x,OBJPROP_ANGLE,90);
         ObjectSetInteger(ChartID(),"textPeriod"+x,OBJPROP_ANCHOR,ANCHOR_LEFT);
        }
 
   // names of indicators
   for(y=0;y<12;y++)
       {
        ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
        //ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);
        // change the corner
        ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,xm);
        ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*scaleY+offsetY+scaleY/2);
        ObjectSetText("textSignal"+y,signalNameString[y],8,"Tahoma",Gold);
        ObjectSetInteger(ChartID(),"textSignal"+y,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
       }
   
  
   //initialize myPoint
        myPoint = Point();
        if(Digits() == 5 || Digits() == 3)
       {
        myPoint *= 10;
       }
       
     return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
  {
   int limit = rates_total - prev_calculated;
   
   ArraySetAsSeries(Buffer1, true);
   ArraySetAsSeries(Buffer2, true);
   ArraySetAsSeries(Buffer3, true);
   ArraySetAsSeries(Buffer4, true);
   ArraySetAsSeries(Buffer5, true);
   ArraySetAsSeries(Buffer6, true);
   ArraySetAsSeries(Buffer7, true);
   ArraySetAsSeries(Buffer8, true);
   ArraySetAsSeries(Buffer9, true);
   ArraySetAsSeries(Buffer10, true);
   ArraySetAsSeries(Buffer11, true);
   ArraySetAsSeries(Buffer12, true);
 
   if(prev_calculated < 1)
     {
      ArrayInitialize(Buffer1, 0);
      ArrayInitialize(Buffer2, 0);
      ArrayInitialize(Buffer3, 0);
      ArrayInitialize(Buffer4, 0);
      ArrayInitialize(Buffer5, 0);
      ArrayInitialize(Buffer6, 0);
      ArrayInitialize(Buffer7, 0);
      ArrayInitialize(Buffer8, 0);
      ArrayInitialize(Buffer9, 0);
      ArrayInitialize(Buffer10, 0);
      ArrayInitialize(Buffer11, 0);
      ArrayInitialize(Buffer12, 0);
     }
   else
      limit++;
   
   //--- main loop 
   for(int i = limit-1; i >= 0; i--)
     {
      if (i >= MathMin(5000-1, rates_total-1-50)) continue; //omit some old rates to prevent "Array out of range"
      
  //- 
   int x;    
   //Loop to timeframes starts here
   for(int x=0;x<9;x++)
    {
    
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//        
      
      //Indicator Buffer 1
      
      if(Bid > iMA(NULL, period[x], 5, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average 
      
        ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//        

      //Indicator Buffer 2
      
      if(Bid > iMA(NULL, period[x], 5, 0, MODE_EMA, PRICE_CLOSE, i))//Price > Moving Average
      
      ObjectSetText("signal"+x+"1",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"1",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
        
      //Indicator Buffer 3
      
      if(Bid > iMA(NULL, period[x], 10, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      

      ObjectSetText("signal"+x+"2",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"2",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
    
     //Indicator Buffer 4
      
      if(Bid > iMA(NULL, period[x], 10, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"3",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"3",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
      
      //Indicator Buffer 5
      
      if(Bid > iMA(NULL, period[x], 20, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"4",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"4",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
    
     //Indicator Buffer 6
      
      if(Bid > iMA(NULL, period[x], 20, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"5",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"5",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 7
      
      if(Bid > iMA(NULL, period[x], 50, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"6",CharToStr(110),fontSize,"Wingdings",signalBuyColor);  
      else
        {
       ObjectSetText("signal"+x+"6",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 8
      if(Bid > iMA(NULL, period[x], 50, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
       ObjectSetText("signal"+x+"7",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
       else
        {
        ObjectSetText("signal"+x+"7",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 9
      
      if(Bid > iMA(NULL, period[x], 100, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"8",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"8",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
        
      //Indicator Buffer 10
      
      if(Bid > iMA(NULL, period[x], 100, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"9",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
        ObjectSetText("signal"+x+"9",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
      
      //Indicator Buffer 11
      
      if(Bid > iMA(NULL, period[x], 200, 0, MODE_SMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"10",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"10",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//          
     
      //Indicator Buffer 12
      if (Bid > iMA(NULL, period[x], 200, 0, MODE_EMA, PRICE_CLOSE, i)) //Price > Moving Average
      
      ObjectSetText("signal"+x+"11",CharToStr(110),fontSize,"Wingdings",signalBuyColor); 
      else
        {
       ObjectSetText("signal"+x+"11",CharToStr(110),fontSize,"Wingdings",signalSellColor); 
        }
        
       } 
     //Loop to timeframes ends here 
     }
     //main loop ends here
     return(0);
   
  }
//+------------------------------------------------------------------+
 
Lorentzos Roussos:

You are not iterating through the main boxes . you have 12 buffers but 12*9 boxes 

OMG, you are 100% right. Thank you very much again, I don't know how I didn't realize this. I am very grateful to you for this help

 
Enrique Enguix Vino:

OMG, you are 100% right. Thank you very much again, I don't know how I didn't realize this. I am very grateful to you for this help

You are welcome 

Reason: