Cannot get ObjectSet to modify line color

 

Hi,

I am trying to write code for back testing manually - just seeing where the SL/TP sits on the chart if trade is entered.

Copied a bit of code from the help file, which works fine except for not being able to change line color on graph.

Help would be appreciated.

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//--- Show the event parameters on the chart
   Comment(__FUNCTION__,": id=",id," lparam=",lparam," dparam=",dparam," sparam=",sparam);
//--- If this is an event of a mouse click on the chart
   if(id==CHARTEVENT_CLICK)
     {
      //--- Prepare variables
      int      x     =(int)lparam;
      int      y     =(int)dparam;
      datetime dt    =0;
      double   price =0;
      int      window=0;
      //--- Convert the X and Y coordinates in terms of date/time
      if(ChartXYToTimePrice(0,x,y,window,dt,price))
        {
         PrintFormat("Window=%d X=%d  Y=%d  =>  Time=%s  Price=%G",window,x,y,TimeToString(dt),price);
         //--- Perform reverse conversion: (X,Y) => (Time,Price)
         if(ChartTimePriceToXY(0,window,dt,price,x,y))
            PrintFormat("Time=%s  Price=%G  =>  X=%d  Y=%d",TimeToString(dt),price,x,y);
         else
            Print("ChartTimePriceToXY return error code: ",GetLastError());
         //--- delete lines
         int Barnumber = iBarShift(Symbol(),0,dt,true);
         Print("Barnumber = ",Barnumber);
         
         
         ObjectDelete(0,"V Line");
         ObjectDelete(0,"H Line1");
         ObjectDelete(0,"H Line2");
         ObjectDelete(0,"H Line3");
         ObjectDelete(0,"H Line4");  
         ObjectDelete(0,"Price Line1");                 
         
         //--- create horizontal and vertical lines of the crosshair
         ObjectCreate(0,"H Line1",OBJ_HLINE,window,dt,iOpen(NULL,0,Barnumber) + (3*iATR(Symbol(),0,14,Barnumber)));
         ObjectSet("H_Line1",OBJPROP_COLOR,clrWhite);         
         ObjectCreate(0,"H Line2",OBJ_HLINE,window,dt,iOpen(NULL,0,Barnumber) + (1.5*iATR(Symbol(),0,14,Barnumber)));
         ObjectSet("H_Line2",OBJPROP_COLOR,clrYellow);
        
         ObjectCreate(0,"Price Line1",OBJ_HLINE,window,dt,iOpen(NULL,0,Barnumber));
         
         ObjectCreate(0,"H Line3",OBJ_HLINE,window,dt,iOpen(NULL,0,Barnumber) - (1.5*iATR(Symbol(),0,14,Barnumber)));
         ObjectSet("H_Line3",OBJPROP_COLOR,clrYellow);
         ObjectCreate(0,"H Line4",OBJ_HLINE,window,dt,iOpen(NULL,0,Barnumber) - (3*iATR(Symbol(),0,14,Barnumber)));
         ObjectSet("H_Line4",OBJPROP_COLOR,clrWhite);  
         
         ObjectCreate(0,"V Line",OBJ_VLINE,window,dt,price);
         
         ChartRedraw(0);
        }
      else
         Print("ChartXYToTimePrice return error code: ",GetLastError());
      Print("+--------------------------------------------------------------+");
     }
  }
 
ObjectSetInteger(0,"H_Line1",OBJPROP_COLOR,clrWhite);   
etc...