Создание торгового робота на основе алгоритмов Основы написания советника на MQL4 программирование на Форекс

7 мая 2020 Автор: Eduard

Создание торгового робота на основе алгоритмов: основы написания советника на MQL4.
Мировые финансовые рынки предлагают вам огромный потенциал для прибылей и убытков. На рынке всегда есть потенциал для получения прибыли, поскольку вы можете размещать сделки в любом направлении. Независимо от того, является ли ваша позиция бычьей или медвежьей, у трейдера всегда есть возможность зарабатывать деньги, равно как и способность делать убытки..
Слишком часто эмоции, психологические ловушки и умственная дисциплина препятствуют получению прибыли и являются основными причинами того, что 95% (или более) всех новых трейдеров теряют весь свой инвестиционный капитал в первый месяц..

Использование торгового робота с алгоритмом советника в Meta Trader, написанного на языке MQL4, является одним из способов доступа к рынку с помощью кода, таким образом убирая эмоции из картинки и работая только с числами и логикой вашей программы..
Исключение эмоций из уравнения — это одна мера, но это не значит, что роботы не могут проиграть. Фактически, даже крупные инвестиционные банки должны были отключить своих торговых роботов, прежде чем убытки стали фатальными. В 2013 году у Goldman Sachs были серьезные ошибки в торговых алгоритмах, которые стоили 100 миллионов долларов..

Вы должны знать, прежде чем продолжить это руководство и даже подумывать об использовании своих реальных, с трудом заработанных денег, что вы можете потерять весь свой депозит на своем брокерском счете из своего кода (и, возможно, в худшем случае больше с некоторыми брокерами, если дополнительные расходы применять)
Вы несете полную ответственность за сделки, даже если программный код размещает их для вас. Хотя потеря возможна, вы также можете умножить счет и сделать его экспоненциально расти во время сна.
Если вам нравится работать полностью на автопилоте, это может быть достигнуто без какого-либо взаимодействия вообще. Вы можете буквально зарабатывать деньги пассивно, продолжая свою повседневную жизнь.

Эту стратегию торговли без помощи рук я не продвигаю — и я никогда ее не использую и не считаю прибыльной. Наблюдение за активным роботом и текущими сделками, в сочетании с отслеживанием экономического календаря и событий, очень отличается от того, чтобы позволить ему сойти с ума и надеяться на лучшее. Победы могут быть грандиозными, но безудержные потери намного грандиознее.

Установка MQL4.
Пожалуйста, загрузите MT4 с их сайта и установите его на свой компьютер..
После запуска MT4 вам понадобится аккаунт у брокера, который поддерживает MT4.

Затем они смогут предоставить вам ваши учетные данные MT4.
Все брокеры предложат демо-счет, и вам рекомендуется всегда использовать демо-счет для написания и тестирования вашего программного обеспечения.
После того, как вы настроили MT4 на своем рабочем столе, мы можем продолжить создание собственного торгового робота с алгоритмом советника..

Как написать робота.
Существует много языков, которые подойдут для написания торгового робота с алгоритмом с нуля, но на самом деле вы столкнетесь с трудностями, связанными с API для прямого доступа к рынку, который обеспечит ваш фондовый брокер, — именно так вы на самом деле дадите себе возможность размещать торговые заказы на финансовых рынках.
Обработка рыночных данных может быть достигнута на множестве языков и, возможно, быстрее, чем MT4 MQL4 может запускать обратные тесты (обратные тесты — это способ тестирования вашего алгоритма-робота; подробнее об этом позже). В целях простоты функциональности и общей поддержки финансового программного обеспечения я настоятельно рекомендую использовать MQL4 (MetaQuotes Language 4), родной язык MetaTrader 4, для написания своего алгоритма торгового робота..

Синтаксис MQL4.
MQL4 по форме похож на PHP, C, C ++ или VBScript. Ниже приведен пример функции, которая будет вызываться на каждом тике рыночных данных:

