Советник не открывает сделки, если добавить функцию Print() в OnTick().

 

Доброе время суток.

Столкнулся с проблемой в тестировщике стратегий, при проверке правильности кода, точнее выводе значения написанной функции через Print(). Если не использовать функцию Print(), то советник открывает все сделки, а если использовать, то открывает только одну первую сделку. Ошибок в журнал не пишет. В чём может быть дело?

Код советника упрощённый:

OnTick()
 {
 
 Print(MaxBalance());

 if(TotalBuy()==0 && TotalSell()==0)
  {
   SetBuyOrder(lot(), magic);
  }
 if(TotalSell()==0 && TotalBuy()==0)
  {
  SetSellOrder(lot(), magic);
  }
}

double MaxBalance()
{
 --code--

 return(maxbalance);
}
 

После mql4 программирование на mql5 более сложно.

Буду разбираться в матчасти.

 
Dmitry Ivanushko:

Доброе время суток.

Столкнулся с проблемой в тестировщике стратегий, при проверке правильности кода, точнее выводе значения написанной функции через Print(). Если не использовать функцию Print(), то советник открывает все сделки, а если использовать, то открывает только одну первую сделку. Ошибок в журнал не пишет. В чём может быть дело?

Код советника упрощённый:

OnTick()
 {
  double maxbalance;

  maxbalance=MaxBalance();
  Print(maxbalance);
  ...
 }

А если так?

При работе в тестере стратегий в режиме оптимизации функция Print() не выполняется.
https://www.mql5.com/ru/docs/common/print
Причина обращения: