uralpro
uralpro личный блог
26 марта 2015, 11:26

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

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

1. Вероятность взятия ордера на стороне, противоположной движению цены в большинстве случаев выше, чем на стороне по направлению движения. То есть, если цена актива растет, то чаще будут исполняться ордера, выставленные на продажу, а ордера на покупку, соответственно — реже, в результате возникает убыточная позиция. В англоязычной литературе этот эффект называется adverse selection и возникает он в результате присутствия на рынке так называемых информированных трейдеров.

2. При существовании открытой позиции возникает риск движения цены в противоположную этой позиции сторону. Например при росте цены сработал ордер на покупку (будем считать, что эффект, описанный в п.1 не подействовал) и возникла открытая длинная позиция на 1 контракт. Далее рост цены сменился падением, и, если ордер на продажу не сработал вовремя, указанная открытая позиция начинает съедать прибыль (если она была получена при росте), а если движение вниз продолжится, то возникает убыток. Это так называемый inventory risk.

  Соответственно, управление ордерами должно происходить по некоему алгоритму, который позволит избежать adverse selection risk и inventory risk. Основы  алгоритма, который позволит оптимально управлять inventory risk, рассмотрены в работе Marco Avellaneda & Sasha Stoikov "High-frequency trading in a limit order book".

  Цель данной статьи состоит в нахождении так называемой нейтральной средней цены (indifference price), которая будет зависеть от величины открытой позиции маркет мейкера. Например, возьмем среднюю цену стакана, вычисляемую, как Pmid=(Pbestask+Pbestbid)/2, где Pbestask — лучшая цена продажи в стакане, соответственно Pbestbid — лучшая цена покупки. Если в начале торговли позиция маркет мейкера равна нулю, он располагает ордера на покупку и продажу — по ценам Pb и Pa соответственно- на одинаковом расстоянии от Pmid. Когда один из ордеров взят, возникает открытая позиция, например длинная (исполнился ордер на покупку). Далее маркет мейкер, чтобы уменьшить возникший inventory risk должен расположить следующий ордер на покупку на большем рассстоянии от Pmid, а ордер на продажу — на меньшем расстоянии, чем это было при нулевой позиции. В случае короткой позиции все происходит с точностью до наоборот. Этот эффект можно интерпретировать как изменение средней цены в зависимости от величины открытой позиции, такая цена называется нейтральной Pi (indifference). Расстояние выставляемых ордеров от Pi всегда одинаково, независимо от удерживаемой позиции. На графике в заглавии изображены средняя цена, нейтральная цена и цены Pa и Pb

  Авторы статьи находят формулу для цены Pi, (при условии, что цена следует модели броуновского геометрического движения) :

 Pi(s, q, t) = s - q \gamma \sigma^2(T - t), где

s — цена актива,

q — величина открытой позиции,

γ- постоянный коэффициент (мера риска),

σ - среднеквадратичное отклонение цены актива,

T — период торговли,

t — текущее время (в долях T) .

Далее необходимо найти оптимальные дистанции ордеров на покупку и продажу от средней цены — δb и δa соответственно. Эти величины будут зависеть от такого параметра рынка, как интенсивность исполнения ордеров λ(δ), где δ- дистанция от средней цены. Если предположить, что интенсивность имеет вид экспоненциальной зависимости ( что подтверждается экспериментальными данными) λ(δ)=Aexp(−k∗δ), то формула для спреда между ордерами маркетмейкера, центрированного относительно нейтральной цены Pi будет выглядеть следующим образом:

\delta_b+\delta_a=\frac{2}{\gamma}ln\left(1+\frac{\gamma}{k}\right)

где γ- постоянный коэффициент (мера риска), который подбирается при тестировании алгоритма.

Ниже представлены графики плотности распределения прибыли и убытков для трех стратегий: inventory strategy — стратегия с применением нейтральной цены и спреда между ордерами, согласно приведенным выше формулам, bestbid\bestask strategy — когда ордера выставляются в стакан на лучший бид и лучший аск, и symmetric strategy  — здесь спред между ордерами вычисляется по последней приведенной формуле, однако центрирован он относительно средней цены Pmid, вместо Pi (adverse selection risk, ни в одной стратегии, конечно, не учитывается):

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

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