Создание торгового робота на основе алгоритмов Основы написания советника на MQL4 программирование на Форекс

Здесь мы проверяем, было ли достаточно рыночных данных, загруженных с помощью баров. MQL4 устанавливает предопределенные переменные, такие как Bars (который содержит количество баров, загруженных в график).
Кроме того, мы проверяем с помощью или || условно для IsTradeAllowed (). Это функция проверки, чтобы проверить, что торговый контекст в настоящее время не занят.
Элементы MQL4, такие как эти предопределенные переменные и функции работы с графиками, такие как Symbol (), делают написание вашей стратегии прогулкой по парку, и для меня это то, почему действительно предпочтительнее программировать алгоритмы торговых роботов на MQL4 по сравнению с другими языками.

Я рекомендую вам ознакомиться со справочником по MQL4, когда у вас есть время, чтобы более уверенно использовать MQL4 для дальнейшего удовлетворения своих потребностей..
Редактирование кода MQL4 в MetaEditor.
Я рекомендую использовать встроенную MetaEditor IDE, которая поставляется с торговой платформой MT4. Чтобы войти в редактор, просто щелкните правой кнопкой мыши на существующем эксперте в левой панели навигатора и выберите в меню изменить..
MetaEditor MT4 откроется, и вы сможете создать новый файл.

Это предлагает пользователю подсветку синтаксиса и отладку вывода.
Важно: вам придется скомпилировать ваши mq4-файлы в советники ex4 с помощью MetaEditor, если вы редактируете во внешнем редакторе. Так что знакомство с MetaEditor является обязательным.
Наш алгоритм.
Для нашей стратегии мы начнем использовать основу поддержки и сопротивления от индикатора SMA (S moothed M oving A verage).

SMA может предсказать бычий или медвежий сигнал входа / выхода. Сглаженное скользящее среднее помогает нам избавиться от шума рынка, давая нам более четкое представление о направлении движения цены..
В восходящем или нисходящем тренде SMA может вести себя как поддержка или сопротивление, в зависимости от ориентации. Когда цена повышается, SMA будет вести себя как уровень поддержки, а когда цена снижается, наоборот, как сопротивление / потолок.

Основа для входа.
Когда мы строим два SMA разных периодов — один из 40 периодов и один из 100 периодов — мы можем видеть, как они пересекаются и создают основу для входа. Как мы упоминали ранее, когда SMA ниже цены (меньше цены закрытия), мы считаем ее основой для поддержки, а когда SMA выше цены (больше цены закрытия), мы рассматриваем это как линию сопротивление .
Итак, в коде мы сначала делаем следующее, чтобы создать метод для проверки пересечения входных данных для последующего определения нашей основы для входа:

Теперь мы можем рассчитать наш SMA, используя метод технического индикатора iMA, предоставляемый MQL4, и запустить его через нашу функцию CheckForCross, чтобы увидеть, не было ли пересечения следующим образом:
Здесь мы используем MODE_SMMA, чтобы вернуть нам S moothed M oving A verage из метода технических индикаторов iMA для нашего выбранного метода сглаживания.
Если вы хотите использовать другой метод сглаживания, есть несколько вариантов, таких как Простой, Экспоненциальный и Линейно-взвешенный.
Как и в случае со всеми уровнями поддержки и сопротивления, здесь работает стандартная методология торговли: поддержка поддержки и продажа сопротивления !
Итак, для нашего алгоритма мы собираемся сделать именно это. Когда есть пересечение в любом направлении, мы собираемся применить соответствующее направление торговли и выйти на рынок.

Здесь мы проверяем возврат функции CheckForCross, которую мы определили ранее, после загрузки ее двумя SMA, определенными техническим индикатором iMA.
Мы используем OrderSend, предоставляемый MQL4, чтобы открыть сделку. Рекомендуется, чтобы результат сохранялся в переменной тикета, а затем проверялся на положительное возвращаемое значение для обработки любой ошибки, которая могла быть сообщена со стороны брокера..
Основа для выхода.
Как и основа для входа (кроме обратного случая), когда SMA создает смертельный крест, мы можем использовать этот сигнал для закрытия нашей сделки, если какие-либо сделки открыты.

