[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 315
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет. Не нужно внутри цикла на каждой его итерации объявлять переменную.
я надеюсь ничего нужного не удалил а то компилятор ругался на слово else:
bool Torg=true;
if (OrdersTotal()>0){for(int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
}
}
}
я надеюсь ничего нужного не удалил а то компилятор ругался на слово else:
if (OrdersTotal()>0){// не нужная строчка - если ордеров нет, то счётчик цикла будет на нуле и цикл не выполнится
for(int i=OrdersTotal()-1;i>=0;i--){// проходим по всем ордерам
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// если ордер не выбран, то...
if(OrderMagicNumber()!=MagicNumber) continue; //если магик не наш, то переходим к другому ордеру
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// А если ордер выбрать из списка всё же удалось?
}
}
P.S.
зря убрали строку, сигнализирующую о номере ошибки при выборе ордера - иногда бывает, что она выстреливает. Вообще, обработку ошибок лучше применять везде, где только возможно её возникновение.
if (OrdersTotal()>0){// не нужная строчка - если ордеров нет, то счётчик цикла будет на нуле и цикл не выполнится
for(int i=OrdersTotal()-1;i>=0;i--){// проходим по всем ордерам
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// если ордер не выбран, то...
if(OrderMagicNumber()!=MagicNumber) continue; //если магик не наш, то переходим к другому ордеру
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// А если ордер выбрать из списка всё же удалось?
}
}
bool Torg;
if (OrdersTotal()==0) Torg=true;
if (OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
if (OrderOpenTime()<Time[0]) Torg=true;
}
}
}
а если так?
А если попробовать проверить этот цикл в скрипте самостоятельно? Ну просто отпринтовав результат - в какое положение станет переменная Torg в разных случаях. Думаете сделать самостоятельно не получится?
думаю нет
Скачайте - поможет - http://depositfiles.com/files/eg4fmn3bp