Хочу внести в код эксперта запрет на размещение ордера и открытия позиций СРАЗУ после присоединения к графику.
Т.е. смысл в том, чтобы эксперт дождался смены сигнала (если в момент присоединения сигнал на buy, то ждал появления сигнала на sell) и выполнял соответствующие инструкции.
Теперь самое главное ...вопрос как? Прошу помочь более опытных..
В OnInit MQL5 советника флаг FirstStart выставляете в "true" - это означает, что сейчас был первый запуск. При появлении сигнала запоминаете тип сигнала.
При последующих сигналах проверяете флаг FirstStart и запомненный тип сигнала: если текущий сигнал отличается от запомненного, то флаг выставляете в "false" и работает по сигналу.
В OnInit MQL5 советника флаг FirstStart выставляете в "true" - это означает, что сейчас был первый запуск. При появлении сигнала запоминаете тип сигнала.
При последующих сигналах проверяете флаг FirstStart и запомненный тип сигнала: если текущий сигнал отличается от запомненного, то флаг выставляете в "false" и работает по сигналу.
А если тип сигнала повторяется, к примеру Signal[1] == 1 (покупка) либо Signal[1] == 2 (продажа) ?
Здесь нужно какое-то свойство или параметр с уникальным номером?
А если тип сигнала повторяется, к примеру Signal[1] == 1 (покупка) либо Signal[1] == 2 (продажа) ?
Здесь нужно какое-то свойство или параметр с уникальным номером?
До тех пор пока флаг FirstStart "true" сигнал может повторяться хоть тыщу раз :). А вот как только сигнал измениться, тогда флаг FirstStart сбрасываем (переводим в "false") и дальше уже внимание на этот флаг не обращаем внимание.
До тех пор пока флаг FirstStart "true" сигнал может повторяться хоть тыщу раз :). А вот как только сигнал измениться, тогда флаг FirstStart сбрасываем (переводим в "false") и дальше уже внимание на этот флаг не обращаем внимание.
Получилось такая запись:
if (Signal[1]==1 && FirstStart) return; // сигнал первого бала "на покупку" и флаг в позиции true - выходим if (Signal[1]!=1) // если сигнал не "на продажу" { FirstStart=false; // переводим флаг в позицию false } if (Signal[1]==1 && !FirstStart) // если сигнал "на покупку" и флаг в позиции false - выполняем остальной код { //.............. }
тоже самое в другую сторону.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Хочу внести в код эксперта запрет на размещение ордера и открытия позиций СРАЗУ после присоединения к графику.
Т.е. смысл в том, чтобы эксперт дождался смены сигнала (если в момент присоединения сигнал на buy, то ждал появления сигнала на sell) и выполнял соответствующие инструкции.
Теперь самое главное ...вопрос как? Прошу помочь более опытных..