Сайт находится в процессе разработки
Войти
Главная / Data science в трейдинге / Кейс: как написать торгового робота в Metatrader 4

Кейс: как написать торгового робота в Metatrader 4

Сегодня автоматизированные алгоритмы для торговли на бирже становятся все популярнее. При этом дело не только в том, что трейдеры хотят наладить автоматизированную торговлю. Ручное тестирование может отнимать недели и месяцы, а робот дает возможность тестировать свои торговые гипотезы буквально в режиме нон-стоп. Как создать торгового робота и какие задавать алгоритмы и скрипты, рассказываем в статье. 


Шаг 1. Создаем гипотезу 

Гипотеза — это предположение о том, как трейдеру попасть из точки А в точку Б — то есть, из момента где вы деньги теряете, к моменту, где вы закрываете сделки в плюс. Гипотезы помогают протестировать свои предположения на исторических данных. Большинство ваших гипотез не подтвердятся, но только таким образом вы сможете найти рабочие решения и создать сильную торговую стратегию. 


Вашу торговую гипотезу нужно описать в техническом задании. По этому ТЗ и будет торговать ваш робот.

Техническое задание с гипотезой для торговли

На следующем этапе эту гипотезу мы будем кодить, чтобы проверить, срабатывает ли она.


Шаг 2. Кодим торгового робота

В основе любого робота лежит алгоритм — это все та же торговая гипотеза или стратегия, но переведенная на язык кода. Именно написание алгоритмов — ключевая работа при создании робота. После того как есть алгоритмы, вам остается просто «объяснить» их компьютерной системе в доступном формате.


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

А если вкратце, то у хорошего робота должно быть несколько модулей:

  • модуль ценового анализа;

  • модуль управления капиталом;

  • модуль анализа истории сделок и расчета ошибки;

  • модуль оценки набора позиций (оценка ликвидности в стакане);

  • модуль открытия, закрытия и сопровождения сделок.


Рассмотрим на практике, как конкретно мы задаем эти параметры роботу при кодинге. 


Ордера Buy и Sell

Для модуля «Частоменяемые параметры» мы указываем название переменной — например, extern bool — и ставим роботу задачу, покупать или продавать (Buy и Sell).

Раздел «Частоменяемые параметры»

Ордер стоп-лосс

Для модуля «Параметры ордеров» слева мы видим название переменных, справа — заданные значения. Например, мы можем указать, чтобы робот выставлял защитные ордера для автоматического закрытия сделок и ограничения возможных убытков.

Раздел «Параметры ордеров»

Переворот позиций

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


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


Раздел «Переворот ордеров»

Стоимость и количество торговых лотов

В робота можно заложить данные по размерам лотов. В модуле «Количество лотов» мы указываем фиксированный и максимальный лот — то есть, допустимый риск, на который робот может пойти при торговле. Также можно указать количество лотов для ордеров. 


Раздел для лотов


Дополнительные параметры

Также можно выставить дополнительные настройки — цену открытия бара, верхнюю и нижнюю границы канала.


Раздел «Дополнительные параметры»


Индикаторы и другие инструменты 

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


Для задания параметров можно использовать индикаторы инструменты и другие инструменты технического анализа: индикатор волатильности полосы Боллинджера, осциллятор Стохастик для поиска уровней разворота цены и другие.


Раздел «Сигналы на открытие/закрытие»


Настройка уведомлений

Еще можно прописать в коде, чтобы робот присылал вам уведомления на электронную почту при открытии/закрытии ордеров.


Раздел «Алерт на электронную почту»


Перевод сделки в безубыток

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


Ордер Трейлинг стоп 

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


Разделы «Безубыток» и «Трейлинг стоп»


Настройка параметров индикаторов

Также можно дополнительно настраивать параметры самых разных индикаторов для робота — Стохастик, FOREX Day Monster «Fast Trend», Stochastic Cross Alert, полосы Боллинджера и других. 


Раздел «Параметры индикаторов»


Коротко

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


  • У качественного робота должны быть основные модули, без которых он не будет эффективен. 


  • Ключевая часть при написании робота — создание алгоритмов. 


  • Алгоритмы для робота можно прописать самые разные: можно настроить параметры индикаторов и уровни выставления стоп-лоссов, отправку уведомлений и многое другое. 

5 рисков криптотрейдера: от банкротства биржи до штрафов налоговой
Риски есть при любых финансовых операциях. Задача трейдера — не отказаться от рисков, а решить, до какой степени он готов...
Читать далее
Как регулярные тренировки помогают трейдерам повышать эффективность и управлять рисками
Регулярные тренировки в торговле — ключевой элемент обучения трейдеров. Какие навыки развиваются благодаря регулярной практике? И как именно тренировки помогают...
Читать далее
Открываем и закрываем сделки в Bybit автоматически с помощью Python: пошаговый гайд
С помощью Python можно создавать программы и скрипты, которые будут выполнять ваши торговые правила, а значит — упростят и облегчат...
Читать далее