Логика для этого будет написана так:
Здесь мы вводим цикл for для итерации по всем открытым ордерам, хотя в настоящее время мы будем торговать только одной сделкой за раз — это позволяет нам расширяться в будущем и иметь несколько открытых сделок, если мы чувствуем, что это необходимо.
Это также облегчает использование метода OrderSelect, поскольку мы можем использовать переменную cnt из нашего цикла for.

Оказавшись внутри итерации, мы просто смотрим на текущий OrderType (проверяем ордер Buy OP_BUY или Sell OP_SELL) и затем применяем условную логику из возврата нашего метода CheckForCross.
Добавление управления капиталом.
Прямо сейчас наш алгоритм прост с основой для входа и выхода из сделок, но все еще довольно опасно глуп, когда дело доходит до управления фондом. Чтобы держать риск под контролем, мы будем размещать только одну пятую торгуемого капитала в каждой сделке, поэтому теперь нам нужно учесть это в нашем алгоритме..
Это означает, что если у вас на счете 10000 долларов, мы торгуем только с одной пятой за раз (2000 долларов), поэтому скрипт будет размещать сделку только с меньшим размером лота, например, 0,1 или 0,2, основываясь на этом. пятый расчет.

Создание торгового робота на основе алгоритмов: основы написания советника на MQL4.
Мировые финансовые рынки предлагают вам огромный потенциал для прибылей и убытков. На рынке всегда есть потенциал для получения прибыли, поскольку вы можете размещать сделки в любом направлении. Независимо от того, является ли ваша позиция бычьей или медвежьей, у трейдера всегда есть возможность зарабатывать деньги, равно как и способность делать убытки..
Слишком часто эмоции, психологические ловушки и умственная дисциплина препятствуют получению прибыли и являются основными причинами того, что 95% (или более) всех новых трейдеров теряют весь свой инвестиционный капитал в первый месяц..

Использование торгового робота с алгоритмом советника в Meta Trader, написанного на языке MQL4, является одним из способов доступа к рынку с помощью кода, таким образом убирая эмоции из картинки и работая только с числами и логикой вашей программы..
Исключение эмоций из уравнения — это одна мера, но это не значит, что роботы не могут проиграть. Фактически, даже крупные инвестиционные банки должны были отключить своих торговых роботов, прежде чем убытки стали фатальными. В 2013 году у Goldman Sachs были серьезные ошибки в торговых алгоритмах, которые стоили 100 миллионов долларов..

Вы должны знать, прежде чем продолжить это руководство и даже подумывать об использовании своих реальных, с трудом заработанных денег, что вы можете потерять весь свой депозит на своем брокерском счете из своего кода (и, возможно, в худшем случае больше с некоторыми брокерами, если дополнительные расходы применять)
Вы несете полную ответственность за сделки, даже если программный код размещает их для вас. Хотя потеря возможна, вы также можете умножить счет и сделать его экспоненциально расти во время сна.
Если вам нравится работать полностью на автопилоте, это может быть достигнуто без какого-либо взаимодействия вообще. Вы можете буквально зарабатывать деньги пассивно, продолжая свою повседневную жизнь.

Эту стратегию торговли без помощи рук я не продвигаю — и я никогда ее не использую и не считаю прибыльной. Наблюдение за активным роботом и текущими сделками, в сочетании с отслеживанием экономического календаря и событий, очень отличается от того, чтобы позволить ему сойти с ума и надеяться на лучшее. Победы могут быть грандиозными, но безудержные потери намного грандиознее.

Установка MQL4.
Пожалуйста, загрузите MT4 с их сайта и установите его на свой компьютер..
После запуска MT4 вам понадобится аккаунт у брокера, который поддерживает MT4.

