Я бы после цикла for скобки всобачил все-таки... И после каждого if.... и покажите на всяк случай функцию isSetOrder, или попробуйте вывести print до ее вызова
bool isSetOrder(double price) { for(int i = 0; i<OrdersTotal();i++) if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) if(OrderSymbol() == Symbol()) if(OrderMagicNumber() == MAGIC) if(OrderType() > 1) { if(OrderOpenPrice() == price) return (true); } return (false); }
А причем там скобки-то? Синтаксис то правильный!
Всобачил Принт перед isSetOrder. Помогло! Теперь понял в каком направлении надо рыть! Если решу проблему отпишусь обязательно на форум. Но уже сейчас могу сказать что делать цикл в цикле в mql категорически противопоказано если этот цикл подразумевает перебор ордеров.
Я бы после цикла for скобки всобачил все-таки... И после каждого if.... и покажите на всяк случай функцию isSetOrder, или попробуйте вывести print до ее вызова
Благодярю за помощь!
А причем там скобки-то? Синтаксис то правильный!
Всобачил Принт перед isSetOrder. Помогло! Теперь понял в каком направлении надо рыть! Если решу проблему отпишусь обязательно на форум. Но уже сейчас могу сказать что делать цикл в цикле в mql категорически противопоказано если этот цикл подразумевает перебор ордеров.
Ну скобки потому что где-то есть :
if(OrderType() == OP_BUY || OrderType() == OP_SELL) {
где-то нет:
if(OrderMagicNumber() == MAGIC) if(OrderType() == OP_BUY || OrderType() == OP_SELL)
Сложно читать такой код.
А ошибка очевидна. В вызываемой функции запускается еще один перебор ордеров, и выбирается ордер уже другой....
Попробуй после вызова:
if(!isSetOrder(OrderStopLoss())) {
опять выбрать ордер:
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
А причем там скобки-то? Синтаксис то правильный!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте уважаемые форумчане.
Столкнулся с таким вот глюком... Есть код в котором ясно и чётко прописана что выполнять дальше только при условии
После данных строк поставил принт для отладки
После чего с удивлением для себя нахожу в журнале OrderType:2 что в принципе не может быть. Я же поставил исключение такого варианта. Должно быть либо OrderType:0 либо OrderType:1.
Как так то?
Ниже привожу весь код для наглядности...