Содержание
Создаем советник в R StocksTrader с нуля. Практическое руководство
Для того, чтобы торговать на валютном или фондовом рынке, необходимо иметь набор правил, которые требуется соблюдать. Только в этом случае можно добиться успеха. Даже долгосрочное инвестирование подразумевает под собой определенные правила, согласно которым выбирается актив для покупки, и рассчитывается срок инвестирования в этот актив.
Торговые системы
Данные правила можно назвать торговой системой. Торговые системы могут быть основаны на техническом или фундаментальном анализе.
Технический анализ подразумевает под собой анализ графика интересуемого финансового инструмента. Анализ этот производится с помощью разного рода индикаторов или общеизвестными ценовыми паттернами.
Фундаментальный анализ подразумевает под собой анализ новостных лент, инсайдерской информации, статистических данных, на основании которых можно сложить представление о текущей динамике и сделать прогноз возможного движения цены.
Торговые роботы
Если трейдер определился, какой вид анализа ему ближе, он начинает торговать. Со временем он достигает совершенства в торговле и для него это становиться обычной рутинной работой. В этой ситуации перед трейдером встает вопрос о том, как автоматизировать свою торговую стратегию.
Фундаментальный анализ автоматизировать достаточно сложно. Необходимо обладать навыками программирования, создавать роботов, которые умеют «читать и анализировать» новости. А еще лучше, если есть опыт работы с искусственным интеллектом. Поэтому круг таких трейдеров достаточно ограничен, при этом эффективность подобных систем ничем не лучше тех, которые основаны на техническом анализе.
Торговую систему, основанную на техническом анализе, гораздо проще перевести в автоматический режим. Если она состоит из индикаторов, то в этом случае достаточно знать язык программирования платформы, на которой работает трейдер.
Например, на рынке Форекс большой популярностью пользуется платформа MetaTrader 4. Для того, чтобы написать торгового робота для этой платформы, необходимо знать язык программирования MQL4. То есть и в этом случае также потребуется изучение языков программирования.
Где создать робота без знаний в области программирования?
Рынки развиваются, а вместе с ними появляются и новые возможности по автоматизации торговых систем.
Отличным вариантом для создания роботов без знаний программирования является мультирыночная платформа R StocksTrader. В неё встроен понятный и простой конструктор стратегий. Данный конструктор позволяет автоматизировать торговую систему, не обладая навыками программирования. Все, что от вас требуется, это небольшой опыт торговли, для того, чтобы понимать, что такое цена открытия/закрытия и максимальная/минимальная цена интересуемой «свечи» на графике.
Описание торговой системы
Чтобы снять все вопросы по написанию торгового робота в платформе R StocksTrader, я покажу вам как это делается на основании очень простой торговой системы, состоящей из двух индикаторов.
Первое, и самое важное, что вам понадобится на начальном этапе — это торговая система. В ней должно быть четкое описание правил открытия позиции на покупку и продажу. Чтобы не ошибиться, желательно нанести все используемые индикаторы на график.
В нашем случае открытие позиции на Buy будет выглядеть следующим образом.
- (EMA) – 200, Close, 0 — меньше, чем цена закрытия текущей свечи.
- Нижняя линия индикатора Bollinger Bands Low (20, Close, 2, 0) больше, чем минимальная цена текущей свечи.
Если выполнились эти два условия, тогда открыть позицию Buy.
Теперь описываем условия закрытия позиции Buy.
- Верхняя линия индикатора Bollinger Bands High (20, Close, 2, 0) меньше, чем максимальная цена текущей свечи.
- Moving Average (EMA) – 200, Close, 0 больше, чем цена закрытия текущей свечи.
Создание торгового робота
Сейчас я показал вам как описать точку входа на Buy. Теперь все это необходимо перенести в платформу R StocksTrader.
Заходим в платформу и выбираем вкладку Strategies – My Strategies, после чего нажимаем «создать новую стратегию» (Add new strategy).
На следующем шаге вам необходимо будет придумать имя вашей стратегии и дать её краткое описание.
После того, как все эти этапы пройдены, вы попадаете уже в сам конструктор, где необходимо задать условия торговой системы.
Для начала вам предлагается задать условие для открытия позиции на Buy. Так как мы их описали выше, то нам теперь достаточно лишь выбрать соответствующие параметрам индикаторов и указать условия.
Теперь необходимо задать условие закрытия позиции, которые были описаны выше.
Дополнительно можно указать значение Стоп Лосс / Stop Loss (close at SL) и значение Тейк Профит / Take Profit (close at TP). В этом случае позиция будет закрыта по условию, которое выполнится первым.
Итак, мы сформировали условия для открытия и закрытия позиции на Buy. Теперь можно проверить, покажет ли положительный результат такая торговая система.
Для этого необходимо выбрать инструмент, на котором будет проводиться тестирование, затем выбрать временной период, объём открываемой позиции (Order volume) и после этого нажать кнопку «Backtest».
Тестирование торговой стратегии
Тестирование производится на исторических данных, период тестирования определяется платформой и зависит от количества доступных для тестирования котировок. К сожалению загрузить котировки для более длительного периода тестирования здесь не получиться.
Если мы все сделали правильно, появятся результаты тестирования.
В данном случае текущая стратегия показывает положительный результат с суммой прибыли в 1304 USD. Отрицательный результат, означает, что систему придется дорабатывать.
В этом тестере не указывается стартовый депозит. Рост прибыли начинается с нулевой отметки, а значит все, что ниже нулевой отметки, можно засчитывать за «просадку» депозита. По этой стратегии в самом начале была замечена «просадка» около 400 USD. В последующем убытки по торговой стратегии приходились на заработанные деньги.
Но это еще не все, текущий результат можно улучшить, добавив еще несколько стандартных условий. Возвращаемся в раздел редактирования стратегии (нажимаем Editor) и в значении «Max open deals» ставим цифру 2.
Это значит, что мы разрешаем торговому роботу открывать вторую позицию, даже если первая еще не закрылась.
«Max open deals» разрешает открывать новые позиции, когда предыдущие еще не закрылись. Хочу предупредить, что в данной стратегии этот параметр работает некорректно. Проверка условий происходит на каждом тике, в итоге за одну минуту может открыться очень большое количество позиций в одном направлении.
Чтобы избежать подобной ситуации, но все же иметь возможность открыть позицию в том же направлении по лучшей цене, можно задействовать функцию «Enter every 0 ticks above last entry». Данная функция позволяет открывать новую позицию через определенное количество пунктов ниже/выше предыдущего ордера. Для этого, вместо значения ноль, прописываем нужное нам количество пунктов.
Дополнительно в значении «Multiplicator» прописываем цифру 2, то есть указываем роботу, что необходимо открывать вторую позицию с объёмом в два раза больше, чем в первой позиции.
Multiplicator умножает объём предыдущего открытого ордера на значение, которое в нем указано. Нажимаем «Backtest» и получаем новый результат.
Запуск торгового робота
Если результат нас устраивает, тогда остаётся только запустить стратегию в работу.
Для этого необходимо нажать кнопку «Enable», после чего появится окно, в котором необходимо указать объём открываемой позиции и, по желанию, можно указать значение Take Profit и Stop Loss в USD. Если эти графы оставить пустыми, тогда позиции будут закрываться по условиям, описанным в торговой стратегии.
Выбор инструмента происходит автоматически. В данном случае используется тот инструмент, график которого сейчас открыт на экране, а именно US500. Дополнительно, после запуска стратегии во вкладке Running Strategies нам будет доступна информация и название стратегии, когда она была запущена, на каком инструменте, период графика и полученная прибыль.
Таким же образом можно запустить эту стратегию на всех инструментах, на которых она показывает положительный результат. Но в этом случае вам необходимо будет рассчитать объём для каждого инструмента, чтобы не превысить допустимые риски на депозите, так как одновременное закрытие позиций с убытком по всем инструментам, может привести к значительной потере средств.
Для удаления стратегии достаточно нажать на крестик в конце строки.
В платформе R StocksTrader, в отличие от терминала MetaTrader 4 и MetaTrader 5, нет надобности постоянно держать включенным компьютер, чтобы робот имел возможность торговать. Услуги VPS сервера здесь так же не требуются. Достаточно запустить Торгового робота на платформе, после чего он автоматически запускается на сервере и начинает работать.
В процессе торговли у вас есть возможность закрывать позиции вручную, вносить изменения в ордер и в саму стратегию. Вы можете приостанавливать работу Советника, или же просто удалить его, если результаты начали ухудшаться.
Дополнительным преимуществом торговых роботов на платформе R StocksTrader является наличие очень большого количества инструментов. В этой платформе доступны акции, торгуемые на американских и европейских биржах, валютные пары, а также криптовалюты. Таким образом одного робота можно опробовать на нескольких рынках, в противном случае пришлось бы под каждую платформу создавать робота и изучать языки программирования, что занимает очень много времени.
Видео «Алготрейдинг: Как создать своего торгового робота без знания программирования?»
Вывод
Теперь вы понимаете, что написать своего торгового робота может каждый. В платформе имеются стандартные стратегии, которые можно использовать в трейдинге. У всех этих стратегий открыты условия, по которым они работают. В данной ситуации, при необходимости, их можно доработать согласно своим идеям и найти инструменты, на которых они будут работать более эффективно.
От вас требуется только, огромное желание развиваться в трейдинге, и использовать все возможности, по извлечению прибыли от торговли на финансовых рынках. Одна из этих возможностей была описана в текущей статье.
Евгений Савицкий
Работает на валютном рынке с 2004 года. С 2012 года участвует в торговле акциями на американской бирже и публикует аналитические статьи по фондовому рынку. Принимает активное участие в подготовке и проведении обучающих вебинаров RoboForex.
Как самому создать советника или индикатор
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий.
Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть найдены примеры готовых приложений.
Встроенный язык программирования торговых стратегий MQL5 #
В торговую платформу встроен язык программирования торговых стратегий MetaQuotes Language 5. Это — пятое поколение языков MQL. Он позволяет писать советники, автоматизирующие управление торговыми процессами, и реализовывать собственные торговые стратегии. Кроме того, на MQL5 можно создавать пользовательские индикаторы, скрипты и библиотеки функций.
Особенности языка MQL5:
- Объектная ориентированность;
- Синтаксис MQL5 похож на синтаксис языка C++;
- Большое количество функций, необходимых для анализа котировок, управления позициями, вызова технических индикаторов и других;
- Высокая производительность;
- Высокий уровень защиты от декомпиляции: новые, сложные алгоритмы шифрования, проверка целостности файлов и сложность самого языка;
- Поддержка OpenCL, что позволяет использовать видеокарты для выполнения вычисления в MQL5-программах;
- Интегрированная среда разработки программ MetaEditor, включающая отладчик.
Подробное описание всех конструкций языка и функций приведено в справочнике MQL5. Также всю интересующую информацию о MQL5 можно найти на сайте сообщества разработчиков https://www.mql5.com.
Редактор для разработки торговых приложений MetaEditor #
MetaEditor — это интегрированная среда разработки на языке MQL5, он является составной частью торговой платформы. MetaEditor позволяет создавать, редактировать, компилировать и отлаживать исходные тексты программ, написанных на языке MQL5.
- Мастер MQL5 для создания шаблонов и готовых торговых роботов
В MetaEditor встроен Мастер MQL5, который помогает быстро создавать MQL5-программы. Благодаря Мастеру MQL5, трейдер может создать советники, не обладая знаниями в области программирования. Все что нужно сделать — это выбрать торговые сигналы, которые будет использовать советник, алгоритм мани-менеджмента и трейлинг стопа. Код советника будет сгенерирован автоматически на основе выбранных параметров.
Помимо этого, Мастер MQL5 позволяет создавать шаблоны MQL5-программ, что облегчает работу программиста. - Помощь при работе с исходным кодом
MetaEditor распознает различные конструкции языка: выдает подсказки по использованию функций и подсвечивает различные элементы кода программы. Таким образом, сам редактор облегчает ориентирование в коде торговых программ и ускоряет их разработку. - Отладка для поиска ошибок
MetaEditor позволяет осуществлять отладку программ, что значительно облегчает поиск ошибок. Можно пошагово выполнять исходный код и следить за значениями переменных. - Профилирование для оптимизации кода
В редакторе также доступна возможность профилирования. Вы сможете выявить наиболее медленные функции в исходном коде и максимально оптимизировать работу торговых программ. - Статьи о программировании и библиотека исходных кодов
Прямо в редакторе вы можете найти множество обучающий статей о программировании на MQL5. Помимо этого имеется доступ к огромной библиотеке бесплатных программ для автотрейдинга в виде исходных кодов. - MQL5 Storage — онлайн хранилище с поддержкой версионности
Хранилище предоставляет множество преимуществ: безопасное хранение файлов и возможность восстановления при выходе вашего компьютера из строя, доступ к своим кода с любого компьютера при помощи аккаунта MQL5.community, возможность совместной работы над проектами.
Детальное описание MetaEditor дано во встроенной справке по этой программе. Описание языка MQL5 может быть найдено во встроенном справочнике, а также на официальном сайте MQL5.community.
Статьи по разработке торговых приложений #
На сайте MQL5.community доступна обширная библиотека статей по программированию на MQL4/MQL5. Статьи являются отличным справочным материалом по созданию программ, в них рассматривается множество практических задач по алготрейдингу. Новые статьи выходят каждую неделю.
Список всех доступных статей отображается прямо в MetaEditor. Чтобы найти интересующий материал, воспользуйтесь онлайн-поиском.
Какие бывают типы приложений на MQL5 #
Существует три основных типа торговых приложений.
Советники
Советники — механические торговые системы, позволяющие полностью автоматизировать аналитико-торговую деятельность для эффективной работы на финансовых рынках. Они позволяют оперативно проводить технический анализ ценовых данных и на основе полученных сигналов управлять торговой деятельностью. Они также помогают четко придерживаться торговой стратегии, исключив роль эмоционального фактора.
Все советники хранятся в папке /MQL5/Experts торговой платформы.
Пользовательские индикаторы
Пользовательские индикаторы — самостоятельно написанные технические индикаторы, предназначенные для анализа динамики цен. На основе алгоритмов индикаторов строятся торговые тактики и разрабатываются советники. Пользовательские индикаторы предназначены только для анализа динамики цен финансовых инструментов. Индикаторы не могут торговать и не имеют доступа к графикам.
Все индикаторы хранятся в папке /MQL5/Indicators торговой платформы.
Скрипты
Скрипты — скриптом называется программа, написанная на языке MQL5 и предназначенная для одноразового выполнения любых действий. Скрипт может выполнять как аналитические, так и торговые функции. В отличие от советников, скрипты исполняются по запросу. Иными словами, если советник работает практически постоянно, то скрипт, отработав один раз, самостоятельно завершает работу.
Все скрипты хранятся в папке /MQL5/Scripts торговой платформы.
Сервисы
Сервисы позволяют использовать собственные источники ценовых данных для платформы — передавать цены от внешних систем в режиме реального времени так, как это делают торговые серверы брокеров. Также сервисы можно использовать для выполнения других обслуживающих задач в фоновом режиме.
В отличие от советников, индикаторов и скриптов, сервисы не привязаны к конкретному графику. Они работают в фоновом режиме и начинают работу автоматически при запуске терминала (если они не были принудительно остановлены).
Все сервисы хранятся в папке /MQL5/Services торговой платформы.
Внутри папок Experts, Indicators, Scripts и Services программы могут быть рассортированы по подпапкам, при этом в окне "Навигатор" будет отображаться структура их размещения.
Как создать и запустить торговое приложение #
Нажмите " Создать в редакторе" в контекстном меню окна "Навигатор" в разделе "Советники", "Индикаторы" или "Скрипты". Также для запуска MetaEditor можно нажать F4.
После этого будет запущен MetaEditor, и в нем автоматически откроется "Мастер MQL5". Он позволит сгенерировать шаблон нужной программы, что быстро приступить к разработке. Для примера создадим простой скрипт, который будет выводить в журнал надпись "Hello world".
В полученном шаблоне напишем код Print ( "Hello World" ); и произведем компиляцию клавишей F7, чтобы получить исполняемый файл. Исполняемый файл имеет расширение EX5, именно такой файл может быть запущен в торговой платформе.
Результаты компиляции выводятся в журнал редактора.
В соответствии с типом программы, исходный код был сохранен в папку MQL5Scripts. В этой же папке был создан и исполняемый файл. Теперь можно вернуться в торговую платформу и запустить созданный скрипт.
Особенности работы с программами для автоматического трейдинга описаны в разделе "Торговые советники и собственные индикаторы".
Как изменить торговое приложение #
Чтобы приступить к редактированию торгового робота или пользовательского индикатора, нажмите " Изменить" в его контекстном меню в окне "Навигатор" или выделите его и нажмите "Enter". При этом будет открыт MetaEditor, в который уже будет загружен исходный код выбранного индикатора. После изменения индикатора скомпилируйте его повторно (F7), иначе в платформе будет использоваться предыдущая, неизмененная версия.
Как завершить работу торгового приложения #
Существует множество способов завершить работу торгового приложения в платформе.
Пользовательский технический индикатор
- Нажмите "Удалить" в окне "Список советников";
- Смените шаблон графика;
- Смените профиль, при условии что в настройках платформы включена соответствующая опция;
- Выключите торговую платформу;
- Закройте график, к которому прикреплен эксперт;
- Наложите другой советник на тот же график;
- Нажмите " Удалить" в контекстном меню значка эксперта на графике.
- Нажмите " Удалить" или " Удалить окно индикатора" в контекстном меню индикатора;
- Нажмите "Удалить" в окне "Список индикаторов";
- Смените шаблон графика;
- Переоткройте график.
- Нажмите "Удалить" в окне "Список советников". Данное окно также содержит список запущенных скриптов;
- Смените шаблон графика;
- Смените профиль, при условии что в настройках платформы включена соответствующая опция;
- Смените символ графика;
- Смените период графика;
- Выключите торговую платформу;
- Закройте график, к которому прикреплен скрипт;
- Наложите другой скрипт на тот же график;
- Нажмите " Удалить" в контекстном меню значка скрипта на графике.
- Если торговое приложение запущено на графике, удаление соответствующего ей исполняемого файла из окна "Навигатор" не завершит ее работу.
- Отключение советников в настройках торговой платформы не является гарантией полного их отключения. Эта опция лишь запрещает советникам торговать.
Как запустить скачанный файл исходного кода MQ5 #
Если у вас имеется только файл исходного кода (*.MQ5), поместить его в папку, соответствующую типу приложения:
- Для советников — /MQL5/Experts
- Для индикаторов — /MQL5/Indicators
- Для скриптов — /MQL5/Scripts
Чтобы быстро перейти к папке хранения информации торговой платформы, нажмите " Открыть каталог данных" в меню "Файл".
Чтобы запустить файл в торговой платформе, скомпилируйте его в MetaEditor:
- Откройте MetaEditor клавишей F4.
- В MetaEditor в окне "Навигатор" откройте файл исходного кода двойным нажатием на нем левой кнопкой мыши.
- Скомпилируйте его клавишей F7.
В результате вы получите исполняемый файл *.EX5, который уже можно запустить в торговой платформе.
Исходные файлы (*.MQ5) не отображаются в окне "Навигатор" торговой платформы.
Источник https://blog.roboforex.com/ru/blog/2019/10/24/sozdaem-sovetnik-v-r-trader-s-nulya-prakticheskoe-rukovodstvo/
Источник https://www.metatrader5.com/ru/terminal/help/algotrading/autotrading
Источник