Затем они смогут предоставить вам ваши учетные данные MT4.
Все брокеры предложат демо-счет, и вам рекомендуется всегда использовать демо-счет для написания и тестирования вашего программного обеспечения.
После того, как вы настроили MT4 на своем рабочем столе, мы можем продолжить создание собственного торгового робота с алгоритмом советника..

Как написать робота.
Существует много языков, которые подойдут для написания торгового робота с алгоритмом с нуля, но на самом деле вы столкнетесь с трудностями, связанными с API для прямого доступа к рынку, который обеспечит ваш фондовый брокер, — именно так вы на самом деле дадите себе возможность размещать торговые заказы на финансовых рынках.
Обработка рыночных данных может быть достигнута на множестве языков и, возможно, быстрее, чем MT4 MQL4 может запускать обратные тесты (обратные тесты — это способ тестирования вашего алгоритма-робота; подробнее об этом позже). В целях простоты функциональности и общей поддержки финансового программного обеспечения я настоятельно рекомендую использовать MQL4 (MetaQuotes Language 4), родной язык MetaTrader 4, для написания своего алгоритма торгового робота..

Синтаксис MQL4.
MQL4 по форме похож на PHP, C, C ++ или VBScript. Ниже приведен пример функции, которая будет вызываться на каждом тике рыночных данных:

Здесь мы проверяем, было ли достаточно рыночных данных, загруженных с помощью баров. MQL4 устанавливает предопределенные переменные, такие как Bars (который содержит количество баров, загруженных в график).
Кроме того, мы проверяем с помощью или || условно для IsTradeAllowed (). Это функция проверки, чтобы проверить, что торговый контекст в настоящее время не занят.
Элементы MQL4, такие как эти предопределенные переменные и функции работы с графиками, такие как Symbol (), делают написание вашей стратегии прогулкой по парку, и для меня это то, почему действительно предпочтительнее программировать алгоритмы торговых роботов на MQL4 по сравнению с другими языками.

Я рекомендую вам ознакомиться со справочником по MQL4, когда у вас есть время, чтобы более уверенно использовать MQL4 для дальнейшего удовлетворения своих потребностей..
Редактирование кода MQL4 в MetaEditor.
Я рекомендую использовать встроенную MetaEditor IDE, которая поставляется с торговой платформой MT4. Чтобы войти в редактор, просто щелкните правой кнопкой мыши на существующем эксперте в левой панели навигатора и выберите в меню изменить..
MetaEditor MT4 откроется, и вы сможете создать новый файл.

Создание торгового робота на основе алгоритмов Основы написания советника на MQL4 программирование на Форекс

Это предлагает пользователю подсветку синтаксиса и отладку вывода.
Важно: вам придется скомпилировать ваши mq4-файлы в советники ex4 с помощью MetaEditor, если вы редактируете во внешнем редакторе. Так что знакомство с MetaEditor является обязательным.
Наш алгоритм.
Для нашей стратегии мы начнем использовать основу поддержки и сопротивления от индикатора SMA (S moothed M oving A verage).

SMA может предсказать бычий или медвежий сигнал входа / выхода. Сглаженное скользящее среднее помогает нам избавиться от шума рынка, давая нам более четкое представление о направлении движения цены..
В восходящем или нисходящем тренде SMA может вести себя как поддержка или сопротивление, в зависимости от ориентации. Когда цена повышается, SMA будет вести себя как уровень поддержки, а когда цена снижается, наоборот, как сопротивление / потолок.

Основа для входа.
Когда мы строим два SMA разных периодов — один из 40 периодов и один из 100 периодов — мы можем видеть, как они пересекаются и создают основу для входа. Как мы упоминали ранее, когда SMA ниже цены (меньше цены закрытия), мы считаем ее основой для поддержки, а когда SMA выше цены (больше цены закрытия), мы рассматриваем это как линию сопротивление .
Итак, в коде мы сначала делаем следующее, чтобы создать метод для проверки пересечения входных данных для последующего определения нашей основы для входа:

