uralpro
uralpro личный блог
02 апреля 2015, 09:46

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

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

Продолжаем разбирать работу JIANGMIN XU «Optimal Strategies of High Frequency Traders». Чтобы составить уравнение оптимального контроля, сначала сформулируем проблему оптимизации алгоритма при используемых стратегиях θ,  как достижение максимума следующего матожидания:

\max_{\theta^{mk},\theta^{tk}}\mathbb{E}_0[X_T-\gamma\int^T_0 Y^2_{t-}d[P,P]_t],

где интеграл\gamma\int^T_0 Y^2_{t-}d[P,P]_tпредставляет собой штрафную функцию удержания ненулевой открытой позиции рискованного актива, γ- постоянный коэффициент, d[P,P]t- квадратичное изменение средней цены P, X_T — кэш трейдера на момент времени окончания торговли T.

 

Далее определим функцию, которая представляет активы трейдера после ликвидации всех открытых позиций в конце торговли по алгоритму с помощью маркет ордера:

Q(x,y,p,f,s)=x+py-|y|(\frac{s}{2}+\epsilon),

где x — кэш трейдера,

p- средняя цена (в стакане),

y — открытая позиция,

s — спред,

f — дисбаланс объемов в стакане,

ϵ- комиссия. 

С учетом функции Q  дадим определение так называемой функции владения, которую мы и будем максимизировать на всем протяжении работы алгоритма:

V(t,x,y,p,f,s)=\sup_{\theta^{mk},\theta^{tk}}\mathbb{E}_t[X_T+P_T Y_T-|Y_T|(\frac{S_T}{2}+\epsilon)-\gamma\int^T_0 Y^2_{t-}d[P,P]_t]

Проблема оптимального контроля решается с применением динамически программируемых уравнений, и для  составления первого уравнения для котировочных стратегий θmk представим инфинитезимальный оператор второго порядка L:

\mathcal{L}\circ V(t,x,y,p,f,s)=(\mathcal{L}^P+\mathcal{L}^S+\mathcal{L}^F)\circ V(t,x,y,p,f,s)+

