Как написать торгового робота: инструкция для новичков
Эксперты Traders Union ответили на вопрос, как написать торгового робота. Итак, для написания кода можно обратиться к специалисту, сделать это самостоятельно, пройдя простое обучение, или сгенерировать код с помощью специальных сайтов.
Торговый робот (или бот) – это специальный алгоритм, который может сделать вашу торговлю на Форекс или других финансовых рынках проще.
Торговые советники на Форекс имеют массу преимуществ:
дисциплина и отсутствие эмоций;
точное выполнение торгового плана;
не устает, готов работать 24/7;
он может быть использован для управления капиталом инвесторов;
он может быть оптимизирован по результатам торговли на истории (бэктестинг);
может работать автономно без участия человека, или требовать совсем немного внимания.
Поэтому создать торгового робота – это цель многих, кто хочет получить доход от финансовых рынков, не имея большого опыта в трейдинге. Данная статья поможет сделать это, она написана с учетом рекомендаций профессиональных алготрейдеров, сотрудничающих с Traders Union.
Интересуетесь автоторговлей? Попробуйте трейдинг на RoboForex

Как написать код для торгового робота
Выбор простой – доступно 3 варианта:
Вариант 1. Обратиться к специалисту
Программистов, готовых написать торгового робота, можно найти на MQL5, сайтах фрилансеров.
Преимущества:
идея будет реализована быстро,
вы можете выбрать исполнителя.
Вариант 2. Написать код самому
Мы рекомендуем взять второй вариант за приоритетный. Написать самого простого бота можно уже вскоре после начала обучения. Однако гораздо выше ценность знаний, которые вы получите. В сети множество обучающих ресурсов, и исходных кодов, чтобы разобраться и стать разработчиком кода торгового робота.
Преимущества:
Идей много, вы сможете реализовывать их одну за другой – создавать с нуля, редактировать других роботов, комбинировать куски кодов. Во время написания кода для одного торгового робота, у вас будут появляться идеи для нескольких других роботов.
Вам не нужно делиться ни с кем своей идеей.
Вы будете точно знать устройство робота, и сможете понять, почему он работает так, а не иначе.
Кроме того, вы можете использовать современные инструменты искусственного интеллекта, такие как ChatGPT или другие ИИ-платформы, для помощи в написании кода. Эти инструменты могут значительно упростить процесс разработки, предоставляя примеры кода, объясняя сложные концепции и даже генерируя части кода на основе ваших описаний.
Например, вы можете задать ChatGPT следующий вопрос: "Напиши торгового робота, который использует скользящие средние для принятия решений о покупке и продаже на рынке Forex" и получить полезный фрагмент кода, который можно сразу использовать или адаптировать под свои нужды. Это особенно полезно для начинающих разработчиков, которые еще не полностью уверены в своих силах.
👍 Преимущества:
• Быстрое создание начального варианта кода.
• Помощь в понимании сложных концепций.
• Возможность получения примеров и шаблонов кода.
• Экономия времени и усилий.

Создание торгового робота с помощью ChatGPT
Таким образом, использование ИИ может стать отличным подспорьем в процессе самостоятельного написания кода для торгового робота.
Вариант 3. Сгенерировать код
Например, терминал Metatrader 4 настолько популярен, что в интернете есть специальные сайты, где можно сгенерировать простых торговых роботов в формате ex4 специально под MT4.
Вот, например, несколько находок из топа Гугла (мы не несем ответственности за содержание сторонних сайтов):
eabuilderpro.com
forexeadvisor.com

