не работает блок ограничения сделок

 

Добрый день. У меня при ограничении количества сделок MQL5 следующая проблема. Простой код на ограничение кол-ва сделок работает без проблем(сделка не открывается, если перед открытием сделки имеется хоть одна открытая позиция):

void OnTick() {

..................................

int totalPositions = PositionsTotal();

.........................................................

if ( totalPositions < 1) {

........................

}}

А вот если я ставлю  if ( totalPositions < 2), хочу чтобы выполнялось условие ( сделка не открывается, если перед открытием сделки имеется более одной открытой позиции), то начинается бесконтрольное открытие позиций, которые в определенный момент закрываются одним большим стопом. Итак повторяется постоянно до слива депозита, что естественно. В чем фундаментальная причина этого ? Не помогает также применение более сложных конструкций с циклом for, результат тот же,

Буду очень благодарен, если объясните почему  if ( totalPositions < 1) ограничивает кол-во открываемых сделок, а   if ( totalPositions < 2) вообще уже ничего не ограничивает

 

Если в теле OnTick() открывается больше одной позиции, то проблема в том, что значение totalPositions не обновляется после открытия очередной позиции. 

Если же после открытия позиции происходит выход из обработки тика, то причина непонятна, нужно больше кода.

 

например если неттинговый учёт :-)

 
ilmir2902:
int totalPositions = PositionsTotal();

надо сразу if( PositionsTotal() .........