Сегодня рассмотрим пример робота, торгующего в тренд с оглядкой на индекс по стадиям волатильности. Исходники в проекте. Приятного использования!
Торговая идея:
Брать инструменты, которые идут жёстко и с импульсом против широкого рынка и торговать их в тренд. Т.е. в сторону, куда они отклоняются.
1. Источники робота.
- Индекс. BotTabIndex для генерации индекса.
- Скринер. BotTabScreener для того, чтобы брать сразу N инструментов с рынка и торговать одновременно их все.
2. Индикаторы.
- Корреляция, которая понадобится нам для динамического отсеивания инструментов.
- График «Минимальных остатков от разницы между инструментами с оптимальным мультипликатором».
- Скользящие средние. Одна на индексе, вторая на инструменте.
- Параболик на торгуемых инструментах. Чтобы временной распад индикатора закрыл позицию, если мы не движемся в нужную сторону, и импульс закончился.
3. Логика робота.
- Строим широкий индекс, выбирая бумаги по объёму, взвешивая по цене.
- Каждое обновление индекса проверяем каждый инструмента на корреляцию.
- Если инструмент проходит по корреляции, проверяем каждый инструмент на отклонение от индекса по «Минимальным остаткам».
- Если инструмент отклонился больше, чем на стандартное отклонение, умноженное на мультикпликатор, торгуем на дальнейшее ускорение.
- Выход из позиции по трейлинг стопу в %, рассчитанному от усреднённого отклонения внутридневной волатильности.
4. Исходный код в проекте.
Ссылка на ГитХаб: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Robots/IndexArbitrage/MultiOneLegArbitrageInTrend.cs
Конструктор:
- Создание индекса (BotTabIndex) и подписка на событие его обновления. В этом событии логика открытия позиции.
- Создание индикатора волатильности и пересылка его на Индекс.
- Создание скринера (BotTabScreener) и подписка на событие обновления свечи по любому загруженному в него инструменту. В этом событии логика закрытия позиций.
- Создание индикатора волатильности усреднённой для каждого инструмента в скринере. От значения этого индикатора у нас считается мультипликатор для трейлинг-стопа.
- Инициализация параметров стратегии.
Куда надо смотреть в коде:

Блоки с логикой открытия и закрытия позиций выделены комментариями.
5. Настройки робота.
1. Regime. Режим работы:
- On – включены все режимы торгов.
- Off – выключено.
- OnlyLong – разрешены только позиции лонг.
- OnlyShort – разрешены только позиции шорт.
2. Volatility Stage To Trade. Стадия волатильности, в которой разрешены открытия позиций.
3. Stop mult. Множитель для показателя волатильности инструмента для определения расстояния для трейлинг-стопа.
4. Max poses count. Максимально разрешённое кол-во одновременно открытых позиций.
5. Percent depo on positions. Процент от доступных средств на одну позицию.
6. Asset in portfolio. Название денежной единицы в портфеле. Если Prime, то будет браться общая единица исчисления, доступная в тестере и некоторых типах подключений к Московской бирже. В остальных случаях нужно выбирать название валюты по тому, как она называется у Вас в портфеле.
7. Slippage. Проскальзывание для заявки в %.
8. Correlation candles look back. За какой период будем считать корреляцию между индексом и бумагой в торгах.
9. Cointegration candles look back. За какой период будем считать график минимальных остатков между бумагой и индексом с оптимальным мультипликатором.
10. Deviation mult. Отклонение для стандартного отклонения на графике минимальных остатков от разницы с оптимальным мультипликатором.
11. Correlation min value. Минимальное значение корреляции для того, чтобы можно было открывать по бумаге позицию.
6. Настройки индикатора стадий волатильности.
Вызывать индикатор стадий волатильности можно и нужно с графика индекса путём нажатия на него правой кнопкой мыши:
Вызывать индикатор усреднённой волатильности нужно из источника скринера также правой кнопкой мыши:
Про индикаторы волатильности есть отдельная огромная статья: https://o-s-a.net/os-engine-faq?cats%5B%5D=tab10&cats%5B%5D=tab11&subcats%5B%5D=sub55&items%5B%5D=item285
7. Запуск робота в тестере.
В настройках эмулятора биржи у меня подключен сет из ТОП 20 бумаг с MOEX:
В данном случае это пятиминутки. Но у нас в офисе Intel Core I9, 13 поколения. И я могу себе позволить такой низкий тип данных. Вам рекомендую использовать ЧАСОВИК.
Создаём робота. Открываем его чарт и настраиваем источники:
В Индекс добавлены все бумаги из источника:
Также у индекса настроена автоформула:
В скринер подключены все бумаги:
8. Один из вариантов тестирования.
Суть данного робота, кроме всего прочего, в применении стадий волатильности для разрешения и запрета входов. Например, в данном случае выбрана стадия волатильности 2, в которой можно работать, и индикатор настроен так, чтобы он имел три стадии, обращая внимание на центр канала. Т.е. чтобы волатильность была стандартной, вот там входить можно. Стадии повышенной волатильности и стадии её отсутствия не для открытия позиций:
Удачных алгоритмов!
Пост из серии статей по Индексному Арбитражу.
Оглавление здесь: https://smart-lab.ru/company/os_engine/blog/997533.php
Подписывайтесь. Комментарии открыты для друзей.
Что почитать по алготрейдингу?
1) Сборник статей по парному арбитражу: https://smart-lab.ru/company/os_engine/blog/948250.php
2) Сборник статей по валютному арбитражу: https://smart-lab.ru/company/os_engine/blog/965051.php
3) Сборник статей про индикаторы и роботы к ним: https://smart-lab.ru/company/os_engine/blog/966919.php
4) Как стать программистом и изменить свою жизнь: https://smart-lab.ru/company/os_engine/blog/982134.php
OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support
Курилка, общаемся здесь: https://t.me/o_s_a_chat
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР:https://smart-lab.ru/company/os_engine/blog

Подробнее https://smart-lab.ru/compan...














