Советник не запускается на нескольких парах, нужна помощь - страница 5

 
Matt_Townsend: Так должен ли я вообще не иметь Continue или Break в цикле?
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
Не имеет значения. Вы полностью упустили суть.
  1. Я дал вам форму, в которой ничего не было.
  2. Кит Уотфорд дал вам правильную версию , и вы ею воспользовались.
  3. Теперь вы снова ее сломали. Если вы выбираете любой ордер, вы выходите из цикла и ничего не делаете.
    Теперь вы снова сломали ее. Подумайте о своем условии if.
    OrderMagicNumberMagicNumberOrderSymbolСимволif(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol())
    1 123 EURUSD EURUSD Истинный ордер отклонен (символы совпадают)
    123 123 EURUSD EURUSD Истинный ордер отклонен (совпадение MN)
    123 123 EURJPY EURUSD Истинный ордер отклонен (совпадение MN)
    1 123 EURJPY EURUSD Ложный ордер принят (неверный MN и неверный символ)




























 

Я привел вам пример цикла для подсчета сделок, и вы его проигнорировали.

for(int i=OrdersTotal();i<=0;i--)


Это будет верно, только если нет открытых ордеров, это не цикл.
 
Также не существует индекса, равного OrdersTotal(), поскольку нумерация начинается с 0.
Причина обращения: