На примере самого простого арбитражного бота разберем способ использования вкладки типа BotTabIndex. Примеры будут и далее.
Перед нами стоит следующая задача: построить график спреда двух торговых инструментов, набросить индикатор ценового канала на график и при расхождении спреда открывать разнонаправленные позиции. По сути, у нас должен получится двуногий арбитраж, который открывает позиции при расхождении спреда, в надежде дождаться сужения и выйти из позиций. В качестве канала будем использовать индикатор LastDayMiddle. Пример робота является демонстрационным и не гарантирует прибыли. Его задача — познакомить вас с возможностями BotTabIndex.
Рассмотрим список полей, используемых в роботе:
Режим работы бота, On/Off, включен или выключен соответственно.
Параметр для настройки размера отклонения для индикатора.
Торговый объем для первого инструмента.
Торговый объем для второго инструмента.
Поле для хранения ссылки на индекс вкладку.
Простая вкладка для первого инструмента.
Простая вкладка для второго инструмента.
Используемый в роботе индикатор.
Чтобы не раздувать конструктор, инициализацию параметров вынесем в отдельный метод CreateParameters:
Рассмотрим конструктор робота:
Тут следует сделать важное замечание по поводу метода CreateCandleIndicator. Он возвращает ссылку на индикатор, приведенный к интерфейсу IIndicator. Нам нужно выполнить приведение к типу Aindicator, чтобы получить доступ ко всем возможностям индикатора. И также обязательно нужно обновить ссылку индикатора в поле _dayMiddle.
При изменении параметров в обработчике события изменяем настройки индикатора, сохраняем и перезагружаем индикатор:
Далее рассмотрим метод обработчик события изменения спреда, в котором имеется пара фильтров:
Если робот выключен, выходим из метода.
Если последнее значение одной из серий индикатора равно нулю, значит индикатор еще не готов, выходим из метода.
Вызываем метод с торговой логикой.
Рассмотрим основной метод робота, в котором содержится торговая логика:
Процесс запуска и настройки этого алгоритма, а также принцип его работы мы рассмотрим в следующей статье.
Код алгоритма доступен по ссылке: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/SimpleArbitrage.cs
Удачных алгоритмов!
Оглавление здесь: https://smart-lab.ru/company/os_engine/blog/997533.php
Подписывайтесь. Комментарии открыты для друзей.
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР:https://smart-lab.ru/company/os_engine/blog