Для v система уравнений выглядит следующим образом:
с терминальным условием:
Переходим к численному решению. Зададим на интервале [0,T] дискретную сетку времени t с равными интервалами :
Также дискретизируем открытую позицию и дисбаланс объема , с максимальными значениями и шагами дискретизации, где
Далее, для вычисления численных производных по дисбалансу объема F, определим две дифференциальные матрицы — D1 для вычисления производной первого порядка и D2 — для вычисления производной второго порядка, на сетке :
Обозначим оператор выбора для любой действительной функции :
Оператор выбора имеет простой смысл: если некая функция ϕ максимальна при воздействии оператора (что для функции владения соответствует использованию лимитных ордеров) или оператора(использование маркет ордеров), то при текущих параметрах t,y,f,s выбирается именно эта политика (то есть лимитные или маркет-ордера).
Выражения для операторов в фигурных скобках:
.
здесь — матрица идентичности размерностью(матрица, где по главной диагонали расположены единицы, остальные элементы 0), — столбец значений дисбаланса, — единичный вектор размерностью,… означает поэлементное произведение векторов и матриц. Таким образом,представляет собой вектор размерностью на сетке.
Аппроксимируем сокращенную функцию владения v численным решением w:
Полное решение для функции владения можно получить методом обратной индукции, который состоит из следующих последовательных шагов:
1. На конечный момент времени: для каждой комбинации значений (y,f,s) вычисляем .
2. Начиная с момента времени tk+1 до момента tk, где k пробегает значения отдо 0 для каждой комбинации (y,f,s) делаем следующее:
Таким образом, для всех значений времени t, всех значений открытой позиции y, всех значений дисбаланса объемов f и всех значений спреда s — (t,y,f,s)- мы определяем, какие ордера нам ипользовать в каждом случае, и формируем области, подобные указанным на графике в заглавии, где изображены политики при значениях спреда, равному шагу цены, и значению времени, меньше на 3 единицы (например, секунды) времени окончания торговли, для всех значений открытой позиции и спреда. Что означают эти области, вы можете посмотреть в части 2 и части 3 данного цикла статей. В следующей статье обсудим, как находить параметры в уравнении для, основываясь на реальных биржевых данных, и начнем составлять код на C# для численного решения методом обратной индукции.
Продолжение смотрите на моем сайте (см. профиль) или через некоторое время на смарт-лабе. Прошлые части статьи — в моем блоге.
Хотя вы абсолютно правы, зарабатывать мм-алгоритмами можно и без денег, рибейтов, без прямого подключения. Но требуется серьезная адаптация алгоритмов. И это уже будет не маркетмейкерство в сути, а просто предоставление ликвидности.