rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.

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

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.

Логика: 

Робот, ловящий «кочергу» в парах на разрыв. То есть прибыль будет тогда, когда пары продолжают движение на расхождение относительно друг друга.

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

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 1. Логика входа.

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

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 2. Выходим из позиций. 

 

Расположение робота в проекте OsEngine:

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.

Код робота:

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

 Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 5. Метод GetNameStrategyType.

Создаем метод GetNameStrategyType и записываем в нем название робота.

Переходим в обработчик события изменения значения корреляции:

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 6. Обработчик событий CorrelationChangeEvent. 
  1. Проверяем статус робота: включен или нет.
  2. Проверяем на наличие позиций: если у нас есть позиции, то мы переходим в логику закрытия, если нету идем в логику открытия позиций.
Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 7. Логика закрытия позиций.

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

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.
Рис. 8. Логика открытия позиций.

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

Робот для парного арбитража НА РАЗРЫВ. На основе анализа корреляции и графика минимальных отклонений разницы инструментов с оптимальным мультипликатором.

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Комментарии открыты для друзей, добавляйтесь!

★2

UPDONW
Новый дизайн