проблема с временем. программирование советника

 

здравствуйте, снова я с проблемами и с кодом. 

/*      ---------     |*/bool OP()

/*                       |*/      {if (old<-150 && new>-150 )    

/*      ---------     |*/          {if (OrderSend(NULL,OP_BUY,LOT,Ask,0,0,0,NULL,0,clrDarkOrange)== true)

/*      ---------     |*/                   { i++;                                                                 // самое первое действие 

/*              BUY  |*/                  OOT =  TimeCurrent(); //OrderOpenTime()// второе - сохраняем время для ф-ции закрытия

/*                      |*/                     Print ("открваемся на =", new, "предыдущий тик =", old);

/*                      |*/                     return true;

/*                      |*/                   }

/*     -----------    |*/             }        

 

 не понимаю то ли я слепой, то ли в тестере какие то ограничения.

проблема в том, что этой  OOT не присваивается значение TimeCurrent() во второй раз. На первой сделке все работает. На второй же - TimeCurrent() = 1970-й год. * 70-й потому что переменная обнуляется. если не обнулять, дата остается такой же как при первом присваивании. При том что все остальное с этого оператора выполняется.

помогите  

 
В массив надо записывать. И не TimeCurrent(), а  OrderOpenTime().
 

 она перезаписаться не может как нормальная переменная ?

дело то одно и то же, может разница в десятую секунды.  (TimeCurrent(), а  OrderOpenTime().)

но спасибо. попробую  

 

Ну так и перзаписывается, на каждом новом ордере. И зачем оно такое нужно?


А доли секунды разницы только в тестере будут.

 

помог себе сам:

короче беда в строке  {if (OrderSend(NULL,OP_BUY,LOT,Ask,0,0,0,NULL,0,clrDarkOrange)== true) нельзя так делать 

https://docs.mql4.com/ru/trading/ordersend
Причина обращения: