Робот для парного арбитража на схождение.

Робот для парного арбитража на схождение.

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

Логика:

Робот, торгующий по графику отклонений одного инструмента от другого, рассчитанного через их разницу с мультипликатором.

На данный график накладывается две линии, рассчитанные из стандартного отклонения, умноженного на мультипликатор. Выше и ниже нуля.


Рис. 1. График минимальных отклонений между инструментами с оптимальным мультипликатором.

1. Когда текущее отклонение выше верхней линии на графике отклонений, входим в позицию, рассчитывая на схождение инструментов, закрываем предыдущую позицию.

2. Когда текущее отклонение ниже нижней линии на графике отклонений, входим в позицию, рассчитывая на схождение инструментов, закрываем предыдущую позицию.

Рис. 2. Пример логики робота.

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

Код робота: 

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мы провели тестирование на 5 парах одновременно, на крипте, из ТОП 10.
И вот такие у нас получились результаты:

Рис. 9. Результаты тестирования. П/У % > 0.3

Конечно же не все пары инструментов коинтегрированы достаточное кол-во времени чтобы на них зарабатывать. Нужно их подбирать. Как и подбирать отклонение с глубиной подсчёта индикаторов. Но оно того стоит. 

Логика робота буквально из нескольких десятков строк кода. Все расчёты зашиты под капот OsEngine. Приятного использования!
 
Ссылка на робота: ссылка

P.S.

Os Engine поддержка терминала: https://t.me/osengine_official_support 

Обсуждаем в телеграмме: https://t.me/o_s_a_chat

Канал проекта: https://t.me/bad_quant

12:28
153

Комментарии

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