g^a(f,s,\theta^{mk,b}_t)\cdot V(t,x-(p-s/2+\delta \theta^{mk,b}_t,y+1,p,f,s)+

g^b(f,s,\theta^{mk,a}_t)\cdot V(t,x+(p+s/2-\delta \theta^{mk,a}_t,y-1,p,f,s)

\mathcal{L}^P,\mathcal{L}^F,\mathcal{L}^S — инфинитезимальные операторы процесса изменения средней цены P, дисбаланса объема в стакане F  и спреда S соответственно. Несмотря на страшное название данные операторы просто обозначают воздействие изменяющихся в течение времени процессов цены, дисбаланса объема  и спреда на функцию владения — то есть на активы, которыми владеет трейдер. Функции

g^a(f,s,\theta^{mk,b}_t)=\theta^{mk,b}_t \lambda^a+(1-\theta^{mk,b}_t) \lambda^a h(f)

g^b(f,s,\theta^{mk,a}_t)=\theta^{mk,a}_t \lambda^b+(1-\theta^{mk,a}_t) \lambda^b h(-f)

являются ни чем иным, как ожидаемой частотой исполнения лимитных ордеров на биде и аске соответственно. Здесь h(f)- вероятность взятия лимит ордера на лучшем аске(биде) в очереди заявок, в зависимости от дисбаланса f, имеет форму h(u)=1/(1+\exp(\varsigma_0+\varsigma_1 u)), \varsigma_0, \varsigma_1 — положительные константы. \lambda^a,\lambda^b —  частоты прихода маркет ордеров на бид и аск.

Для составления вторoго уравнения  стратегии с маркет ордерами (take strategy) θtk , нам понадобится оператор импульсного управления M:

\mathcal{M}\circ V(t,x,y,p,f,s)=\sup_{\zeta\in\{-\zeta_{max},\zeta_{max}\}}(V(t,x-\zeta p-|\zeta|(s/2+\epsilon),y+\zeta,p,f,s))

Этот оператор отражает воздействие на функцию V(t,x,y,p,f,s) стратегии θtk, с целью максимизации функции владения во время применения этой стратегии.

С операторами L и M мы сможем составить неравенство, которое называется квазивариационное неравенство Хамильтона-Якоби-Беллмана (HJB-QVI):

\max\left\{\frac{\partial V}{\partial t}+\sup\{\mathcal{L}\circ V\}-\gamma y^2\frac{\mathbb{E}_t[P,P]_t}{dt},\mathcal{M}\circ V-V\right\}=0, на промежутке[0,T), (T- время ликвидации открытых позиций (окончание торговли)), и составляет систему уравнений с терминальным условием:

V(T,x,y,p,f,s)=x+py-|y|(s/2+\epsilon)

Решением этой системы уравнений и будет набор стратегий θmk ,θtk, вычисленные на каждый момент времени в промежутке [0,T), и на каждую величину спреда s, как изображено на графиках в заглавии статьи. Обратите внимание, что там появилась новая область в связи с размером спреда S больше одного шага цены — Pinging on bid\ask side. В этой области значения θmk равны 1 для бида/аска, что означает, что лимитные ордера выставляются в стакане на тик больше бида (тик меньше аска) — см. часть 2 цикла статей.

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

34 Комментария
  • Макс
    02 апреля 2015, 12:10
    надеюсь дальше полегче будет
  • Deleted Account
    02 апреля 2015, 12:12
    Это что за хрень? ТС, давай побольше диффур еще.
  • Reaktor (The Catalyst)
    02 апреля 2015, 12:14
    Для кого он этот пост создаёт? ))))
    Умников здесь не любят, до и понторезов тоже)))
      • Reaktor (The Catalyst)
        02 апреля 2015, 12:46
        uralpro, а ты не думал, что «на не рабочих линиях» делаются большие деньги, а на математике — только рушат реальность уверенного на все 100 математика?
        • zag1
          02 апреля 2015, 22:44
          Alex_Volume, математика обычно как раз и уверена на все 100%, или вы сомниваетесь что самолеты, например, реально летают? :-) Шутка.
      • zag1
        02 апреля 2015, 22:41
        uralpro, кинематика описывает движение геометрически, но та не кинематика и не геометрия. :-)
  • Eskalibur
    02 апреля 2015, 12:14
    Нужны матрицы! Матрицы — наше всё…
  • Eskalibur
    02 апреля 2015, 12:15
    Автор молодец!
  • Алексей
    02 апреля 2015, 12:46
    uralpro, а кроме текста ваш материал никак не послушать? разобрать на кошках так сказать.
    формулы конечно хорошо, но на втором этапе, сначала бы общий принцип понять.
    записали бы видео, я бы с удовольствием посмотрел. в любом случае спасибо.
    • r0man
      02 апреля 2015, 13:01
      Алексей, общий принцип представлен очень наглядно на картинках к постам автора и заключается в расчете матриц оптимального входа и контроля позиции. Алгоритм основан на предположении о зависимости направления движения цены от изменения объема заявок в стакане.
  • Reaktor (The Catalyst)
    02 апреля 2015, 12:47



  • Михаил Березовиков
    02 апреля 2015, 13:16
    Оверинжениринг

    А на самом деле кто поймёт как и что тут, тот сможет с ММОМ заходить в позицию и будет красавчик
  • Здрасте
    02 апреля 2015, 15:07
    Вот видно что автор суперпрофи!
    Не то что «уровень с запасом хода берем» и что дальше школьной арифметики — то слом мозга))
    ===========
    С увлечением детально по формулам разбираю эту трилогию по-тиху сейчас. Спасибо за пост!
  • chizhan
    02 апреля 2015, 19:09
    Автор, трейдинг настолько сложная термодинамика в обществе, что никакой аналитикой ее не описать. Только численное моделирование и разведка боем. А если я не прав, то целиться надо гораздо выше — на нобелевскую премию по экономике.
  • zag1
    02 апреля 2015, 19:34
    uralpro, на чем собираетесь писать код? :-) Только, не Хамильтона-Якоби, а Гамильтона-Якоби.
      • zag1
        02 апреля 2015, 21:34
        uralpro, статью смотрел «по диагонали», но в вашем посте, мне кажется, не все уравнения записаны, наверное ур-я в оригинале статьи. Точно всех формул хватает ?:-) Формулы для операторов, например, имеются? и всех E,T,V и пр.?
          • zag1
            02 апреля 2015, 22:21
            uralpro, если вы вычислите все на С# :-) можете считать что «получили 5 за трудолюбие». Если еще и все последующие ваши проекты на нем решите, будете, наверное, известным на весь интернет самым трудолюбивым разработчиком для С# который перевел все уже ранее написанное на С++ на платформу Микрософт. Надеюсь не обидились за небольшое количество шутки. С# относительно новый язык программирования, что-бы довести его фукции до уровня С++ уйдут еще годы(можете посмотреть например расширение Boost для С++ что-бы оценить отличия). Все imho.
  • Watcher
    02 апреля 2015, 20:38
    Спасибо!
  • Гусев Михаил(debtUM)
    03 апреля 2015, 02:28
    Интересные статьи, спасибо автору.
    Интересно только он на практике их уже пробовал ?
    т.е. был уже ММ или только собирается ?
    И для себя собирается котировать или так сказать за деньги биржи?
  • Ivor
    03 апреля 2015, 11:00
    кстати, у вас весьма интересный сайт получается. продолжайте в том же духе.
      • Ivor
        03 апреля 2015, 11:26
        uralpro, а у пользователей будет возможность делать свои топики? только по теме ессно.
          • Ivor
            03 апреля 2015, 11:30
            uralpro, ну и правильно.
  • zag1
    03 апреля 2015, 12:21
    Кому интересены научные методы алготрейдинга велкам u.to/OoXpCg место «без багов» для работы. ;-)
  • Pobeditel
    03 апреля 2015, 15:38
    Какой смысл выкладывать работы по маркет-мейкингу для физиков… у физиков одна комиссия брокерская всю идею порушит)))) я тупой мне можно говорить что угодно)))))))

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

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