Issue with change button colors

 

Hello everyone,

I was asked by a friend of mine to attempt a code to show similarities with matching pairs. I found a code online which sort of did it, but after I modified the code isn't working correctly. I tried to track it down again, but I was not successful in finding the code again.

Q:  How to correct the code to update only the changes to close/ open prices of the pairs not to all pairs?

void OnTick(){
   for(i=0; i<=31; i++)
     {
      button_gap=i;
      string symbol_price;
       symbol_name=symbol_list[i];
      int digits=int(MarketInfo(symbol_name,MODE_DIGITS));
      string LO=DoubleToStr(MarketInfo(symbol_name,MODE_LOW),digits);
      string HI=DoubleToStr(MarketInfo(symbol_name,MODE_HIGH),digits);
      if(market_price==PRICE_BID)
      {
      symbol_price=DoubleToStr(MarketInfo(symbol_name,MODE_BID),digits);
      }
      else if(market_price==PRICE_ASK)
      {
      symbol_price=DoubleToStr(MarketInfo(symbol_name,MODE_ASK),digits);
      }
      if(market_price==PRICE_BID || market_price==PRICE_ASK)
       {
       symbol_price="   "+symbol_price;
       }

      string symbol_text=StringSubstr(symbol_name,0,6)+symbol_price+" H "+HI+" L "+LO;
      int symbol_x_distance = 5;
      int symbol_y_distance = (button_first_y_distance+(button_height*button_gap));

      if(Close[0]<Open[0])
        {button_color=BEARISH;}
      else
        {button_color=BULLISH;}

      ObjectCreate(0,symbol_name,OBJ_BUTTON,0,0,0);                        ObjectSetInteger(0,symbol_name,OBJPROP_STATE,false);
      ObjectSetInteger(0,symbol_name,OBJPROP_XDISTANCE,symbol_x_distance); ObjectSetInteger(0,symbol_name,OBJPROP_YDISTANCE,symbol_y_distance);
      ObjectSetInteger(0,symbol_name,OBJPROP_XSIZE,button_width);          ObjectSetInteger(0,symbol_name,OBJPROP_YSIZE,button_height);
      ObjectSetInteger(0,symbol_name,OBJPROP_CORNER,symbol_corner);        ObjectSetString(0,symbol_name,OBJPROP_TEXT,symbol_text);
      ObjectSetString(0,symbol_name,OBJPROP_FONT,button_font_name);        ObjectSetInteger(0,symbol_name,OBJPROP_FONTSIZE,button_font_size);
      ObjectSetInteger(0,symbol_name,OBJPROP_COLOR,TEXT);                  ObjectSetInteger(0,symbol_name,OBJPROP_BORDER_COLOR,button_border_color);
      ObjectSetInteger(0,symbol_name,OBJPROP_BACK,false);                  ObjectSetInteger(0,symbol_name,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,symbol_name,OBJPROP_SELECTED,false);              ObjectSetInteger(0,symbol_name,OBJPROP_HIDDEN,false);
      ObjectSetInteger(0,symbol_name,OBJPROP_ZORDER,0);                    ObjectSetInteger(0,symbol_name,OBJPROP_BGCOLOR,button_color);
      }
      }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam){
   for(i=0; i<=31; i++) {
       symbol_name=symbol_list[i];

      if(sparam==symbol_name){

         if(button_action==CHART_NEW) {ChartOpen(symbol_name,TIME_FRAME);ObjectSetInteger(0,symbol_name,OBJPROP_BGCOLOR,button_color);}
         else if(button_action==CHART_CHANGE) {ChartSetSymbolPeriod(0,symbol_name,TIME_FRAME);}
  }
   }
    }
 

Hello again,

I found the problem now. This works

      if (iClose(symbol_name,TIME_FRAME,0)<iOpen(symbol_name,TIME_FRAME,0))

        {button_color=BEARISH;}
      else
        {button_color=BULLISH;}