Здравствуйте, товарищи! Такая ситуация. Есть советник. Советник установлен на нескольких терминалах. Настройки практически одинаковые.
Почему то OrderType() возвращает 0 после чего позиция закрывается.
Вот что выдает сова при закрытии
2019.11.12 07:08:37.310 WebEA EURJPY,H1: Position closed, REST, 0 and 70 end
А что самое интересное, что в других трех терминалах эта же функция работает корректно и ничего не закрывает.
В чем может быть проблема подскажите пожалуйста.
0 это позиция типа OP_BUY. У вас в начале функции переменная type инициируется значением OP_BUY (0). Если условие if(OrderType()==type && OrderMagicNumber() == magic_number) ложное то в журнал выводится Position closed, REST, 0 and + значение переменной magic_number+ end
Зачем нужно вот эта конструкция мне не понятно if(order_type == "sell") { type = OP_SELL; } И какое значение значение на момент вызова
этой функции имеет переменная order_type не известно.
Здравствуйте, товарищи! Такая ситуация. Есть советник. Советник установлен на нескольких терминалах. Настройки практически одинаковые.
Почему то OrderType() возвращает 0 после чего позиция закрывается.
Вот что выдает сова при закрытии
2019.11.12 07:08:37.310 WebEA EURJPY,H1: Position closed, REST, 0 and 70 end
А что самое интересное, что в других трех терминалах эта же функция работает корректно и ничего не закрывает.
В чем может быть проблема подскажите пожалуйста.
ORDER_TYPE_BUY = OP_BUY = 0
- www.mql5.com
Зачем нужно вот эта конструкция мне не понятно if(order_type == "sell") { type = OP_SELL; } И какое значение значение на момент вызова этой функции имеет переменная order_type не известно.
order_type может принимать значения buy, sell или notrade
Суть проверки такая: нужно установить совпадает ли order_type с уже открытой позицией и если позиция открыта, пропустить ее, а остальных случаях закрыть.
К примеру order_type = buy и у нас есть открытый ордер на покупку. Вот тогда ничего делать не надо. А в остальных случаях его закрыть.
Как я понял, провера условия у меня задана некорректно, поэтому оно всегдла ложное.
Подскажите тогда пожалуйста, как правильно тут сделать.
Как я понял, провера условия у меня задана некорректно, поэтому оно всегдла ложное.
Подскажите тогда пожалуйста, как правильно тут сделать.
Для этого нужно по крайне мере знать что вы хотите в конечном виде получить.
Получается что OrderType() = OP_BUY, а type = 0
Функция OrderType() возвращает тип ордера предварительно выбранного функцией OrderSelect(). Константа OP_BUY это позиция на покупку и имеет цифровое значение равное нулю (0).
А если сделать так то прокатит, как думаете? Будет за строку считаться?
string type = 'OP_BUY';
Для этого нужно по крайне мере знать что вы хотите в конечном виде получить.
хочу сделать так. if(если order_type == "sell" и в терминале есть открытые ордера на продажу с нашим меджиком ) {операторы...}
то же самое при order_type == "buy" и в терминале есть открытые ордера на покупку с нашим меджиком.
Желательно все в одно условие.
А если сделать так то прокатит, как думаете? Будет за строку считаться?
:)
OrderSelect() выбирает ордер по его тикету или по порядковому номеру. У вас используется SELECT_BY_POS, это значит выбор по порядковому номеру. Функция OrdersTotal() возвращает кол-во всех открытых позиций и ордеров. И теперь подумаете есть ли у вас ордер с порядковым номером OrdersTotal()-1
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, товарищи! Такая ситуация. Есть советник. Советник установлен на нескольких терминалах. Настройки практически одинаковые.
Почему то OrderType() возвращает 0 после чего позиция закрывается.
Вот что выдает сова при закрытии
2019.11.12 07:08:37.310 WebEA EURJPY,H1: Position closed, REST, 0 and 70 end
А что самое интересное, что в других трех терминалах эта же функция работает корректно и ничего не закрывает.
В чем может быть проблема подскажите пожалуйста.