<HELP> for explanation

Блог им. uralpro

Алгоритмы маркетмейкера. Часть 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 нуждаются в уточнении. Об этом мы поговорим в следующей части статьи про алгоритмы маркет мейкера, которую вы можете посмотреть на моем сайте в профиле, или через некоторое время на смарт-лабе.

 

скажите, сколько человек купило код уралпро2010? Спасибо.
Профессор Преображенский, вы еще можете успеть:)
uralpro, так и думал
алгоритмы — ладно, где они деньги на это всё берут?
avatar

2153sved

Лет 10 назад это было актуально)
avatar

NoName

Эдуард Григорян, А сейчас что изменилось?
anatolyutkin, изменилось то, что подобная информация теперь доступна массам. Со всеми вытекающими.
Евгений, 1) По моему, изложены очевидные вещи, которые понятны любому, кто ставил лимитные ордера и думал о маркетмейкинге. Некоторые детали, конечно, не очевидны--но это детали.
2) Если даже предположить, что массы были не в курсе. Что вытекает из того, что информация теперь доступна массам?
anatolyutkin, изложены примитивнейшие вещи по нынешнему времени. Об этом и говорится про 10 лет.
Евгений, в следующих статьях будут вещи посложнее
uralpro, дело не в сложности. Дело в неактуальности. Вот если бы эти статьи 10 лет назад, а еще лучше 15, тогда да. А сейчас только ленивый книгу не писал про ММ.
Евгений, не согласен, такие алгоритмы применяются и сейчас. Другое дело, что изложение в 1 части достаточно упрощенное. В следующих частях уже ближе к практике
uralpro, спасибо за статью. Упрощения вполне уместны для усвоения идеи и подготовики к следующим частям. А практическая реализации всегда расходится с теорией. Например, при расчете средней цены стакана лучше учитывать количество продавцов/покупателей:
midPrice=(bidSize*askPrice + askSize*bidPrice)/(bidSize+askSize)
Но в терминах статьи, тогда пришлось бы моделировать процессы количества лотов по обеим сторонам стакана.
avatar

r0man

uralpro, я про это и пишу вам. ЧТо актуально это все было лет 10-15 назад. Сейчас только ленивый это все не знает и не использует.
Эдуард Григорян, ничего не изменилось, скорости возросли
спасибо огромное. только подумал утром, где-бы про алгоритм маркет-мейкера почитать. а тут вот оно уже. здесь.
наверное это тоже какой-то эффект с английским названием.
добавляю в избранное.
avatar

ПBМ

Предположение о броуновском движении не совсем согласуется с реальными данными.
Интересно, насколько не согласуется?
Какое различие, искажение в цифрах?
Есть ли такие данные?
Я так понимаю, реальные данные должны подтверждать больший процент профита над лосом?
avatar

Hannes

Hannes, существование трендов уже опровергает теорию о броуновском движении
uralpro, в цифрах нет данных?
тоже мне маркетмейкер, чуть какой нибудь сдвиг пртоив позиции алгоритма, так сразу покрытие по маркету, не зря говорят, что хфт только дестабилизируют рынок
avatar

moonwalker

отличная статья! жду продолжения!
avatar

DM88

Вот все гребут денюжку и не могу понять как и от куда!!!!
Я вто на этом сайте iq-option.com.ua больше 100$ в день не могу поднять!
Может стратегии не те?????
Не очень понятно со временем в первой формуле, можно поподробнее?
avatar

The0bald

The0bald, а что именно не понятно?
период торговли — это таймфрейм, макс время удержания позиции?
текущее время (в долях T) — текущее время удержания позиции?
avatar

The0bald

The0bald, период торговли — период, в течение которого действует алгоритм, по его окончании все открытые позиции ликвидируются, Т — момент ликвидации позиций, а текущее время — это момент, в который производится расчет для цены, например, если период торговли 600 сек, а после запуска алгоритма прошло 6 сек, принимая T=1, t будет равно 0,01
uralpro, Что обычно за Т берут? Продолжительность торговой сессии?

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Залогиниться

Зарегистрироваться
....все тэги
Регистрация
UP