28 Комментариев
  • скажите, сколько человек купило код уралпро2010? Спасибо.
  • 2153sved
    26 марта 2015, 11:29
    алгоритмы — ладно, где они деньги на это всё берут?
  • NoName
    26 марта 2015, 11:31
    Лет 10 назад это было актуально)
    • anatolyutkin
      26 марта 2015, 11:33
      Эдуард Григорян, А сейчас что изменилось?
      • Евгений
        26 марта 2015, 12:07
        anatolyutkin, изменилось то, что подобная информация теперь доступна массам. Со всеми вытекающими.
        • anatolyutkin
          26 марта 2015, 12:17
          Евгений, 1) По моему, изложены очевидные вещи, которые понятны любому, кто ставил лимитные ордера и думал о маркетмейкинге. Некоторые детали, конечно, не очевидны--но это детали.
          2) Если даже предположить, что массы были не в курсе. Что вытекает из того, что информация теперь доступна массам?
          • Евгений
            26 марта 2015, 13:20
            anatolyutkin, изложены примитивнейшие вещи по нынешнему времени. Об этом и говорится про 10 лет.
              • Евгений
                26 марта 2015, 13:24
                uralpro, дело не в сложности. Дело в неактуальности. Вот если бы эти статьи 10 лет назад, а еще лучше 15, тогда да. А сейчас только ленивый книгу не писал про ММ.
                  • r0man
                    26 марта 2015, 13:51
                    uralpro, спасибо за статью. Упрощения вполне уместны для усвоения идеи и подготовики к следующим частям. А практическая реализации всегда расходится с теорией. Например, при расчете средней цены стакана лучше учитывать количество продавцов/покупателей:
                    midPrice=(bidSize*askPrice + askSize*bidPrice)/(bidSize+askSize)
                    Но в терминах статьи, тогда пришлось бы моделировать процессы количества лотов по обеим сторонам стакана.
                  • Евгений
                    27 марта 2015, 00:34
                    uralpro, я про это и пишу вам. ЧТо актуально это все было лет 10-15 назад. Сейчас только ленивый это все не знает и не использует.
  • П М
    26 марта 2015, 12:25
    спасибо огромное. только подумал утром, где-бы про алгоритм маркет-мейкера почитать. а тут вот оно уже. здесь.
    наверное это тоже какой-то эффект с английским названием.
    добавляю в избранное.
  • Hannes
    26 марта 2015, 12:49
    Предположение о броуновском движении не совсем согласуется с реальными данными.
    Интересно, насколько не согласуется?
    Какое различие, искажение в цифрах?
    Есть ли такие данные?
    Я так понимаю, реальные данные должны подтверждать больший процент профита над лосом?
      • Hannes
        26 марта 2015, 16:34
        uralpro, в цифрах нет данных?
  • moonwalker
    26 марта 2015, 12:55
    тоже мне маркетмейкер, чуть какой нибудь сдвиг пртоив позиции алгоритма, так сразу покрытие по маркету, не зря говорят, что хфт только дестабилизируют рынок
  • DM88
    26 марта 2015, 13:23
    отличная статья! жду продолжения!
  • Владимир
    26 марта 2015, 15:13
    Вот все гребут денюжку и не могу понять как и от куда!!!!
    Я вто на этом сайте iq-option.com.ua больше 100$ в день не могу поднять!
    Может стратегии не те?????
  • The0bald
    02 апреля 2015, 21:26
    Не очень понятно со временем в первой формуле, можно поподробнее?
  • The0bald
    02 апреля 2015, 22:44
    период торговли — это таймфрейм, макс время удержания позиции?
    текущее время (в долях T) — текущее время удержания позиции?
      • The0bald
        03 апреля 2015, 11:19
        uralpro, Что обычно за Т берут? Продолжительность торговой сессии?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн