Could you help me with my code I am a newbie

 

Hello I have a code that I have been modifying with what little I have been able to learn but I feel stuck I have not been able to finish what I need if someone can help me I appreciate it .. the following code its function what it does is draw a rectangle to a certain time that I want but that rectangle draws it in M15 and that is correct but I would like that when changing to M5 the rectangle remains the same as if it were drawn in m15 and not as M5 .. thanks to who can help me

#property indicator_chart_window

//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -------------------------------
extern int    Numeros_De_Dias = 1;             // Êîëè÷åñòâî äíåé
extern string Horario_Apertura_USA     = "03:45";        // Îòêðûòèå àìåðèêàíñêîé ñåññèè
extern string Horario_Cierre_USA       = "04:15";        // Çàêðûòèå àìåðèêàíñêîé ñåññèè
extern color  Color     = Teal;      // Öâåò àìåðèêàíñêîé ñåññèè
extern bool   Mostrar_Precio_Apertura_y_Cierre    = False;          // Ïîêàçûâàòü öåíîâûå óðîâíè
extern color  clFont       = Blue;           // Öâåò øðèôòà
extern int    SizeFont     = 8;              // Ðàçìåð øðèôòà
extern int    OffSet       = 10;             // Ñìåùåíèå

string noFs[]; //array of object names 
string noF[]; //array of object names 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {
  DeleteObjects();
  for (int i=0; i<Numeros_De_Dias; i++) {
    CreateObjects("USFYY"+i, Color);
  }
  Comment("");
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit() {
  int iaCount=ArraySize(noF); 
   for(int i=0; i<iaCount; i++) 
    
      if ( UninitializeReason() != REASON_CHARTCHANGE)
      if(ObjectFind(noF[i])>-1) ObjectDelete(noF[i]);
  DeleteObjects();
  Comment("");
}

//+------------------------------------------------------------------+
//| Ñîçäàíèå îáúåêòîâ èíäèêàòîðà                                     |
//| Ïàðàìåòðû:                                                       |
//|   no - íàèìåíîâàíèå îáúåêòà                                      |
//|   cl - öâåò îáúåêòà                                              |
//+------------------------------------------------------------------+
void CreateObjects(string noF, color cl) {
{if(Period()==PERIOD_M15)
   ObjectCreate(noF, OBJ_RECTANGLE, 0, 0,0, 0,0);
  ObjectSetInteger(0,noF,OBJPROP_TIMEFRAMES,OBJ_ALL_PERIODS);
  ObjectSet(noF, OBJPROP_STYLE, STYLE_SOLID);
  ObjectSet(noF, OBJPROP_COLOR, cl);
  ObjectSet(noF, OBJPROP_BACK, True);
  ObjectSet(noF, OBJPROP_SELECTABLE,True);
 } 
}

//+------------------------------------------------------------------+
//| Óäàëåíèå îáúåêòîâ èíäèêàòîðà                                     |
//+------------------------------------------------------------------+
void DeleteObjects() {
  for (int i=0; i<Numeros_De_Dias; i++) {
    
    ObjectDelete("USFYY"+i);
  }
  
  ObjectDelete("USFYYup");
  ObjectDelete("USFYYdn");
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start()
 {

 
  datetime dt=CurTime();
  
  for (int i=0; i<Numeros_De_Dias; i++) {
    if (Mostrar_Precio_Apertura_y_Cierre && i==0) {
     
      DrawPrices(dt, "USFYY", Horario_Apertura_USA, Horario_Cierre_USA);
    }
    
    DrawObjects(dt, "USFYY"+i, Horario_Apertura_USA, Horario_Cierre_USA);
    dt=decDateTradeDay(dt);
    while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt);
  }
   

  
 
}


//+------------------------------------------------------------------+
//| Ïðîðèñîâêà îáúåêòîâ íà ãðàôèêå                                   |
//| Ïàðàìåòðû:                                                       |
//|   dt - äàòà òîðãîâîãî äíÿ                                        |
//|   no - íàèìåíîâàíèå îáúåêòà                                      |
//|   tb - âðåìÿ íà÷àëà ñåññèè                                       |
//|   te - âðåìÿ îêîí÷àíèÿ ñåññèè                                    |
//+------------------------------------------------------------------+
void DrawObjects(datetime dt, string noF, string tb, string te) {
  datetime t1, t2;
  double   p1, p2;
  int      b1, b2;

  t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
  t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
  b1=iBarShift(NULL, 0, t1);
  b2=iBarShift(NULL, 0, t2);
  p1=Close[Highest(NULL, 0, MODE_CLOSE, b1-b2, b2)];
  p2=Close [Lowest (NULL, 0, MODE_CLOSE , b1-b2, b2)];
  ObjectSet(noF, OBJPROP_TIME1 , t1);
  ObjectSet(noF, OBJPROP_PRICE1, p1);
  ObjectSet(noF, OBJPROP_TIME2 , t2);
  ObjectSet(noF, OBJPROP_PRICE2, p2);
   {
  int mBoxTime;
  
  
  if(Time[0] > mBoxTime)
   {
     for(int i = ObjectsTotal()+0; i >= 0; i--)
       if(StringSubstr(ObjectName(i), 0, 5) == "USFYY")
         ObjectSet(ObjectName(i), OBJPROP_TIME2, Time[0]*2);

      mBoxTime = Time[0];
   }

  return (0);
 }
}

//+------------------------------------------------------------------+
//| Ïðîðèñîâêà öåíîâûõ ìåòîê íà ãðàôèêå                              |
//| Ïàðàìåòðû:                                                       |
//|   dt - äàòà òîðãîâîãî äíÿ                                        |
//|   no - íàèìåíîâàíèå îáúåêòà                                      |
//|   tb - âðåìÿ íà÷àëà ñåññèè                                       |
//|   te - âðåìÿ îêîí÷àíèÿ ñåññèè                                    |
//+------------------------------------------------------------------+
void DrawPrices(datetime dt, string noF, string tb, string te) {
  datetime t1, t2;
  double   p1, p2;
  int      b1, b2;

  t1=StrToTime(TimeToStr(dt, TIME_DATE)+" "+tb);
  t2=StrToTime(TimeToStr(dt, TIME_DATE)+" "+te);
  b1=iBarShift(NULL, 0, t1);
  b2=iBarShift(NULL, 0, t2);
  p1=Close[Highest(NULL, 0, MODE_CLOSE, b1-b2, b2)];
  p2=Close [Lowest (NULL, 0, MODE_CLOSE , b1-b2, b2)];


}

//+------------------------------------------------------------------+
//| Óìåíüøåíèå äàòû íà îäèí òîðãîâûé äåíü                            |
//| Ïàðàìåòðû:                                                       |
//|   dt - äàòà òîðãîâîãî äíÿ                                        |
//+------------------------------------------------------------------+
datetime decDateTradeDay (datetime dt) {
  int ty=TimeYear(dt);
  int tm=TimeMonth(dt);
  int td=TimeDay(dt);
  int th=TimeHour(dt);
  int ti=TimeMinute(dt);

  td--;
  if (td==0) {
    tm--;
    if (tm==0) {
      ty--;
      tm=12;
    }
    if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12) td=31;
    if (tm==2) if (MathMod(ty, 4)==0) td=29; else td=28;
    if (tm==4 || tm==6 || tm==9 || tm==11) td=30;
  }
  return(StrToTime(ty+"."+tm+"."+td+" "+th+":"+ti));
}
//+------------------------------------------------------------------+

Reason: