Подскажите новичку!!!

 
  // Торговые критерии
   A=iMA(Symbol(), PERIOD_M30, 36, 0, MODE_EMA, PRICE_CLOSE, 1);
   B=iOpen(Symbol(),PERIOD_M30, 1);
   C=iClose(Symbol(), PERIOD_M30, 1);
   if  (B<A && C>A  )       
     {                                          
      Opn_B=true;                                   
     }
   if (B>A && C<A  )       
     {                                          
      Opn_S=true;
     }

Подскажите, плиз, как сделать так, чтобы открывалась одна позиция на нулевом баре, а не на каждом тике? (стратегия подразумевает наличие нескольких ордеров) Заранее спасибо!!!
 
Самое простое присваивать какой либо переменной значение, а при проверке условия, если значение переменной равно какому либо значению, значит позиция открыта и больше открывать не стоит.
 

Если нет открытых этим советником ордеров, то открываемся, иначе ничего.

При других вариантах будет открытие на каждом новом баре или не будет открытия по условию, в случае TP или SL (переменная не вернется в исходное значение).

Т.е. поможет OrdersTotal( )  и далее ...

 

кстати, что Вы имеете ввиду под "нулевым баром"? это текущий бар?

 

Да! Текущий!

 

Так у Вас же Close меняется каждый тик, условие может выполнится на М30 и сотню раз. Можно только ограничить количество максимально открытых ордеров,

или поставить дополнительные условия, но мне подход не нравится.

 
granit77 писал(а) >>

Так у Вас же Close меняется каждый тик, условие может выполнится на М30 и сотню раз. Можно только ограничить количество максимально открытых ордеров,

или поставить дополнительные условия, но мне подход не нравится.

Да, условие выполняется на 0-м баре много раз и открываются позиции на каждом тике. Так вот я и спрашивал, как ограничиться открытием только одной! Но вроде бы уже понял как этот сделать!

Причина обращения: