Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 476
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кстати, зачем вы объявляете функцию как int, если она в вашем варианте возвращает true, причём всегда? )
Подскажите, пожалуйста, как сделать, чтобы OnCalculate индикатора вызывалась не каждый тик, а только с новым баром?
Данная функция будет вызываться каждый тик, но можно сделать контроль нового бара внутри функции.
Спасибо, разобрался более менее. Сравнивая prev_calculated и rates_total видно появление новых баров. А в советнике сложнее с новым баром - проверка времени и т.п.
Не надо их сравнивать, это не очень надёжный способ: переменная prev_calculated при некоторых условиях может быть обнулена. Запоминайте время текущего бара и проверяйте его изменение при следующем вызове:
PS. Это пример для МТ5. В четвёрке (и в пятёрке, если массив time[] cделан таймсерией) заменить time[rates_total-1] на time[0].
решил создать простого советника, прочитав статью: "Пошаговое руководство по написанию
MQL5-советников для начинающих".(https://www.mql5.com/ru/articles/100)
Протестировав эксперта на истории подумал, как его можно улучшить?
Первое что пришло в голову , не считая оптимизации-
применить трейлинг стоп-лосс . Есть хорошая статья по зтому вопросу:
"Как создать свой Trailing Stop - Статьи по MQL5".
(https://www.mql5.com/ru/articles/134) . Однако, возникла
проблема , советник приложенный к статье не рабочий...то есть
(my_first_ea_sartrailing.ex5) компилируется , но не торгует
в журнале пишет:
2015.11.28 22:54:38.973 2015.02.04 17:00:00 Alert: Запрос на установку ордера Sell не выполнен - код ошибки:4756
2015.11.28 22:54:38.973 2015.02.04 17:00:00 failed instant sell 0.10 EURUSD at 1.14051 sl: 1.17051 tp: 1.04051 [Invalid request]
Помогите разобраться.
PS. Это пример для МТ5.
Здравствуйте.
Скажите, пожалуйста, какой самый быстрый и правильный способ удалить все существующие ордера, выставленные советником? Неужели создавать массив с номерами ордеров и удалять каждый? Получить список активных ордеров тоже нельзя?
Здравствуйте.
Скажите, пожалуйста, какой самый быстрый и правильный способ удалить все существующие ордера, выставленные советником? Неужели создавать массив с номерами ордеров и удалять каждый? Получить список активных ордеров тоже нельзя?
Не надо массив. Какой терминал?
Не надо массив. Какой терминал?
MT5
Да, стоило сказать, что реализовать это нужно в советнике.
Нашел скрипт на mql4 - для 5 не актуально? Пару дней назад где-то видел строку с функцией что-то вроде "orderscancelbymagicnumber", но в документации ничего не получается найти... Запутался.