ГлавнаяАлгоритмы › Алготорговля коинтегрированными активами. Часть 1

Алготорговля коинтегрированными активами. Часть 1

cointegr_1

Итак, по результатам голосования в лидерах оказалась публикация Alvaro Cartea и Sebastian Jaimungal "Algorithmic Trading of Co-integrated Assets". Я тоже считаю эту работу очень интересной, так как она фактически расширяет понятие парного трейдинга до торговли произвольным количеством активов, с учетом их коинтеграционного взаимоотношения. Это сильно повышает устойчивость результирующего портфеля, в отличие от парного трейдинга, в связи с его диверсификацией.

Представляю здесь перевод этой статьи, которую я несколько сократил, убрав длинные математические выкладки и оставив только наиболее важные и окончательные формулировки. Думаю, это значительно облегчит понимание, без утраты основного смысла публикации.

Вступление

Успех многих торговых алгоритмов зависит от качества предсказаний движения цены актива. Предсказания цены отдельной акции в общем случае менее точно, чем предсказание значения портфеля активов. Классической стратегией, которая использует совместное поведение двух активов, является парный трейдинг, где портфель состоит из  линейной комбинации этих активов. Для примера, это могут быть две акции, чей спред, представляющий собой разницу их цен, демонстрирует особый паттерн, отклонения от которого носят временный характер. Алгоритм парного трейдинга получает прибыль от ставки на тот факт, что отклонения спреда возвратятся к их историческому или предсказуемому уровню.

В данной работе мы создадим оптимальную стратегию, в которой агент открывает позиции в n коинтегрированных активах. Цель стратегии - получение прибыли от структурной зависимости в динамике их цен . Мы предполагаем, что активы коинтегрированы и создадим алгоритмическую торговую стратегию, где инвестор максимизирует ожидаемую функцию владения ( то есть вложенные и наличные средства). Мы выведем отдельную закрытую формулу для оптимальной (динамической) инвестиционной стратегии и покажем, что она учитывает коинтеграционный фактор. Далее, мы используем данные торгов с биржи Nasdaq для калибровки модели и проведем симуляцию, чтобы продемонстрировать, насколько стратегия производительна, в случае, когда инвестор открывает позиции в трех активах : Google, Facebook и Amazon.

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

Коинтегрированные логарифмы цен с краткосрочной альфа

Предположим, что дрифт в приращениях цен активов состоит из особого и общего компонентов. Особый компонент есть результат факторов, влияющих только на каждый отдельный актив, и общий компонент - результат индустриального или секторального набора факторов, которые влияют на всю коллекцию используемых активов. Таким образом, у нас есть коллекция активов, чей вектор цен обозначим \mathbf{Y}=(Y_t^1,...,Y_t^n)_{0\leq t\leq T}, который удовлетворяет системе дифференциальных уравнений:

\begin{equation}\frac{dY_t^k}{Y_t^k}=(\nu_k+\delta_k\alpha_t)dt+\sum_{i=1}^n\sigma_{ki}dW_t^i\end{equation}

где особый компонент \nu_k является константой, и общий компонент :

\alpha_t=\sum_{i=1}^n a_i log Y_t^i,

где a_i - константы, и \delta_k - специальная константа , которая показывает, как общий компонент влияет на каждый актив.

W_t^i - стандартные Броуновские движения, независящие друг от друга, собранные в вектор \mathbf{W}=(W_t^1,...,W_t^n)_{0\leq t\leq T}, и \sigma_{ki} - неотрицательные константы. Мгновенную ковариацию между активами i и j можно определить как:

\Omega_{ij}=\sum_{k=1}^n\sigma_{ik}\sigma_{kj}.

