Практика парного трейдинга. Часть 1. Регрессия.

  • Автор темы Автор темы FXWizard
  • Дата начала Дата начала

FXWizard

Гуру форума
Практика парного трейдинга. Часть 1. Регрессия.

В прошлых статьях, посвященных парному трейдингу и статистическому арбитражу, я подробно рассматривал этапы подготовки и поиска акций для торговли. В общем виде торговля спредом сводится к выделению стационарного ряда из двух или более коинтегрированных инструментов. Такой подход позволяет трейдеру зарабатывать на краткосрочном дисбалансе в доходности или ценах на похожие активы. На пару аналогичных компаний из одного сектора экономики оказывают воздействие одни и те же внешние факторы. А, значит, и реагировать на такие события цены акций должны примерно одинаково. Поэтому краткосрочный дисбаланс в устоявшемся соотношении цен должен быть компенсирован в сторону долгосрочного паритета. Проще говоря, если без видимой причины одна акция показывает резкий рост относительно второй, то можно ожидать его коррекции или догоняющего роста второй акции. Именно фраза "можно ожидать" отличает статистический парный трейдинг от гарантированного математического арбитража. В таком случае временный дисбаланс, скорее всего, будет ликвидирован, но вовсе не обязательно. Мне пришло несколько похожих писем с просьбой объяснить различия между статистическим и математическим арбитражем, и корреляцией и коинтеграцией, поэтому с них и начну.

Математический арбитраж возможен только между инструментами, которые связаны между собой однозначной математической формулой. Например, цена фьючерса вполне конкретно определяется через три переменные: цену акции, безрисковую ставку и срок жизни контракта. Поэтому краткосрочные изменения в цене базовой акции должны моментально отражаться на цене фьючерса. Именно "должны" и никак иначе. В момент экспирации цены акции и фьючерса должны сойтись в одной точке просто по определению фьючерса. Поэтому любое отклонение цены фьючерса от строгого математического закона обязательно будет компенсировано. Можно провести аналогию с двумя автобусами, которые одновременно выезжают из точки А и должны одновременно приехать в точку Б. Они уже выехали - это факт, должны приехать одновременно - для обоих водителей это закон. И если один автобус в дороге задержится и отстанет, то тогда будут возможны три варианта развития событий:

- отстающий водитель увеличивает скорость и догоняет коллегу;

- опережающий водитель притормаживает и ждет;

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

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

Чтобы объяснить суть статистического арбитража и разницу между корреляцией и коинтеграцией, приведу другую аналогию. Представим себе двух братьев, которые бегут на озеро и держат в руках достаточно длинную и упругую пружину. Один конец которой находится у первого, другой - у второго брата. Они оба бегут в одном направлении - это высокая корреляция. А то, что пружина не даст им заметно удалиться друг от друга - это коинтеграция. Какие бы зигзаги они не совершали, какой бы берег они не выбрали, их динамика движения и расстояние между ними будет определяться исключительно упругостью пружины. В этом случае вектор их перемещения примерно одинаков, но расстояние между ними на протяжении всего пути может заметно разниться. В среднем оно равно как раз длине пружины. И чем сильнее они растягивают или сжимают пружину, тем более вероятно, что она вернется к своему исходному состоянию. В этом случае переменным фактором является степень натяжения и длина пружины. Прибыль делается за счет "продажи слишком растянутой пружины" или "покупки слишком сжатой". Ставка делается на то, что рано или поздно длина пружины вернется в исходное состояние. Но проблема в том, что мы заранее не знаем ни предела натяжения пружины ни ее обычной длины, и растягивается она порой легче, чем можно себе представить. Поэтому трейдер не может сказать, что вот здесь и сейчас "степень натяжения" уже чрезмерна. Можно лишь оценить вероятность возврата к средним значениям на основании статистического анализа исторических данных. И открывая позицию, трейдер не может быть на 100% уверен в прибыли.

Частным случаем статистического арбитража является торговля парой "фьючерс РТС против портфеля фьючерсов на акции", который я рассматривал в прошлый раз. Портфель фьючерсов составлялся таким образом, чтобы его стоимостное выражение равнялось цене индексного контракта. Таким образом, получалась ситуация, когда более "тяжелый" фРТС перекрывался более "легкими" фьючерсами на акции. И часто при подобном выборе торговой пары прибыль образовывалась за счет одной-двух акций, выбившихся из общей динамики. Если в классическом арбитраже или парном трейдинге обе стороны сделки равноправны и их движения равновероятны, то тут иногда проявляется некоторая определенность. То есть можно с большей уверенностью говорить, за счет какой стороны или акции будет компенсирован ценовой дисбаланс. Чтобы это пояснить, приведу третью аналогию. Представим себе человека, который гуляет по парку, ведя на поводках трех собак разного размера. В основном, траекторию движения этой четверки определяет хозяин, а собаки образуют вокруг него броуновское движение. Его масса заметно больше и свое направление он изменит только в том случае, если все три собаки вместе потянут в одну сторону. Если же только одна из них куда-то тянет, то в скором времени ей придется подчиниться и вернуться в общий строй. Так и на бирже, только "весовое" различие между фРТС и остальными контрактами заметно меньше и изменить общее направление арбитражной пары гораздо легче. На таком подходе часто основывается идея одностороннего арбитража, когда «легковесное» краткосрочное отклонение не имеет арбитражного перекрытия по противоположной стороне.

Таким образом, парный трейдинг состоит из двух важных этапов: определение коинтегрированной пары для торговли, и статистический анализ расхождений в динамике, которые могут быть компенсированы обратным движением. В прошлых статьях пары рассчитывались при помощи линейной регрессии цен, а расхождение в динамике спреда определялось отклонением от простой средней линии. Но найденный таким образом ряд на практике для торговли далеко не идеален, потому что не обладает должным уровнем стационарности. В этой статье я расскажу о других способах арбитражного перекрытия и более "умных" алгоритмах анализа полученного спреда.

Используя линейную регрессию для формирования портфеля фьючерсов, трейдер ищет такую комбинацию контрактов на акции, которая на истории максимально полно повторяет цену фьючерса на индекс РТС. По своей сути линейная регрессия - частный случай задачи на оптимизацию, при которой минимизируется сумма квадратов отклонений. То есть каждый день сравнивается цена фРТС и портфеля контрактов и вычисляется расхождение в их стоимости. Затем квадраты этих расхождений суммируются и подбираются такие пропорции в портфеле, чтобы эта сумма была наименьшей. Спредом в таком случае является простая разница в цене обеих сторон арбитражной пары. Спред может плавно меняться в достаточно широких пределах, а резкое отклонение может стать поводом для открытия арбитражной позиции.

Но если обычная регрессия - это лишь оптимизация коэффициентов некоей функции, программно реализованная в большинстве аналитических пакетов, то мы легко можем ее повторить в общем и более удобном виде. Идея перекрытия фРТС портфелем фьючерсов основывается на наличии явных зависимостей в динамике обеих сторон, подтвержденных высокой корреляцией и самой сутью индекса. Поэтому можно взять две пары высоко коррелированных акций и скрестить их. В таком случае можно просто провести оптимизацию коэффициентов первой и второй пары, чтобы минимизировать сумму их отклонений. Эта оптимизация будет расширенным аналогом линейной регрессии, где обе стороны являются функциями от двух независимых переменных. Для примера возьмем восьмерку самых ликвидных фьючерсов на ФОРТС: Газпром, ГМК, Лукойл, Роснефть, Сбербанк, Сургут, Урси и ВТБ. Смотрим полученные графики спредов:

attachment.php

В левой части расположен спред пары Сбербанк+Сургут против Газпром+ВТБ. Хорошо видно, что взаимная высокая корреляция контрактов в составе обеих сторон позволила получить качественный и достаточно стационарный спред. В правой части расположен спред Газпром+Сбербанк против Роснефть+ВТБ. Симбиоз нефтегазовых и финансовых компаний также дал в результате вполне пригодный для торговли спред. Примечательно, что ни для комбинации с использованием ГМК или Урси такие спреды не получить. Для этого пришлось бы добавлять в противоположную пару акции компаний-аналогов, например, Полюс-золото для ГМК и Ростелеком для Урси.

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

Вложения

  • 1th.jpg
    1th.jpg
    34,7 КБ · Просмотры: 819
  • 2th.jpg
    2th.jpg
    48,1 КБ · Просмотры: 821
  • 3.png
    3.png
    3,3 КБ · Просмотры: 794
  • 4.png
    4.png
    10,3 КБ · Просмотры: 802
  • 5th.jpg
    5th.jpg
    27,3 КБ · Просмотры: 806
  • 6th.jpg
    6th.jpg
    33 КБ · Просмотры: 805

FXWizard

Гуру форума
Допустим, трейдер опять хочет перекрыть фРТС портфелем фьючерсов для статистического арбитража. Для этого необходимо построить ряды процентных приращений и подобрать коэффициенты таким образом, чтобы сумма квадратов ошибок была минимальна. Квадраты значений используются, потому что направление ошибки менее важно, чем ее размер. Если фРТС вырос на 1,5% , то портфель может вырасти на 1,4% или 1,6%. Оба эти варианта дадут одинаковую ошибку арбитражного перекрытия и сдвига спреда. Поэтому такой стиль торговли подходит для внутридневных интервалов без переноса позиции через ночь. То есть каждое утро спред считается заново и в конце дня сделка должна быть закрыта в любом случае, не зависимо от прибыли или убытка. Регрессия строится на предположении о минимизации суммы конкретных ошибок без учета их знака, поэтому со временем она вполне может накапливаться в одну сторону. Смотрим полученный график:

attachment.php

Регрессионный анализ показал, что на заданном интервале времени наименьшую ошибку давала пара фРТС против портфеля фьючерсов, состоящего из 24% Сбербанка, 62% Лукойла и почти 6% Газпрома. При этом сама величина арбитражной сделки может быть любой. Но чем она выше, тем более точно могут быть выдержаны требуемые пропорции портфеля контрактов. Хорошо видно, что сумма долей не равна 100%. Это происходит из-за различной собственной волатильности фьючерсов, но именно такой портфель будет наиболее точно повторять предельную доходность фьючерса на индекс РТС. В данном случае регрессия делалась по часовым котировкам. То есть доходности фРТС и портфеля должны максимально "сходиться" каждый час. И если внутри часа доходности сильно разошлись, то это может стать поводом для открытия арбитражной.

На графике синей диаграммой представлена ошибка схождения спреда, построенного по часовым доходностям. Хорошо видно, что иногда она может превышать 1% в любую сторону. Однако, большая часть ошибок лежит в пределах 0,5%. То есть, если в течение 1 любого часа спред нашей пары разошелся более, чем на 0,5% в любую сторону, то это повод для сделки на период до 1 часа. В этом случае вероятность обратного схождения немного выше. Возникает вопрос, почему нельзя держать позицию дольше, если спред не вернулся после отклонения от нормы. Все потому, что регрессионная ошибка не стационарна и может накапливаться. То есть, если за первый час спред разошелся на 1%, то следующий час он вполне может продолжить расхождение в ту же сторону еще на 0,5%. А потом еще и еще.

Розовый график показывает накопленную ошибку. Хорошо видно, что из-за непропорциональных размеров арбитражных сторон (100% и 92%) ошибка имеет тенденцию к росту. Но проблема в том, что из-за фундаментальных факторов она может копиться достаточно долго, даже если уравнять обе стороны в денежном выражении. Как вариант, можно использовать другие алгоритмы оптимизации коэффициентов. Например, уравнивать Беты сторон или максимизировать стационарность спреда. Для оптимизации по Бете необходимо в качестве целевой функции поставить минимальное отклонение Беты полученного портфеля от 1:

attachment.php

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

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

- модуль среднего значения + три стандартных отклонения выборки.

Такой подход обеспечит оптимизацию долей фьючерсов в портфеле:

attachment.php

В верхней части представлена выборка значений накопленной ошибки и расчетные статистики по этому массиву данных. В нижней части - полученный график спреда, с нужным нам уровнем стационарности. Хорошо видно, что спред колеблется в определенном диапазоне, изредка вырываясь за границы горизонтального канала. Именно эти краткосрочные выбросы и можно торговать на возврат к среднему. Но теперь возникает другой вопрос: на сколько определенный на истории диапазон колебаний будет робастен в будущем. То есть, на сколько оптимальны для реальной торговли будут найденные коэффициенты перекрытия?

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

- флет. Цена движется в горизонтальном канале и колеблется вокруг "справедливого" уровня. В этой фазе лучше работают контртрендовые системы.

- тренд. Цена формирует направленные восходящие или нисходящие движения, переходя с одного "справедливого" уровня на другой. Хорошо работают трендследящие системы. Обычно описывается гипотезой неэффективного рынка.

- хаос. Пограничное состояние, когда динамика котировок имеет характер равновероятного броуновского движения.

Более подробно эти фазы я уже рассматривал раньше (в статье «Объем торгов и Открытый Интерес»). Но всем им присуща одна общая черта - инерционность рынка. Необходимо достаточно заметное событие или давление, чтобы рынок перешел из одной фазы в другую. Также начавшийся тренд скорее продолжится, чем развернется. Как раз на этом свойстве инерционности рынка построены многие механические торговые системы. Можно определить пару характеристик, чтобы было понятнее, почему оптимизированные параметры можно использовать для дальнейшей торговли. Уже рассмотренная выше стационарность в более глобальном смысле давала бы возможность очень легкого заработка - единожды определив параметры торговой системы, трейдер мог бы быть уверен в аналогичном поведении рынка в будущем. Но цена, к сожалению, глобальной стационарностью не обладает и различные переборы длин волны или «синусоид» ведут лишь к переподгонке системы под исторические котировки.

Но из-за инерционности цена обладает некоторой памятью. Этот эффект можно назвать квазистационарностью - найденные однажды оптимальные параметры способны оставаться такими еще некоторое ограниченное и непостоянное время. На этом эффекте основывается идея вневыборочного тестирования и периодической переоптимизации параметров механических торговых систем. Так и в торговле спредом: найденные оценки коэффициентов портфеля и доверительного диапазона колебаний лишь квазистационарны и требуют периодического пересмотра и коректировки. По тестам, найденные оценки иногда продолжали удерживать спред в диапазоне на протяжении до 1/4-1/3 оптимизационного периода.

Перед тем, как перейти к рекурсивным алгоритмам, необходимо рассмотреть еще один момент. Рассмотренные выше графики хорошо подходят для ручной торговли, когда трейдер держит в голове возможные уровни. Отклонения спреда от своей "оси вращения" происходят достаточно плавно и инерционно, зашумляясь высокочастотными хаотичными колебаниями. Поэтому спредовые отклонения и обратную сходимость можно разделить на глобальные и локальные (краткосрочные). То есть, начав расширяться, спред чертит фрактальную восходящую траекторию. Можно достаточно долго ждать, пока он выйдет из доверительного диапазона, а можно торговать эти самые высокочастотные краткосрочные колебания. Которые иногда бывают очень даже "вкусными". Именно краткосрочные расхождения высоко коррелированной пары, обусловленные эмоциями или неэффективностью трейдеров, имеют наибольшие шансы быть компенсированными в обратную сторону. Более долгосрочные отклонения вполне могут быть вызваны пока еще неизвестными фундаментальными причинами и не иметь "справедливых" предпосылок для возврата к своим средним значениям. Поэтому, на мой взгляд, более отвечает идее арбитража стиль краткосрочной торговли против резких всплесков, чем позиционный парный трейдинг по уровням. В таком виде торговля спредом аналогична принципу электромагнитной индукции в замкнутом контуре: чем сильнее и резче произошло отклонение потока от нормы, тем вероятнее противодействие в обратном направлении. Высокочастотный трейдинг сильнее зависит от ликвидности активов, но легче формализуем и механически реализуем. Далее я буду рассматривать алгоритмы адаптации из соображений краткосрочности торговых систем.