Теперь мы можем рассчитать наш SMA, используя метод технического индикатора iMA, предоставляемый MQL4, и запустить его через нашу функцию CheckForCross, чтобы увидеть, не было ли пересечения следующим образом:
Здесь мы используем MODE_SMMA, чтобы вернуть нам S moothed M oving A verage из метода технических индикаторов iMA для нашего выбранного метода сглаживания.
Если вы хотите использовать другой метод сглаживания, есть несколько вариантов, таких как Простой, Экспоненциальный и Линейно-взвешенный.
Как и в случае со всеми уровнями поддержки и сопротивления, здесь работает стандартная методология торговли: поддержка поддержки и продажа сопротивления !
Итак, для нашего алгоритма мы собираемся сделать именно это. Когда есть пересечение в любом направлении, мы собираемся применить соответствующее направление торговли и выйти на рынок.

Здесь мы проверяем возврат функции CheckForCross, которую мы определили ранее, после загрузки ее двумя SMA, определенными техническим индикатором iMA.
Мы используем OrderSend, предоставляемый MQL4, чтобы открыть сделку. Рекомендуется, чтобы результат сохранялся в переменной тикета, а затем проверялся на положительное возвращаемое значение для обработки любой ошибки, которая могла быть сообщена со стороны брокера..
Основа для выхода.
Как и основа для входа (кроме обратного случая), когда SMA создает смертельный крест, мы можем использовать этот сигнал для закрытия нашей сделки, если какие-либо сделки открыты.

Логика для этого будет написана так:
Здесь мы вводим цикл for для итерации по всем открытым ордерам, хотя в настоящее время мы будем торговать только одной сделкой за раз — это позволяет нам расширяться в будущем и иметь несколько открытых сделок, если мы чувствуем, что это необходимо.
Это также облегчает использование метода OrderSelect, поскольку мы можем использовать переменную cnt из нашего цикла for.

Оказавшись внутри итерации, мы просто смотрим на текущий OrderType (проверяем ордер Buy OP_BUY или Sell OP_SELL) и затем применяем условную логику из возврата нашего метода CheckForCross.
Добавление управления капиталом.
Прямо сейчас наш алгоритм прост с основой для входа и выхода из сделок, но все еще довольно опасно глуп, когда дело доходит до управления фондом. Чтобы держать риск под контролем, мы будем размещать только одну пятую торгуемого капитала в каждой сделке, поэтому теперь нам нужно учесть это в нашем алгоритме..
Это означает, что если у вас на счете 10000 долларов, мы торгуем только с одной пятой за раз (2000 долларов), поэтому скрипт будет размещать сделку только с меньшим размером лота, например, 0,1 или 0,2, основываясь на этом. пятый расчет.


Мы используем AccountFreeMargin и NormalizeDouble, чтобы сгенерировать этот размер лота, и если он рассчитан ниже минимального размера лота 0,1, мы установим его на 0,1.
По мере роста (или сокращения!) Счета риск будет установлен на уровне одной пятой от суммы счета. Это означает, что переэкспонирование фиксированной суммы (например, торговля определенным фиксированным лотом на счете любого размера) теоретически не может произойти, поэтому риск перебора по марже из-за чрезмерной торговли устранен или значительно уменьшен.

Маржинальный колл — это очень реальный риск, если рынок резко движется против вас, прежде чем вернуться из-за резкого скачка / колебания, пока вас нет рядом, чтобы внести больше средств..
С точки зрения непрофессионала, размер лота сделки будет рассчитываться динамически по нашему сценарию, чтобы соответствовать размеру эквити. Таким образом, потенциал для все большей и большей прибыли вполне реален.
Примечание.