Далее,  обозначим \mathbf{\sigma} матрицу, чьими элементами являются \sigma_{ij}, представляющую собой разложение Холецкого мгновенной дисперсионно-ковариационной матрицы \mathbf{\Omega}, таким образом \mathbf{\Omega}=\mathbf{\sigma\sigma'}, где ' обозначает оператор транспонирования. Предположим, что нет дополнительных степеней свободы, так что \mathbf{\sigma} является обратимой.

Покажем, что \alpha_t ведет себя как фактор коинтеграции. Когда \alpha_t=0 все активы являются геометрическими броуновскими движениями с дрифтом \nu_k. В общем случае, на рынках акций, \alpha_t будет ненулевой и отклонения от ее долгосрочного или предсказуемого уровня  быстро нивелируются. Такое поведение этого компонента мы назовем краткосрочной альфа, и она представляет собой отклонения от ожидаемого приращения активов.

Докажем, что \alpha_t является коинтеграционным фактором, продемонстрировав, что это, несомненно, процесс возврата к среднему. Во-первых отметим, что логарифмы цен удовлетворяют дифференциальному уравнению:

dlog Y_t^k=(\nu_k+\delta_k\alpha_t-\frac{1}{2}\Omega_{kk})dt+\sum_{i=1}^n\sigma_{ki}dW_t^i,

которое мы используем для вычисления дифференциала \alpha_t:

\begin{equation}d\alpha_t=\sum_{k=1}^n a_k(\nu_k+\delta_k\alpha_t-\frac{1}{2}\Omega_{kk})dt+\sum_{k=1}^n a_k\sum_{i=1}^n\sigma_{ki}dW_t^i\end{equation}

Таким образом, мы можем записать компонент краткосрочной альфы как процесс возврата к среднему:

d\alpha_t=k(\theta-\alpha_t)dt+\mathbf{a'}\mathbf{\sigma} dW_t, где

\mathbf{a}=(a_1,...,a_n)

k=-\sum_{k=1}^n a_k\delta_k=-\mathbf{\delta}' \mathbf{a},

\theta=\frac{1}{2}\frac{Tr(\mathbf{A\Omega})}{\mathbf{\delta}' \mathbf{a}}-\frac{\mathbf{\nu}' \mathbf{a}}{\mathbf{\delta}' \mathbf{a}}.

Здесь, оператор Tr() обозначает след матрицы, и А=diag(a) - диагональная матрица, чья диагональ состоит из а. Для уверенности, что модель действительно описывает процесс возврата к среднему, мы предположим, что \mathbf{\delta}' \mathbf{a}<0 - и это мы увидим в результатах калибровки модели на реальных данных с биржи Nasdaq.

Рассматривая динамику (2), мы можем видеть, что \alpha возвращается к среднему с частотой, которая зависит от различной степени воздействия, какую \alpha оказывает на каждый актив (через \mathbf{\delta}), а также от силы вклада логарифма цены актива в саму \alpha (через а). Уровень возврата к среднему \theta зависит от отношения волатильности к воздействию каждого компонента на общий дрифт активов  и на дрифт каждого актива.

Альтернативное представление модели можно вывести, поместив выражение для \alpha_t непосредственно в дифференциальное уравнение для log Y_t. В этом случае, мы получаем:

d log Y_t^k=(\nu_k-\frac{1}{2}\Omega_{kk}+\delta_{k}\sum_{i=1}^n a_i log Y_t^i)dt+\sum_{i=1}^n\sigma_{ki}dW_t^i,

и если мы обозначим \mathbf{Z}_t=log\mathbf{Y_k}, где логарифм применен к каждому компоненту, то

d\mathbf{Z}_t=(\mathbf{c}-\mathbf{BZ_t})dt+\mathbf{\sigma}d\mathbf{W}_t,

где B_{ij}=-\delta_i a_j, c_{ii}=\nu_i-\frac{1}{2}\Omega_{ii}.

В этом представлении мы видим, что логарифм цены представляет собой векторно-авторегрессивную модель 1 порядка (VAR(1)).  Отметим здесь, что B - вырожденная матрица. которая имеет одно положительное собственное значение, соответственно единственному фактору коинтеграции, который мы заложили в модель.

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

16 Комментарии[ Ваш комментарий ]

  1. Роман

    Настолько же наукообразно как и бесполезно. Ранее (в видео) было еще более наукообразно показано, что при количестве активов >2, описание их корреляции через парную корреляцию является приближенной и в общем случае надо учитывать корреляции (ковариации) болше чем пары.

    Короче: что дает эта модель для практической реализации? Разве не есть самое точное, что можем получить - это тупо взять и промоделировать на истории? А если нужны статистические оценки будущего, то можно и забутстрапить (хотя к адекватности этой процедуры тоже есть вопросы).

    • Здесь как раз и учитывается коинтеграция множества активов. И сделано довольно изящно и просто, далее это будет показано. Используется авторегрессивная модель VAR, то есть простая регрессия - вы ее в любом случае должны использовать для определения коэффициентов. А затем по вычисленным значениям рассчитывается функция оптимальной доли каждого актива по одной формуле. Что может быть проще? По-моему это и называется - тупо взять и промоделировать на истории ( разве что потом применить оптимальную функцию).

      • Роман

        Модель учитывает только парную ковариацию, а этого мало, если n>2

        Главное, зачем она нужна для практики? Разве не проще подобрать несколько  (>2) инструментов из имеющихся моделируя на истории м сделать выводы о будущей статистике просто глядя на историческую эквити?

        И еще, чем больше инструментов, тем хуже соотношение возможной прибыли к комиссии.

        • Модель учитывает совместную коинтеграцию активов, иначе зачем было городить огород с матрицами?

          • Роман

            Матрица она двумерная, годится для случай n=2. При n=3 для полноценной модели ковариаций требуется куб и т.д. Но по большиму счету это все бесполезно на практике.

             

  2. Роман

    Матрица она двумерная, годится для случай n=2. При n=3 для полноценной модели ковариаций требуется куб и т.д. Но по большиму счету это все бесполезно на практике.

     

  3. День добрый. Спасибо за потраченное время на перевод и обработку статьи.

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

    Ознакомившись бегло с оригиналом в т.ч., не уловил предварительные условия или критерии отбора инструментов -кандадитов на включение в расчет. 

    Не совсем понятны критерии отбора кандидатов: каков предварительный тест на зависимость?

    Или предполагается, что в форме прогона заодно и станет ясна применимость модели, о которой говорит Роман, то есть ставим инструмент, и если есть зависимость, то модель выплывет?

    Ну тогда, сильно извиняюсь, есть варианты попроще для восприятия, а, может быть и понадежнее,  а также с просто реализуемыми онлайн-алгоритмами - время обновления модели можно вписать в микросекунды. Хотя, конечно, и с этой моделью можно повозиться.

    Как известно, ключевая задача - это обнаружение признаков-кандидатов на построение модели зависимости, а уже далее можно делать и последующие настройки.

    Не могли бы вы уточнить, каким образом делается поиск признаков, и в чем на ваш взгляд, особенность достижения трудящихся Alvaro Cartea и Sebastian Jaimungal?

     

     

     

     

    • Об отборе кандидатов в статье не упоминается. Предполагается, что кандидаты уже известны. Для отбора можно использовать стандартные техники - например, тесты на коинтеграцию и стационарность спреда, описанные во множестве статей и книг, например Vidyamurthy - Pairs Trading. Данная статья совсем не об этом, а о том, как выделить коинтеграционный компонет в случае использования нескольких активов. И я совсем не считаю, что ключевой задачей является отбор кандидатов. В любой, самой коинтегрированной паре спред когда-нибудь разойдется. Поэтому самое главное - техника торговли, позволяющая динамически контролировать позиции. А в этой статье именно это и описано - можно динамически вычислять ошибки регрессии на любом количестве активов и в реальном масштабе времени определять доли вложения в каждый актив.

      • Предлагаю немного улыбнуться.

        Вопрос к классикам покера: Нужна ли математика в покере?

        Склански (Профессор, чемпион мира и т.д., а также автор трудов по теории игры и Покеру в частности, по объему приближающихся к творениям Д.Кнута "Искусство программирования для ЭВМ") - желательна. 

        Какова доля математики (по сути оптимальный размер ставки согласно обстоятельствам - местоположение в турнире, стадия, позиция и т.д....) - около 15%, т.к. основным является навык чтения оппонента и умение получить оплату.

        ---

        Однозначно выбор признаков (факторов) в широком смысле является самой сложной задачей.

        ---

        Спасибо за ответ.

         

  4. Спасибо за перевод!
    Пара опечаток: в левой части уравнения для Z(t) пропущен дифференциал; в определении элементов матрицы B потерян знак.

  5. Максим

    Подскажите что изучить на русском языке что бы понять эту статью, почитал в интернете про корреляцию, коинтеграцию, но понимания сильно не прибавилось. Нашел на сайте Булашева это оно? Посоветуйте с чего начать чтоб не отвернула

    • На русском языке очень мало написано по этим темам, все в основном англоязычное. Книга Булашева - очень полезная, но там даны только основы. Постараюсь на этом сайте еще написать статьи про коинтеграцию
       

Сообщение

Обратите внимание: вы можете использоватьHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>