Thanks, I got the logic.
This works but only on some days... I think after a weekend only.
I think it's because
NewDay = Day() != Ref( Day(), -1 );
Doesn't consider start of day as how it is set in session (contrarily to TimeFrameGetPrice that respects sessions as set in db) but is considering a new day as first minute after 0000 and not first one after night session start which is at in my case (Index Futures ETH) at 1800 on previous day (a day in this case starts at 1800 previous day, and ends at 1700 next day).
Nothing is unusual, everything in AmiBroker is for a purpose. It is very flexible and gives user all the freedom to express. Would urge you to thoroughly read and experiment with the examples shown here - Multiple Time Frame support in AFL.