Хорошей особенностью может быть предоставление параметра, ограничивающего торгуемый пул. Например, если вы хотите торговать только с 1000 долларов на вашем счете, независимо от доступной маржи, вы можете установить доступный торгуемый товар всего на 1000 долларов, а не на весь размер вашего счета..
Лично я всегда использую подобные функции при запуске новых сценариев, чтобы уменьшить подверженность риску, пока я действительно не уверен, что сценарий функционирует достаточно надежно, чтобы позволить больше средств.
Программно это требует параметра и небольшого изменения в приведенном выше примере кода для проверки этой переменной, а не значения AccountFreeMargin ().
Точка безубыточности.

Создание торгового робота на основе алгоритмов Основы написания советника на MQL4 программирование на Форекс

Кроме того, мы попытаемся выполнить некоторые безубыточные ситуации. Это означает, что если рынок изменился против нас, чтобы создать существенные убытки от открытия, мы рассчитываем выйти с минимальными потерями и, по крайней мере, преодолеть безубыточность, чтобы сохранить наш капитал..
Это может быть достигнуто путем мониторинга потери нашей сделки и отношения к цене открытия.

Если направление меняется, и наша сделка остается без денег, мы можем попытаться закрыть сделку как можно ближе к цене входа:
Вышеуказанное использует OrderModify, чтобы попытаться установить стоп-лосс на цену открытия ордера. Это грубый, но простой метод, гарантирующий, что мы выйдем, когда цена вернется к нашей цене входа.

Это применяется только тогда, когда текущая нереализованная прибыль находится в убытке.
Добавление безубыточной маржи.
Поле для безубыточности можно добавить, просто добавив метод OrderOpenPrice следующим образом:
В этом примере мы допускаем, чтобы разница в 10 пунктов в нашем входе закрывалась через стоп-лимит..
Примечание.

Для этого метода следует проверять направление торговли — например, следует ли его добавлять или вычитать из цены входа в зависимости от того, является ли это позицией покупки или продажи..
Еще один способ убедиться, что наша прибыль не потеряна — это использовать трейлинг-стоп, который будет подробно обсуждаться в другом руководстве..
Весь сценарий.

Вот полный список для нашего советника. В нашем распоряжении есть несколько параметров, таких как уровень тейк-профита, стоп-лосс и периоды SMA..
Пожалуйста, не стесняйтесь играть с параметрами, чтобы увидеть, что лучше всего подходит для вашей торговой ситуации, и точно настроить свой алгоритм..
Помните: прошлые результаты никоим образом не указывают на будущее.
Тестирование.

Мы можем с легкостью протестировать рыночные данные за предыдущие дни, месяцы или даже годы для финансового инструмента в среде MT4 (Meta Trader 4). Тем не менее, трейдерам рекомендуется не доверять бэк-тестированию в одиночку, а использовать его как руководство для управления своей торговой стратегией и увидеть, насколько эффективна идея..
Бэк-тестирование позволяет трейдерам проверить, насколько их мышление сдерживает, так сказать, перед тем, как прилагать больше усилий и двигаться вперед — записывать больше своего алгоритма в код..
Где разместить файлы экспертов?
Если вы использовали внешний текстовый редактор для написания своего советника, вам необходимо загрузить своего советника в торговую платформу MT4, чтобы скомпилировать его и проверить на наличие ошибок.

Просто добавьте файл .mq4 в вашу установку MetaTrader в каталоге Expert, например, / MetaTrader4 / MQL4 / Эксперты .
После этого эксперт будет доступен в вашем программном обеспечении MT4 из меню навигатора с левой стороны под разделом экспертов..
Примечание. Убедитесь, что вы проводите тестирование на демо-счете. Реальный счет будет торговаться с реальными деньгами, и хотя прибыль будет реальной, так же как и потери.
Обратное тестирование.

Если вы проверили стратегию кабельного телевидения в прошлом году (GBP / USD) и обнаружили, что коэффициент прибыли превышает 1 (то есть вы заработали деньги), то вы можете быть на хорошем счету..
Сработает ли это в реальном мире — это совсем другой вопрос, и именно поэтому форвард-тестирование так же важно, как тестирование по Z-баллам. Это гораздо более сложная тема для машинного обучения вашего алгоритма, которая не будет обсуждаться здесь, но в более поздних руководствах..
Как начать бэк-тест.

