<HELP> for explanation

Блог им. uralpro

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

Алгоритмы маркетмейкера. Часть 4
Прошлые части цикла здесь. В этой части статьи мы найдем численное решение системы уравнений оптимального управления позицией маркетмейкера. Такое решение легко запрограммировать и использовать в реальной торговле для контроля за лимитными и маркет ордерами в соответствии с полученными стратегиями θmk,θtk. Для упрощения разложим функцию владения на слагаемые, чтобы получить сокращенную функцию владения v(t,y,f,s), которая представляет собой только динамическую составляющую основной функции:

V(t,x,y,p,f,s)=x+py+v(t,y,f,s)

Для v система уравнений выглядит следующим образом:

\max\left[\frac{\partial v}{\partial t}+y\frac{\mathbb{E}_t dP_t}{dt}+\mathcal{L}^F\circ v-\gamma y^2\frac{\mathbb{E}_t d[P,P]_t}{dt}+

\sup_{\theta^{mk}}\left\{g^a(f,s,\theta^{mk,b}_t)(v(t,y+1,f,s)-v(t,y,f,s)+s/2-\delta \theta^{mk,b}_t)+

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

\sup\{v(t,y+\zeta,f,s)-|\zeta|(s/2+\epsilon)\}-v]=0

с терминальным условием:

v(T,y,f,s)=-|y|(s/2+\epsilon).

Переходим к численному решению. Зададим на интервале [0,T] дискретную сетку времени t с равными интервалами \Delta_T=T/N_T:

\mathbb{T}_{N_T}=\{t_k=k\Delta_T,k=0,...,N_T\}

Также дискретизируем открытую позицию \mathbb{Y}и дисбаланс объема \mathbb{F}, с максимальными значениями M_Y, M_Fи шагами дискретизации\Delta_Y=M_Y/N_Y, \Delta_F=M_F/N_F, где

\mathbb{Y}_{N_Y}=\{y_i=i\Delta_Y,i=-N_Y,...,N_Y\}, \mathbb{F}_{N_F}=\{f_j=j\Delta_F,j=-N_F,...,N_F\}.

Далее, для вычисления численных производных по дисбалансу объема F, определим две дифференциальные матрицы — D1 для вычисления производной первого порядка и D2 — для вычисления производной второго порядка, на сетке \mathbb{F}_{N_F}:

D_2 v(t,y,f_j,s)=\Bigg(\frac{v(t,y,f_{j+1},s)-2v(t,y,f_j,s)+v(t,y,f_{j-1},s)}{(\Delta_F)^2}\Bigg)

\begin{matrix}D_1 v(t,y,f_j,s)= \left\{ \begin{matrix} \frac{v(t,y,f_{j+1},s)-v(t,y,f_j,s)}{\Delta_F}&amp;amp; \mbox{if }f_j&amp;lt; 0 \\ \frac{v(t,y,f_j,s)-v(t,y,f_{j-1},s)}{\Delta_F}&amp;amp;\mbox{if }f_j\geq 0 \end{matrix} \right. \end{matrix}

Обозначим оператор выбора для любой действительной функции \phi\mapsto :\phi(t,y,f,s):

\mathcal{A}(t,y,f,s,\phi)=\max\{\widetilde{\mathcal{L}}(t,y,f,s,\phi),\widetilde{\mathcal{M}}\circ\widetilde{\mathcal{L}}(t,y,f,s,\phi)\}

Оператор выбора имеет простой смысл: если некая функция ϕ максимальна при воздействии оператора \widetilde{\mathcal{L}}(что для функции владения соответствует использованию лимитных ордеров) или оператора\widetilde{\mathcal{M}}\circ\widetilde{\mathcal{L}}(использование маркет ордеров), то при текущих параметрах t,y,f,s выбирается именно эта политика (то есть лимитные или маркет-ордера).

Выражения для операторов в фигурных скобках:

\widetilde{\mathcal{L}}(t,y,:,s,\phi)=(I_{N_F\times N_F}-\Delta_T\sigma^2_F D_2-\Delta_T\alpha_F(\mathbb{F}_{N_F}1_{N_F})..D_1)^{-1}\times

\Bigg(\phi(t,y,:,s)+\Delta_T y \frac{\mathbb{E}_t dP_t}{dt}+\Delta_T\mathcal{L}^S(\phi(t,y,:,s))-\Delta_T\gamma y^2\frac{\mathbb{E}_t d[P,P]_t}{dt}+

\Delta_T\sup_{\theta^{mk}}\{g^a(:,s,\theta^{mk,b}_t)..(\phi(t,y+1,:,s)-\phi(t,y,:,s)+s/2-\delta\theta^{mk,b}_t)+

g^b(:,s,\theta^{mk,a}_t)..(\phi(t,y-1,:,s)-\phi(t,y,:,s)+s/2-\delta\theta^{mk,a}_t)\}\Bigg).

\widetilde{\mathcal{M}}\circ\widetilde{\mathcal{L}}(t,y,f,s,\phi)=\sup_{|\zeta|\leq\zeta_{max}}\{\widetilde{\mathcal{L}}(t,y+\zeta,f,s,\phi)-|\zeta|(s/2+\epsilon)\}

здесьI_{N_F\times N_F} — матрица идентичности размерностьюN_F\times N_F(матрица, где по главной диагонали расположены единицы, остальные элементы 0),\mathbb{F}_{N_F} — столбец значений дисбаланса,1_{N_F} — единичный вектор размерностьюN_F\times 1,… означает поэлементное произведение векторов и матриц. Таким образом,\widetilde{\mathcal{L}}представляет собой вектор размерностью N_Fна сетке\mathbb{F}_{N_F}.

Аппроксимируем сокращенную функцию владения v численным решением w:

w(T,y,f,s)=-|y|(s/2+\epsilon)

w(t_k,y,f,s)=\mathcal{A}(t_{k+1},y,f,s,w), k=N_T-1,N_T-2,..,0

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

1. На конечный момент времениt_{N_T}=T: для каждой комбинации значений (y,f,s) вычисляем w(T,y,f,s)=-|y|(s/2+\epsilon).

2. Начиная с момента времени tk+1 до момента tk, где k пробегает значения отN_T-1до 0 для каждой комбинации (y,f,s) делаем следующее:

  • Вычисляем\widetilde{\mathcal{L}}(t_{k+1},y,f,s,w)по вышеприведенной формуле и находим политику лимитных ордеров\theta^{mk,*}
  • Вычисляем\widetilde{\mathcal{M}}\circ\widetilde{\mathcal{L}}(t_{k+1},y,f,s,w), и находим политику маркет ордеров\theta^{tk,*}
  • Если\widetilde{\mathcal{L}}(t_{k+1},y,f,s,w)\geq\widetilde{\mathcal{M}}\circ\widetilde{\mathcal{L}}(t_{k+1},y,f,s,w), то текущей политикой на момент времени tk выбирается\theta^{mk,*}, при значениях (y,f,s), то есть в этот момент времени используюся лимитные ордера, согласно значению\theta^{mk,*}, которое, как мы помним означает выставление ордера, с количеством контрактов =1, или на лучший бид/аск, или перед/до него.
  • В обратном случае выбирается политика\theta^{tk,*}в момент времени tk при значениях (y,f,s), то есть используются маркет ордера с количеством контрактов, вычисленных в\theta^{tk,*}

Таким образом, для всех значений времени t, всех значений открытой позиции y, всех значений дисбаланса объемов f и всех значений спреда s — (t,y,f,s)- мы определяем, какие ордера нам ипользовать в каждом случае, и формируем области, подобные указанным на графике в заглавии, где изображены политики при значениях спреда, равному шагу цены, и значению времени, меньше на 3 единицы (например, секунды) времени окончания торговли, для всех значений открытой позиции и спреда. Что означают эти области, вы можете посмотреть в части 2 и части 3 данного цикла статей. В следующей статье обсудим, как находить параметры в уравнении для\widetilde{\mathcal{L}}(t_{k+1},y,f,s,w), основываясь на реальных биржевых данных, и начнем составлять код на C# для численного решения методом обратной индукции.

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

 

Зачем вы это здесь публично выставляете?)
avatar

Pobeditel

Pobeditel, Какая разница, все равно 99% читателей ничего не поймут)
Press, это больше интерпретация, чем перевод. Кое-что я изменил, чтобы подходило под наш рынок. Ну и код, который будет в последней части, полностью мой
Press, будет. Он уже есть, если доберетесь до моего сайта
так вот для чего, математика, в школе, нужна была :)))
Forest (Динар), то чувство когда ты понимаешь зачем ты математикой занимался в школе да?)))))))))))))))
что это делает на главной?!
avatar

Bocman

что это было?
avatar

vito2000

Спасибо. Осталось только найти 12млн чтобы стать ММ ))
avatar

Макс

Макс, что вам мешает применять маркетмейкерские алгоритмы без официального статуса?
uralpro, мешает то что официальному ММ платит биржа. А я наоборот — сам плачу бирже и еще брокеру.
Хотя вы абсолютно правы, зарабатывать мм-алгоритмами можно и без денег, рибейтов, без прямого подключения. Но требуется серьезная адаптация алгоритмов. И это уже будет не маркетмейкерство в сути, а просто предоставление ликвидности.

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

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

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