Создание торгового робота онлайн бесплатно
Создание торгового робота в таком случае будет проводиться по схеме:
- 1
Добавить индикаторы
- 2
Создать условие
- 3
Добавить стратегию управления капиталом
- 4
Экспортировать торгового робота в файл
Преимущества:
вы быстро получите робота, если его можно реализовать через доступный функционал в конструкторе
бесплатно, если иное не предусмотрено в конструкторе
Тестирование на истории и оптимизация
Хорошо, вы получили робота по одному из 3 вариантов описанных выше, что дальше?
Далее нужно провести тестирование (backtesting) и оптимизацию параметров.
Тестирование – это прогон робота на истории. То есть вы берете данные за, скажем, 2017-2019 год и смотрите, какие сделки бы совершил бы робот по заложенным в него правилам в этом периоде из прошлого. Далее данные по сделкам обрабатываются и предоставляются в форме отчета, где видно:
сколько совершено сделок;
сколько робот заработал / потерял;
какие отношения заработка к потерям;
другие данные, которые позволяют оценить качество робота.
Вот ↓ как это выглядит в форекс терминале Metatrader 4.

Панель тестирования в МТ4
Чтобы открыть панель Тестирования, нажмите Ctrl+T.
Далее вы:
Выбираете робота, которого собираетесь тестировать. Файл робота в формате ex4 должен находиться в папке MQL4Experts. В примере мы выбрали робота, торгующего по скользящим средним. Он идет в комплекте с терминалом МТ4.
Выбираете торговую пару, по которой будете производить тестирование. Например, EURUSD.
Выбираете точность тестирования (чем точнее, тем дольше по времени будет длиться тестирование).
Период тестирования. Чем больше исторических данных будет обработано, тем достоверней будет результат.
Выбираете таймфрейм
Задаете величину спреда (разница между ценой покупки и продажи). Current значит, что значение спреда подгрузится автоматически.
Выбираете параметры робота. Например, периоды используемых скользящих средних, сумму начального депозита.
Запускается тестирование.
На вкладке Results будут показываться сделки, которые заключает робот во время тестирования.
В результате, если вы все сделаете правильно, с большой вероятностью вы получите такую ↓ картину на вкладке Graph:

Пример тестирования торгового робота
Она означает, что торговый робот медленно сливает депозит, потому что:
математическая вероятность получения прибыли = 50/50;
итоговый убыток идет за счет спреда (комиссионных), которые платятся в каждой сделке.
Чтобы попытаться исправить этот результат, можно попробовать “поиграться” с периодами скользящей средней, таймфреймом, валютной парой. Но все эти “игры” не дадут желаемого результата на длинной дистанции, скорее всего.
Но не исключено, что после многочисленных экспериментов со стратегиями и оптимизациями (поисков наилучших настроек торгового робота) вы увидите впечатляющую кривую, как на картинке ниже.

Результаты робота
На вкладке Report вы получите больше детальной информации.

информация о тестировании
На примере выше отчет гласит, что:
Точность тестирования = 99,9%, а ошибок тестирования = 0. Это высокая достоверность, её можно добиться за счет качественной базы данных по ценам.
Совершив 9395 сделок, роботу удалось разогнать начальные 20 тысяч долларов до 1,1 миллиона в срок с февраля 2019 года по сентябрь 2023 года.
Относительная просадка = 40% конечно высока. И в реальных условиях она серьезно потрепала бы вам нервы.
Мы еще вернемся к этому роботу, демонстрирующему миллионные доходы позже, а пока что...
Совет. Проводите оптимизацию так, чтобы находить параметры на одном периоде (например, на данных за 2015-2018 года), а тестировать их на другом (на 2019-2023). Это называется forward testing.
Мнение эксперта. Какие бы вы не проводили тестирования, на них нельзя полагаться на 100%. Дело в том, что вы не сможете смоделировать реальные условия полностью и учесть проскальзывания, изменяющиеся спреды. Большой проблемой является детализация данных внутри одной минуты, это самый маленький таймфрейм в среде Metatrader. Но от того, как меняется цена внутри минуты, может зависеть, закроется ли сделка по тейку или по стопу. На самом деле МТ4 упрощает то, что происходит внутри минуты, чтобы оптимизировать базу данных и терминал работал быстрее.