Используйте ярлык Control-R, чтобы открыть тестер стратегий, или выберите его в меню «Вид». Панель тестера откроется внизу вашего окна.
Отсюда вы можете выбрать алгоритм для запуска в первом выпадающем меню, поэтому выберите имя файла советника, который вы создали здесь.

Далее вы можете выбрать символ (финансовый инструмент). Я буду тестировать на валютном паре GBPUSD символ пары Британский фунт к доллару США.
Мы также можем выбрать разрешение периода времени для запуска (15-минутный период, 1-часовой период, 1-дневный период и т. Д.). Я буду использовать 30-минутную настройку.
Наконец, у нас есть опция для моделирования только на каждом тике, контрольных точках или ценах открытия.

При написании сценария вы можете выбрать только открытые цены, так как он быстро выполнит ваш тест, хотя результаты пока не будут стоить денег на реальные деньги.!
Для этого, когда вы ищете настоящий тест, прежде чем переходить к форвардному тестированию, рекомендуется запускать его на каждом тике. Это займет намного больше времени для обработки! (Вы можете оставить его включенным в MT4 VPN онлайн или, конечно же, на ночь на своем локальном компьютере.)
Модификация параметров.
Мы устанавливаем пару параметров (PeriodOne и PeriodTwo) для нашего советника, чтобы можно было изменять периоды времени двух скользящих средних.

Доступ к ним можно получить через тестер стратегий, нажав кнопку «Свойства эксперта» и просмотрев вкладку «Вход»..
Здесь для каждого параметра можно указать числовое значение — значения по умолчанию PeriodOne = 40 и PeriodTwo = 100 .
Форвард тестирование.
После того, как вы проверили исторические данные, вы можете начать тестирование на живом рынке, как вы уже видели, выдержали ли ваши идеи бурю из бэк-теста — и (надеюсь) нашли некоторую уверенность в том, что вы считаете выигрышной стратегией!

На реальном рынке вы можете столкнуться с тем, что ваша стратегия рушится из-за элементов, которые вы не учитывали в предыдущих тестах. Помните, что рынок всегда прав. Ваш код никогда не умнее рынка, и нет такой вещи как удача в торговле.

Форвардный тест на самом деле является кислотным тестом, чтобы увидеть, будет ли стратегия выгодна для вас, чтобы положить на нее реальные деньги.
Форвард-тест обычно лучше всего выполнять на выделенном VPN для MT4 EA (советники), который часто предоставляется бесплатно большинством FX брокеров. Сценарий будет работать 24/5, пока рынок открыт, и вы сможете отслеживать сделки в реальном времени, войдя в учетную запись с терминала, так как он будет работать на вашем мобильном устройстве через приложение MT4 или на настольном компьютере через Программное обеспечение MT4.
Высокая волатильность.

Что может быть настоящим убийством для наших сценариев, так это высокая волатильность на рынке, которая может быть вызвана многими внешними факторами..
Например, любой крах или внезапный крах, война, выборы, повышение процентной ставки, доходность облигаций или значительный экономический отчет, такой как ИПЦ, ВВП или изменения в налоговой системе, вызовут большие изменения во всей мировой экономике и на ее многочисленных финансовых рынках. , Также, косвенно, ваша торговля в одной валютной паре или ценной бумаге может быть затронута событиями другой страны, которые вы, возможно, не ожидали сначала.
Совсем недавно, расследование ФБР Брексита и позднее Хиллари Клинтон во время подготовки к выборам в США были примерами высокой волатильности на рынке для тех, кто заинтересован в более внимательном рассмотрении..
Давайте возьмем случай с Brexit. Британская публика, похоже, верила большинству, что голосование за Брексит будет крайне маловероятным.

