Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1955
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А по алгоритму с тремя уровнями это ну не знаю. глупости или невнимательность или ошибки алгоритма. уровни всегда 1 меньше 2 меньше 3. И условия больше всех, это больше 3, меньше всех это меньше 1, и меньше 3 и больше 2, и меньше 2 и больше 1. Одно сравнения в первом и последнем ифе.
При разборе оператора while выяснил то-что пример в книге нерабочий(не компилируется), хотя человек в видеоуроке именно с таким кодом запускал его. Видать много изменений и дополнений в правилах кодирования произошло уже...
То-есть, этот код в примере запускался именно как советник, и действительно цикличность не останавливалась как и сейчас. При запуске его как Скрипт - цикличность завершается.
Тоже, немного запутался в операторе return, со скобками, возвратом значения. Сначала думал что достаточно пустых скобок, а потом вычитал, что хоть какой-то значение в них должно быть)
В учебнике есть фраза мол, зацикленность - Эта ситуация особенно опасна при торговле советниками и скриптами. Я так понимаю, что его в советниках лучше не использовать)))
При разборе оператора while выяснил то-что пример в книге нерабочий(не компилируется), хотя человек в видеоуроке именно с таким кодом запускал его. Видать много изменений и дополнений в правилах кодирования произошло уже...
То-есть, этот код в примере запускался именно как советник, и действительно цикличность не останавливалась как и сейчас. При запуске его как Скрипт - цикличность завершается.
Тоже, немного запутался в операторе return, со скобками, возвратом значения. Сначала думал что достаточно пустых скобок, а потом вычитал, что хоть какой-то значение в них должно быть)
В учебнике есть фраза мол, зацикленность - Эта ситуация особенно опасна при торговле советниками и скриптами. Я так понимаю, что его в советниках лучше не использовать)))
Если условие а<10 будет вдруг по недосмотру всегда истинным, получится зацикливание и возможно синий экран с потерей данных)))
Если (в общем случае) мы ничего не знаем о взаиморасположении этих уровней, то проверять надо все три.
Это как раз ошибка алгоритма, смотря скока раз сравнивать. Если много, то сперва сравнить уровни между собой и построить по росту, а потом сравнивать с целевым значением.
Так то оба работают, но легче делать меньше действий)))
Это как раз ошибка алгоритма, смотря скока раз сравнивать. Если много, то сперва сравнить уровни между собой и построить по росту, а потом сравнивать с целевым значением.
Так то оба работают, но легче делать меньше действий)))
Я не говорю о практическом смысле алгоритма, рассматриваю его как не совсем удачный учебный пример с тремя условно независимыми условиями.
здравствуйте всем!
собираю советник торгующий одновременно двумя противоположными ордерами.
оба ордера закрываются пока по стопу/тейку
сейчас хочу сделать так: если один ордер закрылся по тейку, то второй автоматически должен закрыться по текущей цене.
Закрытие второго (по текущей цене) будет через функцию:
не могу сообразить как составить условие для запуска этой функции.
Подскажите пожалуйста как сформулировать что то типа:
if(TakeProfit==???........)
{
//---если да, то закроем второй ордер по текущей цене, не дожидаясь стопа или тейка
CloseOrder();
}
здравствуйте всем!
собираю советник торгующий одновременно двумя противоположными ордерами.
оба ордера закрываются пока по стопу/тейку
сейчас хочу сделать так: если один ордер закрылся по тейку, то второй автоматически должен закрыться по текущей цене.
Закрытие второго (по текущей цене) будет через функцию:
не могу сообразить как составить условие для запуска этой функции.
Подскажите пожалуйста как сформулировать что то типа:
if(TakeProfit==???........)
{
//---если да, то закроем второй ордер по текущей цене, не дожидаясь стопа или тейка
CloseOrder();
}
Вообще по OrderCloseTime()!=0 выбранного по ордер селект ордера и анализ профита, если больше нуля, то да. Если меньше. то это закрытие по СЛ.
Вообще по OrderCloseTime()!=0 выбранного по ордер селект ордера и анализ профита, если больше нуля, то да. Если меньше. то это закрытие по СЛ.
спасибо. буду разбираться
не могу сообразить как составить условие для запуска этой функции.
Подскажите пожалуйста как сформулировать что то типа:
if(TakeProfit==???........)
Вы сначала нужную логику сформулируйте. К примеру: (остался) один рыночный ордер, или - закрыт номер с тикетом Х.
День добрый, подскажите как вытащить ChartID графика М1, если открыто скажем еще М5,М15 и т.д.
Ну или как вариант как найти ChartID графика на котором есть объект с именем "arrow_1".