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

MarketMaker

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


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, ни в одной стратегии, конечно, не учитывается): 


P&F


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







13 комментариев

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

avatar
Я не математик но мне интересно какова размерность этого алгоритма то есть он влияет короткий промежуток времени или его влияния долгосрочно и формирует день
avatar
Ну параметры конечно меняются в течение дня, их надо измерять, а сам принцип и формула неизменны. И все опять же зависит, с какой частотой вы торгуете — для хфт алгоритмов парметры надо замерять чаще и на коротких промежутках, для более медленных — гораздо реже
avatar
какова методология замеров? как вы установите в какую сторону сушествует дисбаланс
avatar
ну вы замеряете параметры, которые фигурируют в формулах. Например величина открытой позиции q — это, понятно, ваша рыночная позиция в контрактах, sigma — среднеквадратичное отклонение цены, можно замерять скользящим окном необходимого размера по общеизвестной формуле и т.д. Вычисляете все это в режиме реального времени и подставляете в формулу для нейтральной цены Pi и для спреда между ордерами, и получаете цены, на которые нужно поставить ордера по биду и аску. Единственное что нужно задать эмпирически — мера риска gamma — эту величину нужно подбирать на бэктесте
avatar
мне нужно засунуть в рынок реальные контракты тобишь деньги чтоб промереть эти параметры?
avatar
да зачем, на тесте же можно все сделать
avatar
Последний раз редактировалось
avatar
спасибо за ответы
avatar
пожалуйста
avatar
Вы хотите переиграть роботов Secret? Думаю этот путь интересен, но скорее не принесёт денег на достаточно продолжительность промежутке времени, ибо ликвидности на всех не хватит.  
avatar
А зачем его переигрывать? У него нет монополии на все алгоритмы, а их разновидностей очень много. Если вы делаете хфт алгоритм с чуть более сложным внутренним содержанием, например, по мат. моделям, то 1. сокрее всего вы не будете конкурентами с Секретом, 2. Частота сделак не будет ультра высокой, как правило мат. модели имеют немного больший период предсказаний

Добавить комментарий