Обзор бесплатного робота для парного арбитража в OsEngine. Сразу напоминаем, что робот уже готов к запуску на Московской бирже (MOEX), криптобиржах вроде Binance, Bitget и т.д.

Логика:
Робот, ловящий «кочергу» в парах на разрыв. То есть прибыль будет тогда, когда пары продолжают движение на расхождение относительно друг друга.
Суть идеи: если корреляция ниже определённого значения ( в данном случае -0,8), и на графике минимальных отклонений мы находимся выше/ниже сигнальных линий, входим, рассчитывая на дальнейшее расхождение инструментов.

Рис. 1. Логика входа.
После входа ждем, когда корреляция станет больше 0,8, выходим из позиций:

Рис. 2. Выходим из позиций.
Расположение робота в проекте OsEngine:

Код робота:

Рис. 4. Конструктор.
- Создаем закрытое поле типа BotTabPair.
- Вызываем метод из базового класса робота TabCreate, а в качестве параметра передаем туда перечисление BotTabType, в нашем случае Pair, и ниже записываем ссылку в ранее созданное поле.
- Подписываемся на событие CorrelationChangeEvent.
- Создаем параметр Regime для проверки состояния робота: включен он или же наоборот.
- Далее параметр MaxPositionCount для настройки максимального количества позиций.
- MaxCorrelationToEntry — параметр для обозначения порога корреляции для входа.
- MixCorrelationToExit — параметр для порога корреляции для выхода из позиций.

Рис. 5. Метод GetNameStrategyType.
Создаем метод GetNameStrategyType и записываем в нем название робота.
Переходим в обработчик события изменения значения корреляции:

Рис. 6. Обработчик событий CorrelationChangeEvent.
- Проверяем статус робота: включен или нет.
- Проверяем на наличие позиций: если у нас есть позиции, то мы переходим в логику закрытия, если нету идем в логику открытия позиций.

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

Рис. 8. Логика открытия позиций.
- Проверяем корреляцию: если она подходит по условию, то идем дальше по методу, если нет, то выходим.
- Сверяем количество открытых позиций во всех парах с максимально допустимым значением: если у нас не превышает данное количество, переходим к открытию позиций.
- Если коинтеграция выше сигнальной линии, то на первом инструменте заходим в Long, а на втором в Short. Если коинтеграция ниже сигнальной линии, то с точностью до наоборот.

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Комментарии открыты для друзей, добавляйтесь!