iLow() does not work?

 
Why would my iLow give me the day's open and not the low of the day? In fact the Open & Close & Low are all the same. I have used "PERIOD_D1" in stead of zero, but it still does not work.

if(iLow(NULL,0,0)<(OrderOpenPrice()-(OrderTakeProfit()/10000)))
                       {
                        Print(iLow(NULL,0,0));
                        Print("DayOpen=",iOpen(NULL,0,0));
                        Print("DayClose=",iClose(NULL,0,0));
 
for example at the bar beginning open, high, low and close are the same.
or price come to high and back to open level - in this case open, close and low are the same, high differs
 
thanks for the reply, Slawa. The specific bar I am looking at definately has a diff Open, H, L & Close.

You refer to "at the bar beginning". That might be it, but how do I refer to the "end of a bar", so that I can get the Open, H, L as it was at the close of the bar?
 
You refer to the specific bar 0 i.e. current bar i.e. not finished bar. You refer with every incoming tick. and every incoming tick changes current bar
Reason: