Линейная регрессия часто используется для вычисления пропорции хеджирования в парном трейдинге. В идеальной ситуации коэффициенты этой регрессии — наклон линии регрессии и свободный член (пересечение) остаются всегда постоянными. Однако в реальности все, конечно, не так радужно, и значения этих параметров постоянно меняются во времени. Как правильно вычислять коэффициенты регрессии, чтобы избежать подгонки к текущей ситуации, рассматривается в статье "Online Linear Regression using a Kalman Filter". Для этой цели в данной публикации используется фильтр Калмана.
Для тестирования берутся исторические цены закрытия двух биржевых фондов ETF — австралийского EWA и канадского EWC с 2010 по 2014 год. Динамика цен этих фондов показывает взаимосвязь, что продемонстрировано на диаграмме рассеивания в заглавии поста. Однако по этому же графику видно, что эту взаимосвязь невозможно описать с помощью линейной регрессии с постоянными коэффициентами.
Интересный подход к предсказанию направления рынка рассмотрен в статье "Using CART for Stock Market Forecasting". Для того, чтобы предугадать движение цены на недельном отрезке используется техника под названием CART (Classification And Regression Trees) — построение классификационного графа (дерева) с целью предсказать значение целевой характеристики (цены) на основании набора объясняющих переменных. CART находит применение во многих областях науки и техники, но применим и в торговле, так как обладает набором свойств, хорошо подходящими для этой цели:
Для построения дерева автор использует библиотеку языка R, вычисляющую рекурсивное разделение (Recursive Partitioning) rpart.
Трейдеры, которые приобрели мою программу robot_uralpro (см. пост на смарт-лабе), спрашивают, можно ли доработать алгоритм для применения его на современном рынке? Напомню, стратегия робота основана на взаимоотношении цен синтетического индекса, составляемого динамически из рыночных цен акций, входящих в индекс РТС, и фьючерса RI. Идея «одноногого» статистического арбитража, реализованного в роботе, будет работать и сейчас, только в том случае, если научиться правильно определять, какой актив опережает другой в смысле динамики их цен. Эта статья посвящена правильному выявлению такого взаимодействия, которое в англоязычных источниках называется «lead-lag relationship» -опережение-отставание между разными активами.
Те алготрейдеры, кто не приобретал robot_uralpro, тоже сочтут эту статью полезной, так как lead-lag relationship может использоваться в стратегиях парного трейдинга и им подобным. Например, определив такое взаимодействие, можно исключить из парного трейдинга один из активов ( с учетом того, конечно, что отношение торгуемых инструментов было описано четкой моделью) и значительно увеличить тем самым прибыльность стратегии.
Небольшое исследование стратегии «Гэп на открытии рынка» в блоге Pawel Lachowicz. Автор случайным образом выбрал 10 акций из состава индекса Доу-Джонса, и провел бэктестирование вышеуказанной стратегии. Основные параметры алгоритма:
вход в позицию: если цена открытия актива в день t выше цены закрытия актива в день t-1, и если минимальная цена актива в день t выше максимальной цены актива в день t-1, акция покупается на следующий день, причем цена покупки устанавливается равной цене закрытия дня t;
выход из позиции происходит просто по временному критерию — акция удерживается после входа от 1 до 21 дня, количество дней — это параметр оптимизации для бэктеста.
Сначала бэктест прогоняется на каждом активе отдельно на выборке длительностью 1 год. Пример для акции AXP — сколько в течение этого времени обнаружено условий для входа в позицию (обозначены кружками):
Продолжаем разбирать численное решение уравнения Хамильтона-Якоби-Беллмана. В прошлой части мы составили выражение для оператора , в котором есть слагаемые, получить значение которых можно из реальных данных. Во-первых, что из себя представляют дифференциальные матрицы D1,D2. Это матрицы размерностью , где, для D1(согласно определению в части 4) в ячейках [j,j] стоят -1, если fj<0 и 1 в остальных случаях, в ячейках [j,j+1] стоят 1, если fj<0 и 0 в остальных случаях, и в ячейках [j,j-1] стоят -1, если fj≥0 и 0 — в остальных случаях. Как составить матрицу D2, я думаю, вы догадаетесь сами, взглянув на ее определение в
Продолжаем разбирать работу JIANGMIN XU «Optimal Strategies of High Frequency Traders». Чтобы составить уравнение оптимального контроля, сначала сформулируем проблему оптимизации алгоритма при используемых стратегиях θ, как достижение максимума следующего матожидания:
,
В прошлой части мы рассмотрели оптимальное управление inventory risk в маркетмейкерском алгоритме. Напомню, что формулы для нейтральной цены и оптимального спреда между лимитными ордерами были получены при допущении, что цена следует геометрическому броуновскому движению. Управление inventory risk для моделей цены, более приближенными к реальности, рассматривается, например, в статье Pietro Fodra & Mauricio Labadie «High-frequency market-making with inventory constraints and directional bets» . Однако, применить напрямую на практике алгоритмы из этих статей вряд ли получится, так как в них не учитывается действие adverse selection risk. Поэтому в данной части рассмотрим работу JIANGMIN XU «Optimal Strategies of High Frequency Traders», в которой автор делает попытку учесть этот вид риска, конечно, наряду с inventory risk.
1. Вероятность взятия ордера на стороне, противоположной движению цены в большинстве случаев выше, чем на стороне по направлению движения. То есть, если цена актива растет, то чаще будут исполняться ордера, выставленные на продажу, а ордера на покупку, соответственно — реже, в результате возникает убыточная позиция. В англоязычной литературе этот эффект называется