Второй раз акцентирую на этом понятии внимание. И это неспроста. Значение корреляции между бумагой и индексом способно отфильтровать основную часть ненужных входов в позиции, снижающих прибыльность любой стратегии, ориентированной на торговлю с оглядкой на индекс. В прошлый раз мы говорили про корреляцию в контексте парного арбитража. Ссылка на smart-lab здесь.
1. Что такое корреляция?
Корреляция в трейдинге – числовая мера взаимосвязи между различными активами и индексами. Насколько два актива движутся синхронно.
Числовое значение корреляции бывает от + 1 до – 1, что очень удобно для расчётов и использования данного показателя во время торговли.
1. +1 означает очень высокую синхронизированность активов. Высокую корреляцию. Свечи буквально ходят один за другим без отклонений.
2. -1 означает отрицательную корреляцию. Это значит, что активы ходят в разные стороны.
3. Всё, что между этими значениями нужно как-то в коде будет интерпретировать. Не всегда очевидным образом. Но про это мы тоже поговорим в этой серии статей.
2. Зачем нужно знать коэффициент корреляции при торговле от индекса?
1. Как мы узнали из предыдущей статьи в серии, Индекс – это слитые по определённой формуле свечные данные. На выходе – тоже свечи. Соответственно, мы можем очень легко посчитать корреляцию между индексом и бумагой, которую хотим торговать.
2. Это значимо влияет на итоговую прибыльность роботов для арбитража от индекса.
3. Изменение корреляции в динамике может само по себе давать отличные точки входа.
В слое для создания роботов для парного арбитража можно видеть корреляцию глазами на графике:
Это всё классно, но из-за обилия возможных вариантов использования индекса в торговле под каждую визуальный интерфейс построить не удастся. Поэтому будем пользоваться расчётом корреляции прямо в исходном коде без визуализации.
Объект CorrelationBuilder отвечает за расчёт корреляции между двумя сериями свечек:
CorrelationBuilde предоставляет нам методы для расчёта корреляции:
1. ReloadCorrelation – на вход подаём свечи 1, свечи 2, длину расчёта, получаем массив значений PairIndicatorValue.
2. ReloadCorrelationLast – всё то же самое, только на выходе одно значение по последним свечкам.
На данный момент надо понимать:
1. Корреляция очень важна, когда вы торгуете пару инструментов или пару свечных данных. В том числе и при сравнении индекса с какой-то бумагой нужно знать текущее состояние корреляции между сериями.
2. Штука эта генерирует торговые сигналы сама по себе и может служить фильтром для входа, ибо экстремальные показатели корреляции в моменте могут говорить о том, что не стоит торговать в данный момент.
3. Рассчитывается в две строчки кода при помощи специальных классов внутри OsEngine. Что мы и будем активно применять, делая стратегии с оглядкой на индекс.
Удачных алгоритмов!
OsEngine: https://github.com/AlexWan/OsEngine
Комментарии