Робот для классического статистического парного арбитража в OsEngine.

Робот для классического статистического парного арбитража в OsEngine.

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

Логика:

Суть: корреляция пробивает уровень 0,9 , и мы с какой-то стороны коинтеграции входим, рассчитывая на схождения пар.

Выход по обратному сигналу коинтеграции.

Рис. 1. Пример логики.

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

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

Код робота: 

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

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

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

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

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

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

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

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

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

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

1. Проверяем, включен робот или нет, если нет, то выходим из события.

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

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

1. Смотрим направление Коитеграции:

a. Направление выше верхней линии.

b. Прошлое значение было ниже нижней линии.

То мы закрываем позиции.

2. Также смотрим направление.

a. Значение ниже нижней линии.

b. Прошлое значение выше верхней линии.

Закрываем позиции.

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

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

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

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

4. Если ниже нуля, то с точностью до наоборот первый инструмент - вход в Long, а второй - вход в Short.

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

Мы провели тест на 6 парах. Вот что из этого у нас получилось:

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

 

17:32
790

Комментарии

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