Рассмотренные выше методы относятся к задаче формирования торговых пар и арбитражного перекрытия. Но мало найти пару и получить синтетический спред, нужно еще научиться определять резкие выбросы колебаний и моменты для открытия арбитражных позиций. Это легко сделать, глядя на готовую картинку, построенную по историческим котировкам. Но в реальности спред не только колеблется в горизонтальном диапазоне, но иногда и прорывает граничные уровни, образовывая сильные и убыточные тренды. Обычно это происходит, когда вследствие какой-нибудь новости меняется "справедливая" оценка только одной из сторон торгуемой пары. Тогда спред просто переходит на новый уровень, где и продолжает колебательные движения. Поэтому основной задачей трейдера-арбитражера становится отделение резких выбросов от затянувшихся трендов. Как нельзя лучше для этого подходят алгоритмы рекурсивной и адаптивной фильтрации.

Чтобы понять, что такое рекурсивная адаптация, нужно сначала найти идеальную траекторию спреда. В нашей интерпретации идеальной будет такая траектория, отклонения от которой образуют рассмотренный выше стационарный ряд. То есть, глядя на него, мы всегда сможем сказать, что спред разошелся чересчур далеко. В эконометрике для этого часто используется фильтр Ходрика-Прескотта, позволяющий выделять гладкие тренды из зашумленных данных. В общем виде он использует алгоритм, схожий с фильтром Калмана, популярным в радиотехнике и радиолокации. Но для законченных рядов ХП-фильтр гораздо эффективнее, потому что он адаптируется к шуму, заглядывая вперед. Из-за этого он не пригоден в реальной торговле, но позволит определить эталонную "ось вращения" для анализа колебаний. Имея всего один переменный параметр, этот фильтр может отсекать шум различной величины. Поэтому посмотрим на график спреда с фильтрами различной степени гладкости:

attachment.php

Темно-синим цветом представлена динамика спреда. Розовым цветом - краткосрочный фильтр с высокой чувствительностью, оранжевым цветом - фильтр с низкой чувствительностью к шуму. Хорошо видно, что в зависимости от уровня чувствительности фильтр "прилипает" к спреду по-разному, отсекая шумовые колебания различной величины. Отдельно нужно обратить внимание, что иногда линия фильтра разворачивается раньше самого спреда, поскольку использует данные из будущего для выделения эталонной траектории. Для сравнения голубым цветом изображена обычная скользящая средняя линия, которая часто используется для статистического анализа колебаний спреда. Хорошо видно, что в периоды флета она проходит рядом с эталоном, но заметно отстает в периоды восходящих или нисходящих спредов. Эти направленные движения и нужно учитывать для определения "оси вращения" спреда для торговли парами в реальном времени. Адаптация скользящей средней к последним полученным данным и есть рекурсия. Определив господствующую в данный момент тенденцию, можно смещать значение средней линии, корректируя ее оценки вдоль тренда.

Для начала проверим качество эталонной "оси вращения" и распределения отклонений спреда от идеальной траектории. Смотрим график:

attachment.php

Как и ожидалось, отклонения дают нужный нам уровень стационарности с постоянным математическим ожиданием и переменной дисперсией. Распределение полностью напоминает рыночное с длинными хвостами, значит, периодически спред может отклоняться на очень большую величину. С именно этим фильтром и будем сравнивать различные алгоритмы рекурсивной адаптации для статистического арбитража. Более подробно методику тестирования и сравнения алгоритмов я опишу ниже.

Автор статьи: Тарас Правдюк, специально для Русского Трейдера.
(с) _www.russian-trader.ru
 
Верх