Робот для парного арбитража на разрыв, на основе корреляции и коинтеграции в OsEngine

Робот для парного арбитража на разрыв, на основе корреляции и коинтеграции в OsEngine

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

Логика:

Робот, ловящий кочергу в парах в тренд.

Суть идеи. Если корреляция ниже -0,8 – входим, рассчитывая на дальнейшее раздвижение:

Рис. 1. Логика входа.

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

 

Рис. 2. Выходим из позиций.

Расположение: 

Рис. 3. Расположение робота в проекте.

Код робота: 

Рис. 4. Конструктор.

1. Создаем закрытое поле типа BotTabPair.

2. Вызываем метод из базового класса робота TabCreate, а в качестве параметра передаем туда перечисление BotTabType, в нашем случае Pair. И ниже записываем ссылку в ранее созданное поле.

3. Подписываемся на событие CorrelationChangeEvent.

4. Создаем параметр Regime для проверки состояния робота, включен он или же наоборот.

5. Далее параметр MaxPositionCount для настройки максимального количества позиций.

6. MaxCorrelationToEntry параметр для обозначения порога корреляции для входа.

7. MixCorrelationToExit параметр для порога корреляции для выхода из позиций.

Рис. 5. Метод GetNameStrategyType.

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

 

Рис. 6. Обработчик событий CorrelationChangeEvent.

Переходим в обработчик событий:

1. Проверяем статус робота - включен или нет.

2. Проверяем на наличие позиций. Если у нас есть позиции, то мы переходим в логику закрытия, если нету идем в логику открытия позиций.

 

Рис. 7. Логика закрытия позиций.

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

Рис. 8. Логика открытия позиций.

1. Проверяем корреляцию, если она подходит по условию, то идем дальше по методу, если нет, то выходим.

2. Сверяем количество открытых позиций с максимально допустимым значением. Если у нас не превышает данное количество, переходим к открытию позиций.

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

Тестирование: 

Мы провели тестирование 10 пар, и вот результаты:

Рис. 9. Результаты тестирования.

 

17:18
349

Комментарии

Нет комментариев. Ваш будет первым!