Торговая идея:
Брать инструменты, которые отклоняются от широкого рынка без импульса и торговать их на возврат к индексу.
1. Источники робота.
1. Индекс. BotTabIndex для генерации индекса.
2. Скринер. BotTabScreener для того, чтобы брать сразу N инструментов с рынка и торговать одновременно их все.
2. Индикаторы.
1. Корреляция, которая понадобиться нам для динамического отсеивания инструментов.
2. График «Минимальных остатков от разницы между инструментами с оптимальным мультипликатором».
3. Логика робота.
1. Строим широкий индекс, выбирая бумаги по объёму, взвешивая по цене.
2. Каждое обновление индекса проверяем каждый инструмента на корреляцию.
3. Если инструмент проходит, проверяем каждый инструмент на отклонение от индекса по «Минимальным остаткам».
4. Если инструмент отклонился больше, чем на стандартное отклонение, умноженное на мультикпликатор, торгуем на схождение назад.
5. Выход по обратному сигналу / прохождению нулевой отметки на графике «максимальных остатков» / выходу в нейтральную зону.
4. Исходный код в проекте.
Ссылка на ГитХаб: https://github.com/AlexWan/OsEngine
Конструктор:
1. Создание индекса (BotTabIndex) и подписка на событие его обновления. В этом событии логика открытия позиции.
2. Создание скринера (BotTabScreener) и подписка на событие обновления свечи по любому загруженному в него инструменту. В этом событии логика закрытия позиций.
3. Инициализация параметров стратегии.
Куда надо смотреть в коде:
Блоки с логикой открытия и закрытия позиций выделены комментариями.
5. Настройки робота.
1. Regime. Режим работы:
a. On – включены все режимы торгов.
b. Off – выключено.
c. OnlyLong – разрешены только позиции лонг.
d. OnlyShort – разрешены только позиции шорт.
2. Regime Close Position. Тип закрытия позиции:
a. Reverse signal. Обратный тип сигнала по графику минимальных отклонений с оптимальным мультипликатором.
b. No signal. Нейтральное положение графика минимальных отклонений с оптимальным мультипликатором.
3. Max poses count. Максимально разрешённое кол-во одновременно открытых позиций.
4. Percent depo on positions. Процент от доступных средств на одну позицию.
5. Asset in portfolio. Название денежной единицы в портфеле. Если Prime, то будет браться общая единица исчисления, доступная в тестере и некоторых типах подключений к Московской бирже. В остальных случаях нужно выбирать название валюты по тому, как она называется у Вас в портфеле.
6. Slippage. Проскальзывание для заявки в %.
7. Correlation candles look back. За какой период будем считать корреляцию между индексом и бумагой в торгах.
8. Cointegration candles look back. За какой период будем считать график минимальных остатков между бумагой и индексом с оптимальным мультипликатором.
9. Deviation mult. Отклонение для стандартного отклонения на графике минимальных остатков от разницы с оптимальным мультипликатором.
10. Correlation min value. Минимальное значение корреляции для того, чтобы открывать по бумаге позицию.
6. Запуск робота в тестере.
В настройках эмулятора биржи у меня подключен сет из 9 фьючерсов с Бинанс. Естественно, Вы можете подключить куда больше:
Создаём робота. Открываем его чарт и настраиваем источники:
В Индекс добавлены все бумаги из источника:
Также у индекса настроена автоформула:
В скринер подключены все бумаги:
7. Один из вариантов тестирования.
Если что-то не получилось, или остались вопросы, пишите в чат поддержки!
Общаемся здесь: Old School Algo Chat
Комментарии