При поверке по логам вижу, что он пишет только цену Open?

 
Написал небольшой советник, который будет торговать в направлении дневного 40 пипсового пробоя. Пытаюсь сделать так, чтобы дневной диапазон определялся как High и Low за текущий день. Имею вот такой код. В коде видно, что я всегда пишу High[0] и Low[0] в переменные dhigh и dlow. Однако при поверке по логам вижу, что он пишет только цену Open. Почему?????

if (TimeHour(Time[0])==0 && (TimeMinute(Time[0])==0 ||TimeMinute(Time[0])==5))   
{
   tekdiapazon=0;
   triggerbuy=0;
   triggersell=0;
   dhigh=Bid;
   dlow=Bid;  
   Print("Na4alo sutok pro6li >>> ", dhigh,"--", dlow);
}
 
if (dhigh<High[0])
   {
   dhigh=High[0];
   hightime=iTime(NULL,0,0);
   Print("Hhigh obnovilsa >>> ", DoubleToStr(dhigh,4),"--", TimeToStr(hightime),"--",High[0]);
   }
   
   if (dlow>Low[0])
   {
   dlow=Low[0];
   lowtime=iTime(NULL,0,0);
   Print("Llow obnovilsa >>> ", DoubleToStr(dlow,4),"--", TimeToStr(lowtime));
   }
 
Еще один небольшой вопрос. Как лучше сделать, чтобы эксперт сначала проверял закрылся ли ордер стопом, а потом уже проверял ли закрытие по тейк профиту. Дело в том, что некоторые часовые свечи могут в размере достигать более 40 пипов и трудно определить, что же произошло. Ордер закрылся по стопу или тейку.

Буду благодарен за помощь...