Ой, я поняла - это ( GetOrderOpenPrice ) только для отложенных ордеров. :((
Логика кода получается такой:
Проверяется условие ExistPositions().
- Если оно true, то выполняется вторая строка startPoint = ..., а после этого и третья.
- Если условие false, то вторая строка не выполняется, и сразу выполняется третья. Но в этом случае startPoint должен быть вычислен где-то раньше.
Все так?
Если не так - поставьте фигурные скобки как надо. Вы обрамили ими один оператор (открытие ордера). Тут они не нужны, т.к. и без них код будет выполняться так же. Может, правильнее вот так:
if (ExistPositions(NULL, OP_BUY, magic)) { startPoint = GetOrderOpenPrice(NULL, OP_BUY, magic); ticket=OrderSend(Symbol(),OP_BUYSTOP,0.3,startPoint+40*Point,3,0,startPoint+80*Point,"Buy Stop",magic,0,Green); } else { /// сюда впишите код }
Спасибо!
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почему не устанавливается отложенник, если я использую переменную startPoint приравненную к цене последнего открытого ордера?