Таймфрейм тестирования
Но для профессионала важно достигать максимальной точности, поэтому он покупает тиковые базы данных большого размера за почти 20 лет, которые вам не предоставит ваш брокер, скорее всего. “Сглаженные” исторические данные от вашего брокера могут быть причиной того, что на истории робот показывает прибыль, а в реальном времени – терпит убытки.
Тестирование на демо
Когда ваш робот прошел тщательное тестирование и оптимизацию, не спешите ставить на реал.
Попробуйте вначале демо. Хотя бы несколько месяцев, чтобы торговый бот на форекс смог “пережить” несколько важных новостей. При этом вы также проверите:
Качество вашего оборудования и соединения с интернетом. Не будут ли они мешать роботу работать так, как вы этого задумываете. Чтобы минимизировать влияние этого фактора, желательно будет использовать услугу VPS.
Качество вашего кода. Наблюдая за демо, наверняка вы захотите внести в код правки, чтобы учесть больше рыночных ситуаций.
Качество вашего брокера. Используйте демо-счета от разных брокеров, чтобы посмотреть, не влияет ли выбор брокера на результативность.
Допустим, торговый робот работал на демо в реальном времени с 1 января по 1 мая, провел 40 сделок, увеличил депозит на 7.45% с просадкой 6%.
Теперь прогоните робота на историческом тесте, используя данные за эти 4 месяца. Вы увидите, что результаты отличаются. Как так? Один и тот же робот / рынок / период, все идентично, но результаты с демо и бектестинга с большой вероятностью будут отличаться? Да, это нормально. Главное, проверьте, не критично ли это отличие. Если отличия слишком большие, найдите причину. Важно, чтобы отличия были минимальны, тогда ваши результаты тестирования на истории за предыдущие годы можно считать достоверными.
Запуск на реальный счет
Если вы все сделали правильно и дошли до этого шага, то объективно вы большой молодец. Потому что обычно новички слишком опрометчиво ставят на реальный счет наспех полученные роботы, чтобы как можно быстрее начать получать прибыль. К сожалению, это чревато сливами депозитов.
“Семь раз проверь – один раз поставь на реал” – вот пословица, которой должны руководствоваться начинающие алготрейдеры.
Главное – осторожность и защита капитала. Запуская торгового робота на реальный счет, дайте ему в управление небольшую сумму для начала.
Далее смотрите, отклоняются ли результаты на реальном счете от результатов, полученных на демо-счете и на истории. Возможно, вы получите такую ↓ ситуацию:

сравнение результатов на демо-счете и на реальном счете
2 счета – демо и реал от одного уважаемого брокера – работают параллельно. Но на демо – прибыль, а на реале – убыток, хотя и там и там все идентично.
Это характерно для роботов - скальперов, которые совершают сделки во время импульсных движений цены. Длительность сделок исчисляется секундами, и критическую роль обретает качество исполнения. А оно отличается между реалом и демо. Поэтому разрабатывая робота, настоятельно отдавайте предпочтение идеям, которые не предусматривают скальпинговые трейды.
Сколько можно заработать?
Будьте реалистами, не питайте иллюзий, что простая стратегия сможет вас обогатить. Вот данные с авторитетного сайта, где продаются разработанные специалистами стратегии для управления активами на фондовом рынке. В колонке Performance указана доходность – разброс от 6% до 18% в год. Это то, что реально.

