This Custom Function Will Help To Get Round Time For Any Given Timeframe And Time.
Code :-
//+------------------------------------------------------------------+ //|Get Last Round Time And Date Acc To TFÂ Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â | //+------------------------------------------------------------------+ datetime Get_Last_Round_Time_And_Date_Acc_To_TF(datetime From, int TimeFrame) { int Minutes = ((int)From - (int)(datetime)(TimeToString(From,TIME_DATE)+" 00:00:00"))/60; int Min = Minutes-(Minutes%TimeFrame); string Date = "1970.01.01"; string _Hour_ = (string)((Min-Min%60)/60); string _Minutes_ = (string)((Min%60)%60); return((datetime)TimeToString(From,TIME_DATE) + (datetime)(Date+" "+_Hour_+":"+_Minutes_+":00")); }
Inputs Required :Â
1.) Time To Be Rounded.
2.) Timeframe According To Which You Want Time To Be Rounded.
Few Examples :Â
A.)Â
   Inputs :Â
        1.) Time = “2021.08.25 10:43:00”.
        2.) Timeframe = 60.
   Returned Value :  “2021.08.25 10:00:00”
B.)Â
   Inputs :Â
        1.) Time = “2021.08.25 10:43:00”.
        2.) Timeframe = 30.
   Returned Value :   “2021.08.25 10:30:00”
C.)Â
   Inputs :Â
        1.) Time = “2021.08.25 10:43:00”.
        2.) Timeframe = 15.
   Returned Value :   “2021.08.25 10:30:00”
D.)Â
   Inputs :Â
        1.) Time = “2021.08.25 10:43:00”.
        2.) Timeframe = 5.
   Returned Value :   “2021.08.25 10:40:00”
This Code Has Only Been Tested For 5,15,30,60 Minutes Time Frame.
Contact Me For Any Help. Will Be Happy To Help.