Я не был так оптимистичен и вытащил все свои фунты, сэкономив большую часть своего капитала в Великобритании из-за резкого падения курса.
Что касается других, я боюсь сказать, что им не так повезло. Хеджирование на промежуточном голосовании, как утверждали некоторые советники крупных банков, конечно же, привело бы к обратному результату и потере примерно 15% тех, кто наделен фунтом, поскольку они ожидают его восстановления..

Подобные ситуации идеально подходят для отключения вашего торгового робота и торговли только за пределами высокой волатильности рынка. Кодирование для такого рода результатов будет очень сложным, если автоматически использовать опережающие или запаздывающие индикаторы, и лучше торговать после события или вручную. Вероятность ложных или противоречивых сигналов всегда выше во время больших событий, и ручной фундаментальный подход, а не технический, может быть более выгодным.
Нет ничего плохого в том, чтобы остановить своего робота, потому что вы ожидаете кризиса.

Это может спасти вас от потери, в то время как с другой стороны, вы можете упустить огромный выигрыш. По моему опыту, шансы на выигрыш намного меньше из-за явной неопределенности и вероятности маржинального колла или попадания в ваш стоп-лосс до того, как сделка может прогрессировать из-за экстремальных мгновенных всплесков.
Выводы.
Мы заложили некоторые основы написания торгового алгоритма и представили много новых идей.

Пролистав код, я надеюсь, что теперь вы можете увидеть внутреннюю работу алгоритма в MQL4 и увидеть, как технический индикатор, такой как скользящее среднее, используется для генерации сигналов входа и выхода.
Что касается управления капиталом, мы рассмотрели возможность включения условий безубыточности и динамического определения размера лота для использования одной пятой доступного капитала. Не стесняйтесь настраивать эти части кода в соответствии с вашими желаниями риска. Мы прошли тестер стратегий MT4 для бэк-тестирования и открыли двери для возможного форвард-тестирования и даже тестирования Z-счета в будущем, и все это жизненно важно, прежде чем начать работу..

Благодаря более точной настройке и исследованиям, вы можете получить очень прибыльный опыт работы на рынках в один прекрасный день. Теперь, когда у вас есть хороший базовый советник в качестве базового сценария, вы можете начать писать свои собственные стратегии на языке MQL4 и проверять, действительно ли они работают так, как вы считаете, что должны, или, как некоторые торговые книги и наставники могут намекают на!
В будущем вам, безусловно, захочется протестировать свой алгоритм еще до того, как вы начнете тратить на него реальные деньги. Как только вы почувствуете достаточно уверенности в том, что у вас есть хороший исполняющий сценарий, вы также можете присоединиться к сообществу, чтобы развивать ваши идеи и помогать в мозговом штурме или разбирать другие алгоритмы, чтобы увидеть их работу и то, как вы могли бы включить их в свою стратегию..
Обмен советниками с другими трейдерами — отличный способ сотрудничать и посмотреть, как другие люди пишут свой алгоритм для множества технических индикаторов, таких как MACD, RSI, CCI, ADX, Bollinger Bands и Ichimoku.

У этого списка нет конца.
Возможно, в будущем, если вы достаточно уверены, вы можете продать свой сценарий другим, и в этом случае рынок MT4 или на вашем собственном сайте может стать идеальным местом для начала работы.!
Для проведения большего тестирования я настоятельно рекомендую вам загрузить все предыдущие рыночные данные и загрузить их в MT4, чтобы иметь возможность провести более тщательное обратное тестирование. Для получения дополнительной информации, пожалуйста, обратитесь к этому руководству, и отлично проведите время!
Отказ от ответственности: эта статья не предназначена в качестве инвестиционного или финансового совета — она ​​предназначена исключительно как техническое руководство для создания программного обеспечения и исследований.

Код предоставляется только для образовательных целей, как есть, без каких-либо гарантий.

Похожие статьи

Оставить комментарий

XHTML: Разрешенные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>