Прибыльность робота
Может ли ваш робот на долгосроке превосходить такую доходность, демонстрируя при этом просадку не более 20%?
Отлично. Вы можете подумать о том, как:
использовать робота, продавая его защищенные копии другим трейдерам,
строить долгосрочный финансовый план,
принимать инвестиции.
Частый вопрос – Может ли торговый робот работать на полном автомате?
Теоретически, да. Но оставлять его без присмотра рискованно. Желательно по мере течения времени проводить тестирования и оптимизацию на обновленных исторических данных, чтобы настройки робота были актуальными для текущих рыночных условий. Рынки же меняются, следуя глобальным макроэкономическим циклам.
Ошибки алготрейдеров
В завершение темы сделаем краткий обзор самых распространенных ошибок тех, кто начинает строить торговых роботов:
Недооценивают мысль: “Прошлые результаты не гарантируют прибыльность в будущем”
Запускают роботов на реальных счетах не имея убедительных доказательств их прибыльности на истории и на демо.
Подвергают свой капитал риску, запуская роботов по непредсказуемым “секретным” стратегиям. Это так называемые “черные ящики”.
Слишком оптимизируют роботов, тем самым просто “подгоняют” настройки.
Работают с брокерами на счетах, которые не рассчитаны для алгоритмической торговли.
Увлекаются роботами-скальперами для быстрой прибыли.
Оставляют роботов во включенном состоянии во время выхода новостей.
Одна распространенная ошибка – использование мартингейла – заслуживает отдельных абзацев.Помните захватывающую картинку выше, где робот разгоняет $20к до $1,1м за 2,5 года? Это мартингейл.
После каждой неудачной сделки этот робот, работающий по системе мартингейл, входит в новую сделку с увеличенным размером. Тем самым расчет идет на то, что прибыль по последующим сделкам перекроет минусы от предыдущих.
У мартингейла есть два минуса:
такому роботу нужен большой стартовый депозит, чтобы иметь достаточно ликвидности на случай, если полоса неудачных сделок затянется;
существует риск, что депозита хватит, если робот начнет открываться против сильного тренда. В таком случае депозит будет слит.
Можно, конечно рассчитывать, что торговый робот, использующий мартингейл, принесет достаточно прибыли перед тем, как сольется... Если вы готовы нести ответственность за такое решение – это ваш выбор. Мы не рекомендуем играть с огнем.
Выводы
Трейдинг на бирже не приносит легкие деньги. Алготрейдинг – не исключение.
Чем больше кажущаяся прибыль – тем выше на самом деле риски.
Чтобы ваш опыт с разработкой торговых роботов для форекс принес больше ценности, чем разочарований – стройте свою работу на основе информации, представленной выше. Статья написана с учетом рекомендаций профессиональных алготрейдеров, сотрудничающих с Traders Union.
FAQ
Могу ли я написать торгового робота?
Да, создать торгового робота может каждый. Для этого нужен небольшой объем знаний, но его важно правильно настроить.
Можно ли использовать робота у моего брокера?
Не факт. Не все брокеры разрешают алгоритмическую торговлю. Ознакомьтесь с внутренними документами платформы и задайте вопрос в службу технической поддержки.
Торговый робот гарантирует прибыль?
Нет. Даже самый лучший трейдинг-бот не обеспечит вам 100% гарантию получения прибыли. Поэтому контролируйте сделки.
Я не умею писать код самостоятельно. Можно ли его сгенерировать?
Да. Существуют сервисы, которые автоматически генерируют код для MetaTrader 4 или MetaTrader 5.
Команда, работавшая над статьей
Иван – финансовый эксперт и аналитик. Специализируется на торговле на рынках Форекс, акций и криптовалют. Предпочтительный стиль торговли – консервативные стратегии с низким и средним риском, среднесрочные и долгосрочные инвестиции. Опыт на финансовых рынках – 8 лет. Занимается подготовкой текстовых материалов для начинающих трейдеров. Также специализируется на обзорах и оценке брокеров, анализируя их надежность, торговые условия и особенности.
Автор, редактор и корректор портала Traders Union с 2017 года. С 2020 года занимает должность заместителя главного редактора сайта международного объединения трейдеров Traders Union, имеет 10-ти летний опыт работы с текстами в экономической и финансовой сферах. В период с 2017 по 2020 год Ольга выполняла обязанности журналиста и редактора информационного агентства IaftNews, рубрик экономические и финансовые новости. На данный момент Ольга входит в команду ведущих отраслевых экспертов и работает над созданием образовательных статей финансово-инвестиционной тематики, курирует их формирование и публикацию на сайте Traders Union.