Как установить советник в MetaTrader 4?
Каждый торговый сигнал или правила стратегии, обладающие логическим алгоритмом, можно автоматизировать в терминале MetaTrader 4. Индикаторы тому пример – код индикатора получает информацию с графика, считает ее определенным образом и визуально показывает результат на графике. Советник же умеет вдобавок к этому открывать сделки и контролировать их.
По нашему примеру можете попробовать установить советники в МТ4 из нашего списка:
Получите 10 лучших бесплатных советников здесь
Советник или эксперт не пропустит ни одной сделки. Он может работать в автоматическом и полуавтоматическом режиме. Вы также можете установить терминал на VPS–сервер и на нем ваш эксперт будет торговать круглосуточно 5 дней в неделю. В статье “Торговые роботы для Форекс” мы рассказываем подробнее об экспертах.
У советника может быть два файла с расширением:
- “.mq4” – исходный код советника, который открывается в редакторе MetaEditor. Обычно у этого файла расширение не видно.
- “.ex4” – откомпилированный файл советника, который содержит исполняемый код низкого уровня для терминала. Этот файл в редакторе открыть не получится.
Оба файла могут работать по отдельности.
Эксперты, а также индикаторы, скрипты, библиотеки разрабатывают на интегрированном в терминале языке программирования MQL4. Для написания кода используют текстовый редактор – MetaEditor. Если у вас советник с расширением “.mq4”, то вы также можете посмотреть его исходный код.
Устанавка советника в терминал MetaTrader 4
Мы покажем как установить советник в МТ4 на примере одного из 10 советников нашей рассылки – флетового скальпера “Generic”. У нас есть файл “Generic A–TLP v.12.38.10_RUS.ex4” и папка с шаблонами настроек для него. В первую очередь запускаем терминал. В MetaTrader 4 в меню выберите “Файл” и пункт “Открыть каталог данных”:
Директория терминала MetaTrader 4.
В открывшемся окне переходим в папку “MQL4”. В этой папке хранятся советники, индикаторы, скрипты и другая информация. Для советника открываем папку “Experts”. В ней находятся все советники терминала. Копируем туда наш файл эксперта.
Чтобы советник появился в окне “Навигатор”, терминал нужно обновить. Нажимаем в окне “Навигатор” правой кнопкой мыши на разделе “Советники” и выбираем пункт “Обновить”.
После этого наш эксперт должен появиться в разделе “Советники”. У установленного советника серый маленький ромб. Это значит, что его исходного кода нет.
Как установить советник с дополнениями?
Некоторые советники идут в комплекте с другими файлами, которые тоже устанавливают в папки терминала:
- Индикаторы – файлы с расширением “.ex4” или “.mq4”. Их размещаем в папке “Indicators”.
- Пресеты – настройки для советника с расширением “.set”. Размещаем в папке “Presets”.
- Библиотеки – файлы с расширением “.dll”. Вставляем в папку “Libraries”.
В комплекте советника “Generic” идут файлы настройки советника с расширением “.set”. Копируем их в папку “Presets”.
Запускаем советник
Чтобы запустить советник, кликаем по нему два раза или перетаскиваем прямо на график. Появится окно с информацией эксперта. Здесь вы можете задавать параметры для него на вкладке “Входные параметры”. Этими параметрами в большинстве случаев бывают уровни стоп лосса, тейк профита или риск на сделку, которые обычно так и указаны: Take Profit, Stop Loss, Lots или AutoRisk (определяет лот в процентах). Также могут быть параметры, которые можно включать или отключать. Для этого используются ключевые слова: true – включить, false – выключить.
На один график нельзя размещать больше одного советника, но возможно сделать так, чтобы они торговали на разных графиках. Для этого во входных параметрах эксперта найдите пункт “MagicNumber” – это номер, по которому советник будет определять свои позиции. Вы можете записать любое число. Главное, чтобы у каждого советника оно было разным.
У нашего советника много параметров, но для этого мы загрузили шаблоны настроек в папку “Presets”. Чтобы их применить, нажимаем на кнопку “Загрузить” и выбираем файл для валютной пары. Вы также можете настроить советник сами и сохранить настройки. Далее нажимаете “Ок”.
Если в правом верхнем углу графика нарисован грустный смайл, то советник не работает. Чтобы он заработал, нажмите кнопку “Авто–торговля” на панели вверху терминала.
Разрешение автоматической торговли.
Также разрешить работу советникам можно, вызвав окно настроек комбинацией клавиш “Ctrl+O”. На вкладке “Советники” ставим галочку у пункта “Разрешить автоматическую торговлю”. Здесь же ставим галочку на пункте “Разрешить импорт DLL”, если вы устанавливали файлы библиотеки в папку “Libraries”.
Разрешение автоматической торговли в настройках.
Теперь “смайл” в верхнем правом углу графика должен улыбаться. Советник работает и готов торговать.
Если Вам что-то осталось неясно, ВЫ также вы можете посмотреть видео о том, как установить советник в МТ4:
Установленный эксперт можно протестировать в тестере стратегий. Нажимаем комбинацию “Ctrl+R”, чтобы открыть окно тестера. В первом пункте окна будет название советника. Нажимаем в эту область и выбираем наш советник. Подробнее о тестировании советника мы расскажем в следующей статье.
Все самое лучшее от Академии
только нашим подписчикам
3.0 Программируем простой MQL4 советник по системе «Монетка»
Если вы задавались вопросом «Как написать советник на языке программирования MQL4», то данный пост создан именно для вас. Сегодня мы будем создавать самый простой из всевозможных советников для МТ4, который будет определять незамысловатое условие на вход, открывать ордер и модифицировать его цели.
Алгоритм программирования советника на MQL4
Выше представлена схема процесса работы торгового робота, который мы планируем написать. Любой советник должен иметь как минимум три функции обработки событий:
OnInit()
Она генерируется только один раз за время работы советника в самом начале. Нужна, чтобы внутри нее определить, рассчитать и задать те переменные и массивы данных, которые не нуждаются в дальнейшей корректировке по мере обновления тиков. То же самое касается и графических объектов. В советнике раздел OnInit выполняет ту же роль, что мы проходили в теме создания первого индикатора.
OnDeinit()
Функция вызывается советником только один раз перед непосредственным удалением его с графика. Она используется также и в индикаторах. Раздел OnDeinit нужен, чтобы подчистить график после советника, обнулить глобальные переменные и выдать окончательный расчет или текст пользователю. Более подробно мы ее проходили при создании первого индикатора.
OnTick()
Данная функция новая в наших уроках. Раздел OnTick генерирует события исключительно для экспертов и не может быть вызвана в индикаторах или скриптах. Ее тип данных void и набор параметров отсутствует. По своей логике работы она схожа с функцией для индикаторов OnCalculate, только она не возвращает никакого значения после завершения. Задача у нее одна — запускаться каждый новый тик и проходить циклом весь написанный код в ней от начала до конца. Так как любой советник должен проверять условия для входа/выхода из рынка, считать количество открытых ордеров и выполнять их сопровождение, то можно уверенно сказать, что функция OnTick является самой важной в коде любого эксперта.
Продолжим разбирать алгоритм работы. Вначале советник инициализируется. Далее запускается функция OnTick, в которой выполняются все дальнейшие действия. Для данного советника сначала необходимо проверить наличие уже открытых им ордеров. Если они есть — дальнейший расчет и поиск условия на вход не выполняются, потому что в рынке у нас должен быть только один ордер за раз. Если же открытых сделок нет, то идет определение направления будущей позиции. В зависимости от него запускается пользовательская функция на открытие Buy или Sell ордера. Если по какой-то причине сделка не смогла открыться, расчет возвращается назад в функцию OnTick, чтобы попробовать выставить ордер снова. Если же ордер открылся, то он модифицируется (выставляется Тейк-Профит и Стоп-Лосс). На этом алгоритм заканчивает свою работу по работе с ордерами, потому что счетчик новых ордеров уже будет учитывать этот открывшийся ордер, делая проверку каждый тик. И только после того, как ордер закроется по достижению своей цели (ТП или СЛ), цикл проверки условия на открытие ордера запустится снова. Функция OnDeinit запустится только тогда, когда вы удалите советник с графика.
Наш код, конечно, не будет выглядеть точь-в-точь как эта схема, но думаю, что принцип его написания вам понятен.
Торговая система «Монетка»
Когда перед нами стоит вопрос «как создать Форекс советник», то в первую очередь в голову приходит мысль о торговой системе, заложенной в нем, логике открытия ордеров. Так как в этом уроке не стоит цель создать так называемый на сленге «Грааль», то для получения опыта в написании первого эксперта мы возьмем на вооружение самую простую ТС, которую только можно выдумать.
Период советника установим М15. Мы будем входить в рынок по воле случая, или, если хотите, удачи. Мы начнем условно подкидывать монетку и смотреть на результат этого несложного действия. Орел или Решка — только два исхода событий будет у советника. Вариант «ребро» в данном случае не рассматривается 🙂
Зачем использовать такую простую систему? Чтобы понять, что произойдет в результате этого эксперимента и ответить себе на вопрос: можно ли заработать на Форекс входя в рынок наобум? Получится ли прибыльно торговать не имея четко спланированной торговой системы?
Проверка советника на ошибки: GetLastError()
При написании советника (как и при его использовании) очень важно следить за возможными ошибками в коде. Речь идет не об ошибках компиляции, их вы можете увидеть во вкладке «Ошибки» окна «Инструменты». Разговор о скрытых ошибках, которые проявляют себя во время тестирования или работы советника на реальном счете. Проверку на эти ошибки нужно делать как минимум один раз за тик в функции обработки событий OnTick. Как максимум — в каждой вашей пользовательской функции.
Чтобы получить номер возможной ошибки, нужно вызвать функцию GetLastError(). Она имеет тип int и возвращает целое число, значение системной переменной _LastError. Тут нужно обратить внимание, что на языке MQL4 после вызова функции GetLastError ее значение обнуляется и повторный вызов ее в том же месте кода вернет значение 0, поэтому ее значение нужно сохранять в отдельную переменную.
Язык MQL различает как минимум 150 разных ошибок. Соответственно каждый возвращаемый номер имеет свою расшифровку. Ноль значит это ошибки нет и все отлично, 134 значит, что недостаточно денег на счете и т.д.
Чтобы получить примерную расшифровку ошибки на английском языке, нужно обратиться ко встроенной библиотекой stdlib.mq4, которая находится в папке Libraries терминала. Для этого нужно воспользоваться препроцессором включение файлов #include. Для этого прописываем импорт данной библиотеке в самом начале кода вне функций.
Источник https://academyfx.ru/article/blogi/3446-kak-ustanovit-sovetnik-v-metatrader-4
Источник https://www.davinci-fx.com/mql-first-ea/