help with code

 

i'm trying to make an indicator that works on M1, it checks if the minute candle closed above previous hour high or below previous  hour low and marks it, it seems i have a problem with getting previous hour high and low, the below code works but not consistent, sometimes it marks candles that  did not meet the criteria and i believe the problem is with the H1 values, can anyone help with how to get the values probably

int tt=range;
for(int i=tt-1; i>=0; i--)
  {
   double highM1 = iHigh(NULL,PERIOD_CURRENT,i);
  //
   double closeM1 = iClose(NULL,PERIOD_CURRENT,i);
  //
   double prevhourhigh = iHigh(NULL,PERIOD_H1,(i/60)+1);
   double prevhourlow  = iLow(NULL,PERIOD_H1,(i/60)+1);


   if(ChartPeriod(0)==PERIOD_M1  && closeM1>prevhourhigh)

     {
      draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color1,  1,  dot_size);
     }
   else
      if(ChartPeriod(0)==PERIOD_M1 && closeM1<prevhourlow )
        {
         draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color2,  1,  dot_size);
        }
  }
 

i got it, if any one interested, i used mathfloor with the shift and it worked

double prevhourhigh = iHigh(NULL,PERIOD_H1,(MathFloor(i/60))+1);
 
Bahaalden1:
int tt=range; for(int i=tt-1; i>=0; i--)   {    double highM1 = iHigh(NULL,PERIOD_CURRENT,i);   //    double closeM1 = iClose(NULL,PERIOD_CURRENT,i);   //    double prevhourhigh = iHigh(NULL,PERIOD_H1,(i/60)+1);    double prevhourlow  = iLow(NULL,PERIOD_H1,(i/60)+1);    if(ChartPeriod(0)==PERIOD_M1  && closeM1>prevhourhigh)      {       draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color1,  1,  dot_size);      }    else       if(ChartPeriod(0)==PERIOD_M1 && closeM1<prevhourlow )         {          draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color2,  1,  dot_size);         }   }
int tt=range;
for(int i=tt-1; i>=0; i--)
  {
   double highM1 = iHigh(NULL,PERIOD_CURRENT,i);
  //
   double closeM1 = iClose(NULL,PERIOD_CURRENT,i);
  //
   int lastHourOfSpecificMinute = iBarShift(NULL,PERIOD_H1,iTime(NULL,PERIOD_CURRENT,i))+1;

   double prevhourhigh = iHigh(NULL,PERIOD_H1,lastHourOfSpecificMinute);
   double prevhourlow  = iLow(NULL,PERIOD_H1,lastHourOfSpecificMinute);


   if(ChartPeriod(0)==PERIOD_M1  && closeM1>prevhourhigh)

     {
      draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color1,  1,  dot_size);
     }
   else
      if(ChartPeriod(0)==PERIOD_M1 && closeM1<prevhourlow )
        {
         draw_lines("MYOBJCTREND"+IntegerToString(i), i, (highM1+pointspacing),  i, (highM1+pointspacing),  color2,  1,  dot_size);
        }
  }