Неравномерно семплированный симулированный price impact лимитного стакана

6.5/10

Derick Diana, Tim Gebbie · Department of Statistical Sciences, University of Cape Town, Rondebosch, South Africa · 12 октября 2023 (опубликовано в Journal of Computational and Applied Mathematics, 456:116202, 2025)

Оригинал: Diana, D. and Gebbie, T. «Non-uniformly sampled simulated price impact of an order-book», v3 — arxiv.org/abs/2310.06079 (PDF). Код: figshare.

Перевод основного текста для личной коллекции с указанием источника. Рисунки воспроизведены из оригинальной публикации. Длинные преобразования Лапласа в приложении A сжаты; научное содержание основного текста и ключевые результаты приложений сохранены.

Ключевые слова: лимитный стакан, аномальная диффузия, дискретное по времени случайное блуждание (DTRW), price impact, эконофизика.

PACS 89.65.Gh, 02.50.Ey · MSC 91-04, 91G60, 91G80 · JEL G11, G14, G17.

Аннотация

Мы расширяем численную схему Discrete Time Random Walk (DTRW) для симуляции аномальной диффузии рыночных заявок в симулированном лимитном стакане. Используются случайные блуждания с временами ожидания Сибуя, зависящая от времени стохастическая forcing-функция и неравномерно семплированные интервалы между событиями стакана в постановке дробной диффузии. Это моделирует гидродинамический предел (fluid limit) стакана через непрерывный приход, отмену и диффузию заявок при информационных шоках. Изучаются импульсный отклик и стилизованные факты заявок, подвергающихся аномальной диффузии, для разных forcing-функций и параметров модели. Конкретно демонстрируется price impact flash-лимитных и рыночных заявок; показано, как численный метод порождает изломы (kinks) на кривых impact. Для сглаживания используется кубическая сплайн-интерполяция. Работа продвигает неравномерное семплирование при диффузионной динамике как предпочтительный метод симуляции.

1. Введение

Нужна ли сложная механистическая агентная модель, чтобы разумно восстановить и симулировать непрерывно-временную динамику цен двойного аукциона, или это достижимо в континуальном пределе? Мы рассматриваем этот вопрос, расширяя модель, впервые использованную для описания гидродинамического предела латентного стакана, до диффузии заявок в lit-стакане (Tóth et al., 2011). Модель далее изучалась в контексте аномального price impact (Tóth et al., 2011; Mastromatteo et al., 2014) и дробной диффузии (Benzaquen, Bouchaud, 2018). Здесь мы объединяем price discovery и динамику лимитного стакана — внешнюю движущую силу, аномальную диффузию, интенсивности прихода и отмены заявок — со схемой конечных разностей, допускающей неравномерно семплированные времена обновления.

Описание фондового рынка через агентные модели и сложность начинается с работы Bak et al. (1997). Там симулируются два типа агентов: «интеллектуальные» и «шумовые» трейдеры. Если используются только шумовые агенты, поведение системы соответствует реакционно-диффузионным процессам вида $A+B\to 0$. Агенты двух типов, $A$ и $B$, представляются частицами: их впрыскивают с разных концов трубки, они диффундируют, сталкиваются и аннигилируют при контакте с агентом другого типа. Аннигиляция интерпретируется как состоявшаяся сделка между покупателем и продавцом. Однако если шумовым агентам разрешить имитировать других, такие процессы становятся непригодными. Это важно: комбинация обоих типов с возможностью копировать чужие цены (пример стадного поведения) лучше согласуется с эмпирическими показателями Хёрста наблюдаемых ценовых траекторий.

Tang and Tian (1999) рассмотрели ту же постановку и расширили её для тех же типов агентов: несмещённая диффузия, смещённая диффузия и смещённая диффузия с копированием. Они объяснили, как дисбаланс числа покупателей и продавцов вызывает изменения цены. Ключевой вывод: смещение агентов к текущей цене воспроизводит случайное блуждание. Наконец, выведены scaling-функции для показателей Хёрста во всех трёх моделях; комбинированная модель снова лучше описывает данные. Это первый эвристический метод, явно связавший флуктуации цены с диффузионным движением отдельных агентов в представлении Bak et al. (1997) и при этом начавший согласовываться с измеренным фрактальным скейлингом реальных рынков.

Эти работы подсказали, что динамику финансовых рынков можно понять из первых принципов, расширив кинетическую теорию на анализ фондового рынка. Однако оставался ключевой камень преткновения: как эмпирически валидировать микроскопические модели по мезоскопическим наблюдениям, если большинство моделей калибровалось на макро- и мезоуровне. Теоретические модели избегали прямого эмпирического сопоставления микроскопики трейдеров, кинетической теории, динамики цен и наблюдаемых мезо- и макросвойств. Kanazawa et al. (2018a, 2018b) дали и количественно оформили концептуальный каркас, напрямую связывающий микроскопическую кинетическую теорию трейдеров с мезоскопическими наблюдениями.

Kanazawa et al. с помощью иерархической теории вывели уравнения типа Больцмана и Ланжевена для тренд-следующих агентов, трактуя задачу в терминах статистической механики. Их теория состоит из трёх масштабов. Во-первых, «микро»: отдельные трейдеры участвуют в рынке (аналогия — отдельные частицы газа). Этот масштаб мы здесь напрямую не рассматриваем. Во-вторых, «мезо»: участие агентов даёт распределение бидов и офферов в lit-стакане (аналогия — распределение скоростей молекул); мы моделируем его, отслеживая число заявок на дискретных узлах сетки. В-третьих, «макро»: наблюдаемые рыночные цены (аналогия — траектория одной пробной частицы); мы измеряем это, находя пересечение нуля среди узлов сетки.

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

Ненаблюдаемый латентный стакан описывают как основной источник заявок, движущих price discovery: он фиксирует намерения всех трейдеров на микроуровне, а торговая активность наблюдается на мезо- и макроуровне. Литература по латентному стакану обширна (Tóth et al., 2011; Donier et al., 2015; Mastromatteo et al., 2014; Bouchaud et al., 2009). Отправная точка, как мотивируют Donier et al. (2015a), — аргумент zero-intelligence (Smith et al., 2003; Farmer et al., 2005). Исходная модель Tóth et al. (2011) описывает латентный стакан в непрерывно-временном гидродинамическом пределе реакционно-диффузионным уравнением. Модель $A+B\to\emptyset$ обобщается на impact избытка $A$ (или $B$) на реакционном фронте (Mastromatteo et al., 2014). Здесь мы применяем ту же модель к lit-стакану в стационарной конфигурации: source-член плотности заявок линейно следует за ценой (в системе координат стакана он стационарен) и тем самым подавляет динамику на границе. Симуляция выполняется стохастической конечно-разностной схемой Angstmann et al. (2016).

Ключевые драйверы агрегированной emergent-динамики в непрерывно-временной области могут быть в значительной степени независимы от прямой спецификации поведения отдельных агентов. Есть много сравнительно хорошо понятых агентных моделей (Kirman, Teyssière, 2007; Farmer, Joshi, 2002; Preis et al., 2006; Chiarella et al., 2009; Bouchaud et al., 2009); острые вопросы связаны с вычислительной эффективностью и доверием к калибровке (Platt, Gebbie, 2017; Platt, 2019; Fabretti, 2013). Если наблюдаемые свойства удаётся описать динамикой order-flow и прихода информации напрямую — то есть через сам стакан (Lehalle, Dang, 2010; Tóth et al., 2011), — разумно жертвовать механистической сложностью и «реализмом агентов» ради parsimony и предсказуемости. Тогда модели фокусируются на мезоскопических свойствах как усреднённых представлениях микроскопических механизмов. Это идея в сердце кинетической теории: моделируются термодинамические свойства, возникающие из усреднения, и они сопоставляются с observables и экспериментом.

Упрощённая модель даёт вычислительные преимущества: можно полнее исследовать параметрическое пространство и стилизованные факты, строя конфигурации и численные схемы, которые с разумной скоростью порождают реалистичные ценовые отклики. За этим стоит гипотеза, что сложные взаимодействия множества гетерогенных агентов, конкурирующих на рынке, можно аппроксимировать простыми source-членами и стохастической движущей силой в широком классе диффузионных zero-intelligence моделей. Даже когда множество агентов принимает целенаправленные, конкурентные и стратегические решения в иерархически организованной системе, в среднем это может хорошо описываться диффузионной динамикой финансовой кинетической теории и связанной с ней статистической механики.

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

Gerig (2008) рассмотрел две схемы (Lillo, Farmer, 2004; Bouchaud et al., 2003), объясняющие, почему при коррелированных покупках и продажах цены остаются некоррелированными. Он показал, что эти две модели — одна и та же модель с разной интерпретацией членов. Далее: если группы участников коллективно обусловливают ликвидность прошлым order-flow так, чтобы модель выполнялась, price impact будет степенным; если обусловливание делает сам инициатор сделки — логарифмическим. Это важный вывод, и любая разумная кинетическая теория рынка должна его воспроизводить.

Мы показываем, что форма price impact на самом деле зависит от процедуры дискретизации, которой симулируется усреднённая реакционно-диффузионная модель взаимодействий order-flow; поэтому существуют гиперпараметры, которыми модель подгоняется под наблюдения и которые лишь слабо зависят от самих параметров модели. В частности, выбор семплирования может вводить в заблуждение при выборе между логарифмическим и степенным impact.

Главный вклад работы — конкретный пример мезоскопической усреднённой кинетической модели order-flow в общем симуляционном каркасе и кривые price impact из ценового отклика на шоки и последовательности объёмных импульсов. Это демонстрирует разнообразие возможных стилизованных фактов и ограничения данного класса моделей. Конкретно работа расширяет прототип численной симуляции и калибровки Gant (2022a, 2022b), где диффузионная модель калибровалась на данных по упрощённой формулировке схемы Angstmann et al. (2016), до более реалистичной конфигурации.

Мы исследуем расширение с аномальной диффузией в терминах симулированного price impact (раздел 2) и стилизованных фактов при расширенных параметрах модели (раздел 3.3 и табл. 1). Затем добавляем возможность генерировать неравномерно семплированные траектории mid-price (раздел 3.5). Ключевой вклад: показать и объяснить влияние численной схемы на форму impact (приложение B.1) и дать метод интерполяции, сглаживающий эти артефакты (раздел 4.2.1). Далее переходим к модели.

2. Лимитный стакан (LOB)

Латентный стакан Tóth et al. (2011) аппроксимирует лимитный стакан в гидродинамическом пределе (Gao, Deng, 2018) через эволюцию дисбаланса плотности заявок, где $x$ — логарифм цены, $t$ — календарное время:

\[ \varphi(x,t)=\rho_B(x,t)-\rho_A(x,t). \tag{1} \]

Это разность плотности бидов $\rho_B(x,t)$ и офферов $\rho_A(x,t)$. По комбинированному дисбалансу $\varphi(x,t)$ находится mid-price $p(t)$:

\[ p(t):=\{x:\varphi(x,t)=0\}. \tag{2} \]

Ненулевые токи order-flow $j_a\neq j_b$ подразумевают раздельные края $x_b\equiv\max(\{x:\rho_b(x)>0\})$ и $x_a\equiv\min(\{x:\rho_a(x)>0\})$, так что возникает спред $s(t)=x_a-x_b$, и цена сделки $p(t)$ в общем случае не равна mid-price $m(t)\equiv(x_b+x_a)/2$; тогда пришлось бы решать две связанные задачи со свободной границей, а не одно комбинированное стационарное уравнение (Mastromatteo et al., 2014). Здесь $j_a=j_b$ по построению.

Дисбаланс заявок движет торговлю. Объём торговли $Q$ за период $t\in[0,T]$ находится по аналогу закона Ома для рынка с последующим интегрированием по времени:

\[ Q=D\int_0^T\left.\partial_x\varphi(x,t)\right|_{p_t}\,dt. \tag{3} \]

Предполагаем, что плотность объёма эволюционирует как реакционно-диффузионное уравнение (Tóth et al., 2011; Mastromatteo et al., 2014; Donier et al., 2015; Benzaquen, Bouchaud, 2018) с интенсивностью снятия (аннигиляции) $a(x,t)$, стохастической силой $f(x,t)$ и source-членом (создания) $c(x,t)$, который может зависеть от всей доступной прошлой информации. Диффузия заявок аномальна с параметром $D_\alpha$ и оператором Римана–Лиувилля $D^{1-\alpha}_t$. Накопленный неснятый объём — функция выживания заявок:

\[ \theta(x,t)=e^{-\int_0^t a(x,\tau)\,d\tau}. \tag{4} \]

Форма $\theta D^{1-\alpha}_t\theta^{-1}$ вместе с уравнением (4) даёт tempered fractional derivative (Sabzikar et al., 2015), которая может подавлять времена ожидания Сибуя; см. приложение A.1.

В модели новая информация запускает торговлю — это forcing-функция. Её можно выбрать через зависящий от времени стохастический процесс $V_t$ так, что $V_t=2\beta D_\alpha f(t)$ с обратной температурой $\beta$ (приложение A.3). Соединяя эти идеи, получаем реакционно-диффузионное уравнение с процессами добавления и снятия заявок, описывающее аномальную диффузию лимиток при приходе новой информации:

\[ \varphi_t= D_\alpha\left[\theta D^{1-\alpha}_t\Bigl(\frac{\varphi}{\theta}\Bigr)\right]_{xx} +V_t\left[\theta D^{1-\alpha}_t\Bigl(\frac{\varphi}{\theta}\Bigr)\right]_x -a\varphi+c. \tag{6} \]

Переменная интегрирования оператора Римана–Лиувилля $D^{1-\alpha}_{t,t'}$ в полной записи подчёркивает, что интегрирование идёт до текущего $t$. При $\alpha\to 1$ восстанавливается обычная диффузия $\varphi_t=D\varphi_{xx}+V_t\varphi_x-a\varphi+c$. Заявки в общем случае эволюционируют по аномальному диффузионному процессу — идея в том, что это описывает активность zero-intelligence трейдеров. Стохастический forcing смещает диффузию (новая информация); связанный с этим объём торговли — отклик рынка. Заявки могут отменяться. Source-член $c$ характеризует свойства ликвидности рынка и является мезоскопическим представлением агрегированной склонности к микроскопической торговой активности.

Интерпретация модели и, следовательно, согласованная численная схема на удивление тонки. Подход сопоставим в соответствующих пределах, но не микроскопически эквивалентен всем прочим реакционно-диффузионным рыночным моделям. Во-первых, у нас новая информация приходит в текущий момент на решётке (первый член в правой части уравнения (31) приложения); напротив, Benzaquen and Bouchaud (2018) включают свёртку по всему прошлому прихода информации — микроскопически это другая модель. Поэтому в их дробном дифференциальном уравнении дробная производная действует на source-член, а в нашем уравнении (6) — нет, что ещё раз подчёркивает различие.

Во-вторых, Benzaquen and Bouchaud (2018) начинают с континуального представления a priori, сразу применяют диффузионный предел как начальное приближение и усечённое распределение времён ожидания, получают пропагатор, затем возвращаются из двойственного пространства. Это ведёт к нюансам интерпретации, особенно для граничных и начальных условий в численной схеме.

Мы претендуем на большую общность (Angstmann et al., 2016) и на согласованную связь между микроскопической моделью, используемой в симуляциях, и заявленным континуальным реакционно-диффузионным уравнением с граничными и начальными условиями: диффузионный предел берётся после интегральных преобразований и без усечения траектории при доказательстве согласованности численной схемы (уравнение (20)) с моделью (уравнение (6)).

2.1. Сохранение объёма заявок

В равновесии полная «площадь» заявок $\varphi$ должна оставаться постоянной во времени:

\[ \phi(t)=\int_0^L\varphi(x,t)\,dx. \tag{7} \]

Производные по $x$ проходят через оператор $D^{1-\alpha}_t$, потому что он линеен и зависит только от $t$. Переписывая уравнение (6) с $V_t=2\beta D_\alpha f(t)$ и интегрируя по $x\in[0,L]$, получаем $\phi_t=-a\phi+C$ при граничных условиях, обеспечивающих баланс:

\[ \varphi_x\big|_0=\varphi\big|_0=0,\qquad \varphi_x\big|_L=\varphi\big|_L=0. \tag{9} \]

Интеграл по $x$ коммутирует с $\partial_t$ и $D^{1-\alpha}_t$. Член $C$ — заявки, созданные source-членами по всему объёмному домену. Для баланса при некотором $t'<t$ нужны условия $\varphi_x|_0=2\beta f(t)\varphi|_0$ и $\varphi_x|_L=2\beta f(t)\varphi|_L$; требования (9) устраняют диссипативный член. Итак, $\phi(0)=0$ и $C=0$ для всех $t$. Это подсказывает, что антисимметричные source-функции — разумный выбор.

2.2. Приход и снятие заявок

Член создания концептуально разбиваем на компоненты:

\[ c(x,p,t)=s(x,p,t)+\delta(x,p,t). \tag{10} \]

Здесь $s(x,p,t)$ — рыночный источник объёма, $\delta(x,p,t)$ — импульсная сделка: мгновенный, изолированный, экзогенный шок системы. Импульс используется в разделе 4.2 для зондирования отклика рынка. Рыночный source — либо латентный спрос инвесторов вне наблюдаемого стакана (Tóth et al., 2011; Donier et al., 2015; Benzaquen, Bouchaud, 2018), либо lit-спрос целиком внутри стакана (рис. 1).

Равновесные предложение и спрос задаёт lit-источник: нулевой объём на границах. При лог-цене $x$, mid-price $p(t)$, интенсивности $\kappa$ и масштабе $\mu$:

\[ s(x,t)=-\kappa\bigl(\mu(x-p(t))\bigr)\,e^{-\bigl(\mu(x-p(t))\bigr)^2}. \tag{11} \]

Это удобно не только по интерпретации: при граничных условиях Робина интеграл под плотностью покоящихся заявок $\varphi$ постоянен. И lit-, и латентный источники описывают равновесную динамику стакана — систему, которую затем возмущают дополнительными заявками и информационными шоками. В этой работе мы сначала ограничиваемся lit-стаканом.

Рисунок 1
Рисунок 1. Состояние наблюдаемого (lit) лимитного стакана в равновесии — синим: точка перехода от отрицательных покоящихся заявок к положительным — prevailing mid-price $p$. Видна плотность покоящихся заявок по ценовым уровням. Рынок в равновесии: масштабированные приходы на разных уровнях (зелёное) уравновешены отменами (золотое). Торговые шоки — розовым (динамика шока — рис. 11–22).

Для неравновесных предложения и спроса различаем два типа заявок: рыночные, снимающие объём по лучшей цене (покупка или продажа), и лимитные, добавляющие объём. Оба асимметрично вводят объём, которого в стакане ещё не было. Третий тип — торговый schedule, мета-ордер Tóth et al. (2011): родительская заявка с множеством дочерних, исполняемых в разные моменты. Такой тип здесь не рассматривается: только мгновенные заявки.

Важная оговорка: типы заявок нельзя считать взаимоисключающими. Эффективные заявки проблематичны. Smith et al. (2003) отмечают: если родительская лимитка одного знака пересекает текущий mid-price («crossing order») и встречает лимитку противоположного знака, в этой модели её можно интерпретировать как рыночную. Если crossing-заявка больше встречной лимитки, получается новая лимитка противоположного знака. Это не то поведение, которое обычно ожидают от market order во многих моделях, где эффект считают малозначимым. Это не так: Jericevich et al. (2021) рассмотрели точечный процесс Хоукса, генерирующий типы заявок (включая лимитные и рыночные) и подающий их в matching engine. Они показали, что в зависимости от обработки таких взаимодействий (crossing orders и прочих рыночных механизмов) способность восстановить порождающий процесс статистически значимо меняется.

2.3. Время и временные масштабы

В непрерывно-временном гидродинамическом пределе переменная $t$ ссылается на обновления стакана: подразумевается сделка на каждое обновление, и каждое обновление совпадает с календарным временем. Это не вполне соответствует физике реального рынка. На реальных рынках несколько связанных масштабов (Chang et al., 2021). Схематические диаграммы — в оригинале (PDF, рис. 2 оригинала): уровень $L_0$ — модельное/симуляционное время; $L_1$ — события обновления стакана; $L_2$ — сделки. Горизонтальные линии — непрерывное время PDE (6). В этот континуум вставляются события с интервалами $\{\Delta t_m\}$, наблюдения $t_n=\sum_{m=1}^n\Delta t_m$. Это уровень $L_0$. Система также семплируется в моменты $\ell_n=\sum_m\delta t_m$ (обновления стакана, $L_1$) и $\tau_n=\sum_m\tau_m$ (сделки, $L_2$). Для $L_1$ и $L_2$ может требоваться интерполяция; этот случай мы не рассматриваем.

Во-первых, различаются event time и calendar time. Event time — целочисленный индекс между событиями: обновление стакана или сделка (индекс $\ell$ по соглашению). Календарное время измеряется в миллисекундах, секундах, минутах и обычно не индексируется как считающий процесс. Параметр $t$ мы индексируем считающим индексом $n$. Во-вторых, на реальных рынках событий стакана обычно больше, чем сделок, потому что обновление стакана не всегда приводит к транзакции. В модели и события стакана, и сделки плотны на вещественной прямой. Это важно, когда нужно связать масштабы континуальной модели с дискретно, неравномерно и асинхронно семплированным физическим миром. Чтобы симулировать непрерывно-временной hydro-limit, модель дискретизируют. Интерпретацию и отображение на мир измерений стоит делать аккуратно. В итоге мы отождествляем времена сделок и семплированные события стакана в наблюдаемом мире с моментами семплирования непрерывно-временной модели.

На практике два масштаба дискретизации: 1) $\delta t$ — среднее время между обновлениями стакана, это время $t$ в уравнении обновления (20); 2) $\delta\tau$ — среднее время между наблюдаемыми сделками, это время семплирования для mid-price в уравнении (2). Price impact измеряет изменения стакана из-за транзакций разного объёма и цены: mid-price непосредственно до и сразу после $\ell$-й сделки, откуда изменение mid-price, связанное с объёмом. Price response — эволюция вызванных сделками изменений стакана как функция задержки в счётчике сделок относительно набора сделок заданного размера. В континуальном пределе это градиент плотности заявок.

Обычно price impact (и price response шире) измеряют в event time: $\ell$ считает сделки после данной транзакции. Mid-price берутся сразу после сделки и сравниваются с теми, что были сразу до неё (Lee, Ready, 1991; Lim, Coggins, 2005; Harvey et al., 2017). Impact измеряется изменениями mid-price относительно времени, индексированного счётчиком сделок, а не календарным временем. Поэтому у индекса $\ell$ среднее время ожидания между транзакциями $\delta\tau$, где $\delta t\neq\delta\tau$ и $\delta\tau\ge\delta t$. В модели есть симуляционное время $t$ среды и шаг решётки $\Delta t$ — изменения времени стакана в симуляции (фоновое симуляционное время). Симуляционное время плотно на вещественной прямой: календарные времена, времена сделок и времена событий стакана совпадают.

Это симуляционное время нужно отобразить на наблюдаемое календарное время рынка, а наблюдаемый шаг решётки — на известные времена обновления стакана (целочисленный счётчик $k$) и на времена сделок. Это требует семплирования — особенно если модель калибруется на реальных данных: от модели к измеримым величинам (котировки и mid-price, моменты сделок, моменты обновления стакана) относительно шагов модели $\Delta t$.

Мы семплируем и отображаем непрерывное симуляционное время на набор семплированных событий стакана. Рис. 3–4 и все панели стилизованных фактов подчёркивают этот выбор. Кривизна во врезке рис. 3 — мера субдиффузии. Каждая точка — событие $L_0$ (фоновое); нужно выбрать, как отобразить их на наблюдаемые события стакана $L_1$, которые описывает модель.

Непрерывное время — на оси $x$; схеме требуется тем больше событий $L_0$ для той же длины непрерывного времени, чем больше $\alpha$ (приложение B.2). Если просто объявить все события $L_0$ также событиями $L_1$, то в event time стакана графики всё сильнее растягиваются и могут не представлять ту субдиффузию, которую моделируют. Вместо этого события стакана нужно выбирать из $L_0$ так, чтобы в семплированном времени стакана графики вроде рис. 3 выглядели сходным образом.

Естественный путь: отождествить моменты, в которые на наблюдаемом рынке семплируют цены, со сделками $L_2$, и выбрать $L_1$ и $L_2$ соизмеримыми, так что крупные точки семплирования — также события $L_1$. Тогда все события семплирования стакана являются событиями семплирования сделок. Далее семплировать в целых значениях непрерывного модельного времени, сохраняющих диффузионные свойства с нужной численной точностью на агрегированном уровне — выбор этой работы. Крупные точки на рис. 3–4 — наблюдаемые события, которые мы называем событиями стакана, совпадающими в $L_1$ и $L_2$ (эквивалентны счётчику $\ell$). Можно использовать полуцелые или более мелкие шаги для небольшого снижения времени счёта. Это несмотря на то, что на реальных рынках обновлений стакана больше, чем сделок. Это становится важным при калибровке на данных или при сравнении стилизованных фактов наблюдаемых и симулированных рядов.

Другая интерпретация: свернуть $L_1$ в $L_0$ — итерации симуляции представляют фактические обновления стакана и связанные изменения mid-price, а сделки, чьи реализованные цены — prevailing mid-price, семплируются отдельно. Снова начинают с наблюдаемых времён сделок и семплируют mid-price из подлежащей модели, полагая, что цена сделки совпадает с mid-price. Модель тогда итерирует события стакана в $L_0$ чаще, чем семплируются сделки. События $L_0$ — необходимые обновления стакана, чтобы при семплировании в моменты $\ell$ получилась нужная диффузия. В обоих случаях получается одна и та же модель.

Ключ: на каждом шаге симуляции есть явные изменения mid-price и неявная торговля — заявки аннигилируют на границе бид/оффер в каждый момент модели. Сделки напрямую не наблюдаются: виден только mid-price из самого стакана.

2.4. Семплирование стакана

Физическая система наблюдается через данные TAQ: события стакана (Quote) и транзакции (Trade). Оба в общем случае семплируются неравномерно (уровни $L_1$ и $L_2$). В непрерывно-временном hydro-limit естественно предположить, что все события стакана и сделки совпадают в момент $t$ и плотны на вещественной прямой — так модель физически построена. Однако чтобы калибровать приближение на физическом мире, нужно downsample из непрерывно-временной модели (уровень $L_0$), как обсуждалось в разделе 2.3.

Конкретно используем две конструкции времени семплирования. Первая — равномерное семплирование: модельное время равномерно с шагом $\Delta t$; время обновления стакана $\delta t$ и времена сделок $\delta\tau$ — одно и то же кратное $\gamma_1$ модельного времени (в равномерной модели $\delta\tau=\delta t=8\Delta t$, так что $\gamma_1=8=\gamma_2$ и $\gamma_{2,1}=1$).

Вторая — неравномерное семплирование: времена сделок $\delta\tau_m$ неравномерны, например из случайного процесса. В каждый календарный момент $t_m$ новое время ожидания $\delta\tau_m$. Процесс моделирует ожидание между измеренными сделками; можно выровнять ожидания обновлений стакана между наблюдаемыми сделками ($\delta t_m=\delta\tau_m$) и согласовать их с подлежащими шагами симуляции $\Delta t_m$. Это требует расширения модели на неравномерную временную решётку при согласованности с диффузией; такое расширение дано в разделе 3.5.

В общем среднее число событий стакана на сделку — свободный параметр, который выбирают или калибруют. На практике всегда идём назад от измеряемой физической системы: от среднего ожидания между сделками и, следовательно, между измерениями mid-price. Mid-price для price impact в физической системе всегда берутся сразу после и сразу до сделки (Lee, Ready, 1991; Lim, Coggins, 2005; Harvey et al., 2017). Поэтому в этой работе выравниваем события сделок $L_2$ с семплированными обновлениями стакана $L_1$.

Три важных отношения средних времён семплирования:

  1. время сделки vs симуляционное время: \[ \gamma_1=\frac{\mathbb{E}[\delta\tau_m]}{\mathbb{E}[\Delta t_m]}=\frac{\delta\tau}{\Delta t}; \tag{12} \]
  2. время обновления стакана vs симуляционное: \[ \gamma_2=\frac{\mathbb{E}[\delta t_m]}{\mathbb{E}[\Delta t_m]}=\frac{\delta t}{\Delta t}; \tag{13} \]
  3. время обновления стакана vs время сделки: \[ \gamma_{2,1}=\frac{\delta t}{\delta\tau}. \tag{14} \]

Они важны при построении price impact: кодируют, как мезоскопические процессы отображаются в макроскопический observable. Форма кривых impact зависит от выбора этих параметров.

Каждая симуляция концептуально представляет 8 часов календарной торговли, где $\delta\tau=\mathbb{E}[\delta\tau_m]$ — среднее ожидание между сделками за этот период. Среднее время между событиями стакана за те же типичные 8 часов — $\delta t=\mathbb{E}[\delta t_m]$. Процедура дискретизации начинается с $\Delta t=\delta t$ и $\Delta t=\mathbb{E}[\Delta t_m]$. Тогда время ожидания $\Delta t_m$ на ненаблюдаемой модельной решётке совпадает с ожиданием между транзакциями. Это задаёт неравномерность обновлений цены стакана, необходимую для согласованности с дробной диффузией. Этим соотношением (уравнение (22)) мы пользуемся на протяжении всей работы.

Рисунок 2
Рисунок 2. Пример симулированных траекторий mid-price (раздел 3.1, табл. 1). Тонкая синяя линия с мелкими точками — фоновая решётка $L_0$ (события стакана). Толстые точки — наблюдаемые семплированные времена сделок $L_2$, чья частота задаётся калибровкой; события стакана семплируются так, чтобы совпадать с семплированными ценами в $L_2$ (раздел 2.3). Траектории — для выбранных реализаций стохастического потенциала $V_t$ (приход случайной информации). Врезка: два семплированных события стакана (крупные синие точки) при $\ell=0$ и $\ell=1$. Мелкие жёлтые и синие точки — промежуточные фоновые события. Фоновое время решётки — $t$; семплированные события — целые $\ell$, взятые из $t$.

3. Аномальная стохастическая схема конечных разностей

3.1. Симуляция лимитного стакана

Angstmann et al. (2016) дают численную схему для уравнения (6), но без первой производной, связанной со случайной силой:

\[ \varphi_t=c-a\varphi+D_\alpha\left[\theta D^{1-\alpha}_t\Bigl(\frac{\varphi}{\theta}\Bigr)\right]_{xx}. \tag{15} \]

Схема мотивирует уравнение обновления на дискретной сетке лог-цены $x_i=i\Delta x$ и времени $t_n=n\Delta t$, с плотностью объёма на решётке $\varphi^i_n=\varphi(x_i,t_n)$. Обновление движется по сетке в положительном направлении времени. Функция выживания $\theta$ на интервале $t\in[t_m,t_n]$, $t_m<t_n$, аппроксимируется дискретным оператором аннигиляции: накопленные снятые заявки как пуассоновский процесс с интенсивностями $a_\Delta(x_i,t_n)$ на сетке (здесь $y_\Delta$ для величины $y$ означает $y(x,t)=\lim_{\Delta x,\Delta t\to 0}y_\Delta(x,t)$):

\[ \theta^i_{m,n}=\exp\Bigl(-\int_{t_m}^{t_n}a_\Delta(x_i,t')\,dt'\Bigr). \tag{16} \]

Накопленные созданные заявки за один шаг $\Delta t$ на $t\in[t_{n-1},t_n]$ задаются оператором создания $c_\Delta(x_i,t_n)$:

\[ C^i_{n-1,n}=\int_{t_{n-1}}^{t_n}c_\Delta(x_i,t')\,dt'. \tag{17} \]

Формула обновления использует Discrete Time Random Walk (DTRW). Она кодирует прыжки влево, вправо и «на месте» в момент $t_n$ с вероятностями $P^{(+1)}_n$, $P^{(-1)}_n$ и $P^{(0)}_n$, порождая диффузию:

\[ \varphi^i_n=C^i_{m,n}+\theta^i_{n-1,n}\varphi^i_{n-1} +\sum_{m=0}^{n-1}K_{n-m}\Bigl[ P^{(+1)}_{n-1}\theta^{i-1}_{m,n-1}\varphi^{i-1}_m +P^{(-1)}_{n-1}\theta^{i+1}_{m,n-1}\varphi^{i+1}_m +(P^{(0)}_{n-1}-1)\theta^i_{m,n-1}\varphi^i_m\Bigr]. \tag{18} \]

Здесь $K_{n-m}$ — ядро памяти процесса с временами ожидания Сибуя:

\[ K_{n-m}=\prod_{k=1}^{n-m}\Bigl(1-\frac{2-\alpha}{k}\Bigr)+\delta_{1,n-m}. \tag{19} \]

Ядро равно нулю при $m=n$, единице при $m=n-1$; при $\alpha=1$ оно сводится к $\delta_{m,n-1}$.

Без внешней силы вероятности прыжков можно взять $P^{(+1)}_n=P^{(-1)}_n=r/2$, $P^{(0)}_n=1-r$, где $r$ — общая вероятность прыжка. Чтобы включить дискретную силу $F_n=f(t_n)$, обновляют вероятности вправо и влево: $P^{(+1)}_n=\tfrac12(r-F_n)$, $P^{(-1)}_n=\tfrac12(r+F_n)$, $P^{(0)}_n=1-r$. Вероятность прыжка на месте не меняется. Стохастическая сила берётся $F_n=V_t/(2\beta D_\alpha)$ для обратной температуры $\beta$ и стохастического процесса $V_t$. Форма силы обсуждается в приложении A.3.

Само правило обновления следует из дискретного master-уравнения реакционно-диффузионной системы для плотности $\varphi^i_n$ на решётке в цене $x_i$ и времени $t_n$. В приложении A.1 показано, что (18) удовлетворяет (15): из уравнения обновления строится метод конечных разностей, берётся дискретное преобразование Лапласа в двойственные переменные, обратное преобразование возвращает к непрерывным цене и времени, затем в соответствующих пределах получается заявленное PDE.

Упростим: положим интенсивность аннигиляции постоянной, $a(x,t)=\nu$ в (4), и аппроксимируем оператор создания source-функцией $s(x,t)$. Получаем уравнение обновления, которым симулируем стакан:

\[ \varphi^i_n=\sum_{m=0}^{n-1}K_{n-m}e^{-(n-m-1)\nu\Delta t} \Bigl[\tfrac12(r-F_{n-1})\varphi^{i-1}_m+\tfrac12(r+F_{n-1})\varphi^{i+1}_m-r\varphi^i_m\Bigr] +e^{-\nu\Delta t}\varphi^i_{n-1}+s(x_i,t_{n-1})\Delta t. \tag{20} \]

Ядро $K_{n-m}$ предвычисляется рекурсивно до значения меньше допуска $\epsilon=0.01$. Соответствующее $n$ — отсечка $n_c$; суммы тогда стартуют с $m=(n-1)-n_c$, то есть используются только последние $n_c$ шагов, что экономит время. Нижняя граница на практике может быть неудобна; помечаем её $m_0$ и трактуем как гиперпараметр модели. Это позволяет получить корректное диффузионное поведение на заданных интервалах (раздел 3.4).

На рис. 2 — пример множества симулированных ценовых траекторий по этой схеме. Тонкая синяя линия — фоновая решётка $L_0$ для выбранной реализации $\{V_t\}$; толстые точки — семплированная траектория в $L_1$. Эти цены соответствуют событиям стакана в текущей формулировке модели и отображаются на наблюдаемые события реального рынка. Жёлтым показаны точки $L_0$ для многих других реализаций. Параметры — из табл. 1.

3.2. Начальные и граничные условия

Из уравнения (9) подходящие начальные и граничные условия для аномальной диффузии получаем так: сначала симулируем систему с обычными диффузионными НУ/ГУ при исчезающих границах до выхода на равновесие; эти поля затем служат начальными условиями для аномальной диффузии. Подробнее — приложение A.5.

3.3. Параметры решётки

Предполагаем, что диффузионный предел существует:

\[ D_\alpha=\lim_{\Delta x\to 0,\,\Delta t\to 0}\frac{r}{2}\frac{\Delta x^2}{\Delta t^\alpha}. \tag{21} \]

Отсюда шаг ценовой сетки через шаг по времени (это принцип неопределённости: при $\alpha=1$ имеем $\langle\Delta x\cdot\Delta x/\Delta t\rangle=2D/r$, ограничивающий допустимые комбинации шагов):

\[ \Delta x=\sqrt{\frac{2D_\alpha}{r}}\,\Delta t^{\alpha/2}. \tag{22} \]

Выбираем $\Delta t$, затем задаём $\Delta x$. Для неравномерно семплированных временных сеток полагаем $\Delta t_m\sim\mathrm{Exp}(\lambda)$ в момент $t_m$. По умолчанию равномерное семплирование с $\Delta t=\mathbb{E}[\Delta t_m]=1/\lambda$. Здесь $\lambda=8$, так что $\Delta t=0.125$ при $D=0.5$, $r=0.5$, $\Delta x=0.5$, $\alpha=1$. Уравнение обновления модифицируется так, что шаги идут по фоновой сетке $(x_i,t_n)$ с равномерными изменениями цены и неравномерными изменениями времени, а прыжки — с ценовыми шагами по (22); см. раздел 3.5.

На практике сначала задают минимальный и максимальный ценовые уровни $x_0$, $x_M$ при выбранном $M$ (среднее число узлов). Отсюда $\Delta x$, затем $\Delta t$ из (22). Это $\Delta t$ задаёт интенсивность $\lambda=\Delta t^{-1}$. Генерируют $M$ времён ожидания $\Delta t_n$. Фоновая решётка $(x_i,t_n)$ строится по $\Delta x$ и $\Delta t_m$; уравнение (20) модифицируется как (24). Сравнение стилизованных фактов на равномерной и неравномерной временных решётках — рис. 5–10.

Таблица 1. Фиксированные и свободные параметры модели. Цены — в валюте счёта [\$], заявки — счётчики [\#], время [$T$] — симуляционные секунды, дисперсия — в единицах [\%]. Символ $[1]$ — безразмерная величина. Влияние неравномерного времени (раздел 3.5) — рис. 5–10. Стилизованные факты при комбинациях свободных $(\alpha,\sigma,\rho)$ — приложение C оригинала.
ПараметрЗначение / диапазонОписание
Фикс.$L$200Макс. лог-цена, $x\in[0,L]$, $p(t)\in[p(0)-L/2,\,p(0)+L/2]$
$M$400Число узлов ценовой сетки, $\Delta x=L/M$ (уравн. 22)
$D_\alpha$0.5Константа диффузии (уравн. 6)
$\nu$0.5Интенсивность снятия лимиток (уравн. 6)
$r$0.5Вероятность прыжка на месте (уравн. 20)
$p(0)$1300Начальный intercept стакана, $\varphi(p(0),0)=0$
$\kappa$1.0Масштаб интенсивности source лимиток (уравн. 11)
$\mu$0.1Масштаб source по ценовой оси (уравн. 11)
Своб.$\alpha$0.6, 0.8, 1.0Параметр дробной диффузии (уравн. 6, 20)
$\sigma$0.5, 1.0, 1.5Дисперсия выборки $V_t\sim\mathcal{N}(0,\sigma)$
$\rho$0.0, 0.8, 0.9Автокорреляция потенциала: $V_t\sim\rho V_{t-1}$
Гипер$\gamma_1$$[1,\infty)$Отношение времён стакана к симуляционным (уравн. 12)
$\gamma_2$$[1,\infty)$Отношение времён сделок к симуляционным (уравн. 13)
$m_0$$[0,M]$Отсечка памяти в сумме ядра: $\sum_{m=0}^{m_0}$ (уравн. 20)

3.4. Зависимость аномальной диффузии

Системе дают время релаксировать к равновесию, затем вводят один импульс при счётчике сделок $\ell=200$ (достаточно большом, чтобы даже самая медленная из рассматриваемых систем успела уравновеситься). Записывают дисперсии спайка по мере его расползания с момента постановки (назначаем $t=0$) в течение 20 единиц торгового времени. Это делается для разных $\alpha$, $\Delta x$ и $m_0$. Результаты — рис. 3 и 4, оба для $\alpha\in\{1.0,0.9,0.8,0.7,0.6\}$.

Рис. 3: $\Delta x=0.5$, $m_0$ выбран так, что при $\alpha=0.6$ система помнит примерно 12 предыдущих сделок; при больших $\alpha$ память дольше. Рис. 4: $\Delta x=0.2$, $m_0$ достаточно велик, чтобы помнить более 15 сделок во всех случаях. Подгонки — табл. 2 и 3. Как отмечают Angstmann et al. (2016), при меньшем $\Delta x$ результат ближе к теории; рис. 4 подтверждает, что численная схема работает как ожидается.

Линия $\alpha=0.6$ на рис. 3 показывает: когда система больше не помнит всю историю (после 13 сделок), диффузия перестаёт совпадать с теорией. Далее в работе используем такое $m_0$, чтобы при $\alpha=0.6$ помнилось не менее 13 предыдущих сделок. На рис. 3 точек больше, чем на рис. 4: из (22) меньший $\Delta x$ требует существенно больше шагов по времени.

Рисунок 3
Рисунок 3. Симулированная дисперсия $\sigma_t$ мгновенных импульсов (лимитки, раздел 4.2.1) от $t$ при $L/M=0.5$. Теория: $\sigma_t=(2D)/\Gamma(1+\alpha)\cdot t^\alpha$ (сплошные). Численная подгонка $\sigma_t=a t^b$ (штрих). Значения — табл. 2. Точность ниже, чем на рис. 4, но больший $\Delta x$ сильно экономит время счёта (приложение B.2).
Таблица 2. Теоретические и измеренные параметры (рис. 3): рост дисперсии спайка, поставленного в одной точке в один момент. Неопределённости — 2 значащие цифры; подгонка — Julia, LsqFit. Оценка точности реализации при выбранных параметрах.
$\alpha$$\sigma_0$ (теор.)$\hat\alpha$$\hat\sigma_0$
1.001.00$1.00000\pm 0.00000$$1.00000\pm 0.00000$
0.901.04$0.90693\pm 0.00019$$1.01610\pm 0.00045$
0.801.07$0.81310\pm 0.00031$$1.02744\pm 0.00075$
0.701.10$0.71829\pm 0.00036$$1.03360\pm 0.00087$
0.601.12$0.62951\pm 0.00039$$1.02130\pm 0.00092$
Рисунок 4
Рисунок 4. То же при $L/M=0.2$. Теория и подгонка как на рис. 3; значения — табл. 3. Подтверждает, что биды и офферы диффундируют в согласии с теоретическими параметрами и валидирует численную реализацию.
Таблица 3. Параметры для рис. 4 ($L/M=0.2$). Неопределённости — 1 значащая цифра.
$\alpha$$\sigma_0$$\hat\alpha$$\hat\sigma_0$
1.001.00$1.00000\pm 0.00000$$1.00000\pm 0.00000$
0.901.04$0.90150\pm 0.00002$$1.03471\pm 0.00004$
0.801.07$0.80262\pm 0.00002$$1.06450\pm 0.00006$
0.701.10$0.70339\pm 0.00002$$1.08811\pm 0.00005$
0.601.12$0.60386\pm 0.00001$$1.10422\pm 0.00001$

Схема неравномерной решётки (оригинал, рис. 6): точки вне фоновой решётки аппроксимируются в уравнении (24) через (25)–(26). Горизонтальная плоскость — фоновая решётка $(x_i,t_m)$; вертикаль — плотности $\varphi^i_m$. Шаги по времени $\Delta t_{m-1}$, $\Delta t_m$ могут быть неравномерны; по цене на фоне все шаги равномерны, $\Delta x$. Частица прыгает в текущую точку $(x_i,t_m)$ на расстояние $\Delta x_m$, не кратное $\Delta x$. Исходные плотности — трёхточечная аппроксимация (26) для $\hat\varphi^{i-1}_m$ и $\hat\varphi^{i+1}_m$.

3.5. Уравнение обновления при неравномерном семплировании

В уравнении (20) неявно предполагалось, что $\Delta t$ и $\Delta x$ постоянны — равномерная решётка. Теперь генерируем последовательность изменений времени $\{\Delta t_m\}_{m=1}^M$ — времена ожидания (в симуляционном времени) между событиями симуляции, интерпретируемые как обновления цены, совпадающие с обновлениями стакана.

Симуляция идёт от $t_0$ до $t_M$. Шаги больше не равномерны: шаг $n-1\to n$ имеет $\Delta t_n$ из некоторого распределения, например экспоненциального. Задают целевую среднюю задержку прихода, генерируют вокруг неё последовательность времён и по ней определяют шаг ценовой (пространственной) сетки в каждый момент. Это возможно, потому что диффузия построена на случайном блуждании, как и стохастические силы: все вероятности не зависят от цены, но сила может зависеть от времени.

Из (22) при фиксированных $D_\alpha$, $\alpha$ и $r$ для каждого $n$ получают последовательность шагов $\{\Delta x_k\}_{k=1}^M$. Через $\Delta x$ обозначаем средний шаг: $\Delta x=\mathbb{E}[\Delta x_k]$. Выбор $\Delta t_{n-1}$ и тем самым $\Delta x_{n-1}$ определяет ценовой зазор, откуда левый и правый прыжки в цену $x^i_{n-1}$ происходят в $t_{n-1}\to t_n$: $x^{i\pm 1}_{n-1}=x_i\pm\Delta x_{n-1}$. Аналогичные значения, специфичные для события, есть у всех ценовых точек $x^i_n$.

Однако $i$-я ценовая точка в момент $t_n$ не обязательно совпадает с $i$-й точкой в момент $t_m$, если та вообще существует. Поэтому вводят фоновую решётку. Две ценовые системы координат: фоновая $(x_i,t_n)$ и прыжковая $x^i_n$. Сначала генерируют фон: неравномерное время, равномерные цены, средний шаг $\Delta x$.

Предполагают аппроксимацию плотностей на фоне $\varphi_\Delta(x,t)$, так что $\varphi^i_n=\varphi_\Delta(x_i,t_n)$. Шаг по цене $\Delta x$, по времени — неравномерные $\Delta t_n$. В момент $t_{n-1}$ с инкрементом $\Delta t_{n-1}=t_n-t_{n-1}$ из (22) находят уникальный ценовой шаг $\Delta x_{n-1}$, затем цены, откуда согласованно с диффузией (в порядке аппроксимации) происходят правый и левый прыжки:

\[ \hat\varphi^{i\pm 1}_m=\varphi_\Delta(x^{i\pm 1}_m,t_m)=\varphi_\Delta(x_i\pm\Delta x_m,t_m). \tag{23} \]

Вероятности левого и правого прыжков не зависят от всей последовательности $\{\Delta x_m\}$, только от последней записи в $n-1$. Напротив, $\varphi$ использует всю историю $\{\Delta x_m\}$: в каждый $t_m$ своё $\Delta t_m$ и своё $\Delta x_m$ относительно фоновых $x_i$. Переписываем (20) как (24), где $\varphi^i_n$ на фоновой решётке:

\[ \varphi^i_n=\sum_{m=0}^{n-1}K_{n-m}e^{-\nu(t_{n-1}-t_m)} \Bigl[\tfrac12(r+F_{n-1})\hat\varphi^{i-1}_m+\tfrac12(r-F_{n-1})\hat\varphi^{i+1}_m-r\varphi^i_m\Bigr] +e^{-\nu\Delta t_{n-1}}\varphi^i_{n-1}+s(x^i_n,t_{n-1})\Delta t_{n-1}. \tag{24} \]

Нужно аппроксимировать $\hat\varphi^{i\pm 1}_m$ по $x^{i\pm 1}_{n-1}$ и $x_i$ в каждый $t_m$. Точка $x_i$ на фоне равномерно семплирована шагом $\Delta x$; точки $x^i_{n-1}$ — на прыжковой решётке. Ценовые узлы прыжков в разные моменты не обязаны совпадать: $x_{i\pm 1}\neq x^{i\pm 1}_m$, потому что $x_i\pm\Delta x\neq x_i\pm\Delta x_m$. Отождествляя фоновые $x_i$ с $x^i_n$,

\[ \hat\varphi^{i\pm 1}_m\approx\varphi_\Delta(x_i\pm\Delta x_m,t_m). \tag{25} \]

В другой момент $t_m$ ищем на фоне точки $(x_k,t_m)$ такие, что $x_k\le x^{i\pm 1}_m\le x_{k+1}$, и берём аппроксимацию первого порядка по середине отрезка:

\[ \hat\varphi^{i\pm 1}_m\approx\varphi^k_m+\frac{x^{i\pm 1}_m-x_k}{2\Delta x}\bigl[\varphi^{k+1}_m-\varphi^{k-1}_m\bigr]. \tag{26} \]

Это покрывает случаи $\Delta t_m>\Delta x$, $\Delta t_m<\Delta x$; при $\Delta x_m=\Delta x$ восстанавливается $\hat\varphi^{i\pm 1}_m=\varphi^k_m$ с фона. Если $x_k=x_{i\pm 1}$, то $\hat\varphi^{i\pm 1}_m\approx\varphi^{i\pm 1}_m+\frac{\Delta x-\Delta x_m}{2\Delta x}[\varphi^i_m-\varphi^{i\pm 2}_m]$. Берём $\Delta t_m\sim\mathrm{Exp}(\lambda)$ с $\Delta t=\mathbb{E}[\Delta t_m]=1/\lambda$.

Эволюция импульса на сетке (оригинал, рис. 7): синие столбцы — плотность $\varphi$ до flash-лимитки объёма $V$; красные — импульс и его растекание. Синий пунктир аппроксимирует равновесную начальную конфигурацию и даёт начальный mid-price по (2). Разность вертикальных чёрных пунктиров — price impact $\Delta p$. Новый mid-price — пересечение красной линии (соединяющей красные столбцы изменённой системы) с осью нулевого объёма. Time=1: импульс $V$ в лог-цене $\tfrac32\Delta x$. Time=2: через шаг симуляции импульс растекается по (20); сила игнорируется, доля $r/2$ заявок уходит в каждую сторону, уже $\Delta p>0$. Два возможных следующих шага: (i) $V$ достаточно мал, intercept остаётся в $[-\tfrac12\Delta x,\tfrac12\Delta x]$; (ii) $V$ достаточно велик, intercept в $[-\tfrac32\Delta x,-\tfrac12\Delta x]$. Порог перехода — критический объём $V_c$ (приложение B.1).

4. Стилизованные факты

4.1. Общие стилизованные факты

На рис. 5–10 строим стилизованные факты алгоритмом раздела 3.1 (обновления стакана через равные интервалы) и алгоритмом раздела 3.5 (события стакана в неравные моменты). Параметры: $\alpha=0.8$, $\rho=0.9$, $\sigma=1.0$. Сначала опишем панели.

Рис. 5(a): траектория $p(t)$ как функция календарного времени, то есть событий $L_0$. Важно смотреть на врезку: мелкие кружки — ненаблюдаемые события $L_0$ (раздел 2.3); они показаны лишь чтобы дать представление о числе шагов, нужных для этих фактов. Крупные кружки — события $L_1$, семплированные обновления стакана.

Семплированные события стакана концептуально совпадают со сделками, которые ожидают измерить в реальных наблюдениях, и только они используются во всех панелях (a)–(f). Рис. 6: лог-доходности за тот же интервал. Рис. 7: распределение логарифма доходностей рис. 6. Рис. 8: соответствующие QQ-графики. Рис. 9: АКФ (снаружи внутрь) знака заявок, лог-доходностей и модуля лог-доходностей. Знак заявки определяется tick rule.

Рис. 10: хвосты доходностей рис. 7. Метод Coles et al. (2001) для превышений порога (библиотека Extremes.jl, построенная вокруг этого описания). Сначала выбирают порог, выше которого график среднего превышения линеен в пределах неопределённости. Процесс автоматизировали: код берёт первое значение, выше которого прямая целиком лежит внутри планок неопределённости mean excess. Это не всегда давало лучшие отсечки. Coles et al. рекомендуют применять правило менее строго, чтобы получить больше экстремумов. Для этого вводят допуск $\zeta$, расширяющий планки в $\zeta$ раз перед подгонкой прямой. Если $\zeta\in[-1,0]$, программа просто берёт верхнюю долю $-\zeta$ данных как экстремумы. Графики mean excess, выбранный $\zeta$ и прямые — во врезках рис. 10; допуск — в правом верхнем углу врезки. Сама панель — return level для экстремумов и обобщённая паретовская подгонка (сплошная), по которой проверяют точность.

ПанельПанельПанельПанельПанельПанель

(a) Mid-price · (b) Лог-доходности · (c) Гистограмма · (d) QQ-plot · (e) АКФ · (f) Экстремумы

Рисунок 5–10. Влияние неравномерного алгоритма (раздел 3.5) против равномерного (раздел 3.1) на стилизованные факты при $(\alpha=0.8,\rho=0.9,\sigma=1.0)$. Красная траектория — равномерное семплирование, $\Delta t_m=\lambda\approx 0.0743$ для всех $m$ (алгоритм выбирает это при $\Delta x=0.5$); она повторяется на всех сравнительных панелях. Синяя — неравномерное: $\Delta t_m\sim\mathrm{Exp}(1/\lambda)$ с $\mathbb{E}[\Delta t_m]=\lambda$. Каждая траектория — около 25 000 событий. Неравномерное семплирование снижает дисперсию доходностей (панель c). Форма траекторий (a) остаётся сопоставимой — легко поверить, что они из одного seed. QQ (d) и mean excess (f) показывают лёгкие хвосты. Автокорреляции прихода информации $\rho$ по-прежнему создают АКФ на панели (e); неравномерная схема на это не влияет. АКФ order-flow по-прежнему затухает быстрее, чем АКФ $|\log\text{-returns}|$. Volatility clustering нет ни в одной схеме.

4.1.1. Равномерное семплирование

Красная траектория на рис. 5–10 соответствует равномерному алгоритму и параметрам по умолчанию. Во-первых, по панели (e): автокорреляции случайного прихода информации $V_t$ и $V_{t-1}$ через параметр $\rho$ успешно вводят корреляции в АКФ — знаки сделок (order-flow), лог-доходности и модуль лог-доходностей. Автокорреляции order-flow затухают гораздо быстрее, чем у модуля лог-доходностей — как на реальных рынках. Во-вторых, QQ-график (d) вместе с mean excess (f) указывает, что распределение доходностей (c) имеет лёгкие хвосты, чего на реальных рынках нет (обсуждение в разделе 5). Наконец, по (b) нет кластеризации волатильности.

4.1.2. Неравномерное семплирование

Синяя траектория использует неравномерное время раздела 3.5 (уравнение (24)). Она разделяет те же общие свойства равномерной траектории с небольшими изменениями. Неравномерный алгоритм снизил дисперсию исходной траектории (панель a). Распределение экстремумов чуть изменилось, но паретовская подгонка по-прежнему хороша. Во врезке задано $\xi=-0.22$, отсечка выбрана вручную (автоматический алгоритм раздела 4.1 не использовался) так, чтобы выше порога правдоподобно лежала прямая внутри неопределённости. Автокорреляции существенно не изменились. Итого: те же стилизованные факты извлекаются неравномерной схемой, что и равномерной. Это важная проверка пригодности неравномерного алгоритма для рыночной симуляции.

4.2. Симулированный price impact

Расписание заявок — тройка $(v_k,x_k,t_k)$ для $k$-й заявки: объём $v_k$, целевая цена $x_k$, момент $t_k$. Price impact и response можно считать для любого расписания. Ниже рассматриваем impact $\mathcal{J}$ для двух расписаний: flash-лимитки (4.2.1) и рыночной заявки (4.2.2). Mid-price $p$ в любой момент определяется кубической сплайн-интерполяцией вместе с неравномерной схемой (раздел 3.5).

На каждом графике меняются два фактора. Во-первых, задержки $\Delta n\in\mathbb{N}^+$ — число шагов в $L_0$ (раздел 2.3) с момента постановки заявки до измерения impact. Во-вторых, объём заявки $Q$. Получаем $\mathcal{J}(\Delta n,Q)\equiv p(n+\Delta n)|_Q-p(n)$, где $n$ — время в $L_0$ прихода заявки. При построении как функции $Q$ рисуют линии $\mathcal{J}_{\Delta n}\equiv\{(Q,\mathcal{J}(Q,\Delta n)):\forall Q\}$ — обычный смысл price impact. Каждая $\mathcal{J}_{\Delta n}$ соответствует impact, который наблюдали бы при разных $\gamma_1$, поскольку здесь $\gamma_1=\Delta n$. В каждом случае 10 разных траекторий (разные пути $V_t$) для неопределённости. Берём $\alpha=1.0$, остальные параметры — табл. 1.

4.2.1. Flash-лимитная заявка

Рассматриваем постановку покупки (положительная) или продажи (отрицательная) по одной резервной цене. Аналитически это импульсная лимитка; к $C$ в уравнении (6) добавляется

\[ s_{\mathrm{LO}}(x,t)=V\,\delta(x-x_0)\,\delta(t-t_0). \tag{27} \]

Это заявка объёма $Q$ по резервной цене $x_0$ в момент $t_0$. Она меняет доступный объём и выбивает систему из равновесия; затем наблюдаем возврат. Так моделируется impact flash-заявок на стакан в целом.

Численно в выбранный момент лимитка высоты $V$ ставится в ценовой узел сетки справа от текущей цены (или на узел, если цена точно на сетке). Это кадр рис. 11–22. Система возвращается к равновесию на остальных кадрах. «Шипы» при первой постановке создают рябь вокруг спайка; можно было бы ожидать проблем на диаграмме impact, но их нет. Поведение точек прыжковой решётки может казаться хаотичным, но система вне равновесия, и это ожидаемо.

ПанельПанельПанельПанельПанельПанельПанельПанельПанельПанельПанельПанель
Рисунок 11–22. Flash-лимитка вблизи текущей цены, неравномерное семплирование (раздел 3.5). Кадры 1–12: моменты симуляционного семплирования. На одном из кадров импульс выбивает стакан из равновесия. Время между обновлениями — неравномерное $\Delta t_m$, отсюда лог-ценовые шаги $\Delta x_m$, отличные от фоновой сетки; точки $p\pm\Delta x_m$ отмечены чёрными звёздами. Неравномерный алгоритм хранит внеузловые аппроксимации фоновых $\varphi$ (сплошная синяя); аппроксимации — пунктир и штрих-пунктир, в легенде $\varphi^{i\pm 1}$. Зелёное — заявки, которые вот-вот добавятся, золотое — которые снимутся.

Нас интересует влияние $\gamma$ на impact. Пусть первый кадр происходит в момент $n$ в $L_0$. Результирующий график impact — рис. 35 как функция размера лимитки $Q$; разные цвета — разные $\Delta n$. Ось $x$ нормирована на полный объём бидов $A$: у flash-лимитки нет единственной естественной нормировки, в отличие от рыночной заявки.

Неравномерный алгоритм влияет на impact. На оси $y$ выделены значения $b_{\Delta n}\equiv\{1/2+(\Delta n-1):\Delta n\in\{1..7\}\}$. Обычно это верхняя граница линии $\mathcal{J}_{\Delta n}$ (приложение C). На первый взгляд это ещё так, но мы утверждаем обратное. Линия $\mathcal{J}_2$ должна быть ограничена сверху $b_2=3/2$, но достигает $5/2$, гладко проходя через барьер $3/2$. Аналогично для больших $\Delta n$. Каждая линия в конце концов становится ограниченной, но мы предлагаем, что верхней границы impact-линий в общем случае нет.

Объяснение простое: в неравномерном алгоритме раздела 3.5 любая точка может получить информацию о точках на расстоянии $\Delta x_m$. При достаточно большом $\Delta x_m$ точка на любом расстоянии от спайка flash-лимитки может узнать о нём мгновенно. Большие $\Delta x_m$ подавлены связью с $\Delta t_m$ из экспоненциального распределения. Конкретный набор верхних границ на рисунке — следствие конкретной реализации $\{\Delta t_n\}$ этой симуляции.

4.2.2. Рыночная заявка

Рыночная заявка требует купить (продать) объём по prevailing best ask (bid). Для крупных заявок это может «пройтись по стакану» (walk the book): потребляются биды (офферы) по более высоким (низким) ценам. Так моделируется price impact.

Заявка объёма $Q$ исполняется против стакана в момент $t$ как одна дочерняя. Нужно найти глубину $x_t(Q)$, на которой исполнение завершится при текущем mid-price $p_t$ и доступной ликвидности $Q=\pm\int_{p_t}^{\pm x_t}\varphi(x,t)\,dx$, затем снять (добавить) нужные заявки в профиль стакана: покупка $(+1)$ или продажа $(-1)$

\[ s_{\mathrm{MO}}(x,t)=\mp\int_{p_t}^{\pm x_t(Q)}\varphi(x,t)\,dx. \tag{28} \]

Численно в соответствующий момент приходит заявка с целевым объёмом $Q$. Начинаем с текущего численного intercept по линейной интерполяции; назовём его $p$. Интегрируем численно от $p$ в нужную сторону, пока не найдём $p'$, такое что площадь между $p$ и $p'$ равна $Q$.

Пусть $p'$ лежит между узлами $x_i$ и $x_{i+1}$, где $x_i$ между $p$ и $p'$, а $x_{i+1}$ сразу снаружи. Обнуляем $\varphi$ во всех узлах между $p$ и $p'$. Берём долю $\xi=|(p'-x_{i+1})/\Delta x|$ — не больше единицы, стремящуюся к нулю, когда $p'$ подходит к $x_{i+1}$. Умножаем $\varphi_{x_{i+1}}$ на $\xi$. Так самый дальний узел гладко идёт к нулю с ростом $Q$; это нужно для гладкой функции impact. Система затем возвращается к равновесию (рис. 23–34).

ПанельПанельПанельПанельПанельПанельПанельПанельПанельПанельПанельПанель
Рисунок 23–34. Крупная рыночная продажа, неравномерное семплирование (раздел 3.5). Кадры 1–12. На одном из кадров приходит крупный sell, исполняемый против текущих бидов. Неравномерные $\Delta t_m$ дают $\Delta x_m$, отличные от фона; $p\pm\Delta x_m$ — чёрные звёзды. Внеузловые аппроксимации $\varphi^{i\pm 1}$ — пунктир. Зелёное — заявки, добавляемые source-членом; золотое — снимаемые.

Снова интересует влияние $\gamma$. Пусть исполнение происходит в момент $n$ в $L_0$. График impact — рис. 36 как функция размера рыночной заявки $Q$; цвета — разные $\Delta n$.

К данным рис. 36 подгоняем две функции. Степенной закон $\Delta p(Q)=aQ^b$ с параметрами $a$, $b$. Логарифм $\Delta p(Q)=c\ln(1+dQ)$. Подгоняя $d$, снимаем необходимость объявлять нормировку $Q$, но это создаёт свои проблемы. Главное: на любом конечном диапазоне от нуля до верхней границы функция $c\ln(1+dQ)$ с двумя нетривиальными параметрами может имитировать квадратный корень (или степенной закон) с точностью подгонки. Логарифм пересечёт квадратный корень дважды и пройдёт снизу вверх и снова вниз. В приложении C оригинала есть версия без неопределённости (одна реализация без $V_t$), где это видно яснее.

Самое очевидное отличие рыночных заявок (рис. 36) от лимиток (рис. 35): каждая линия impact рыночной заявки изначально неограничена сверху. Рыночная заявка может потребить сколько угодно стакана, и мгновенный impact этого примерно квадратный корень. Именно это видно на линии $\mathcal{J}_1$ рис. 36 — она сильнее всего сопротивляется логарифмической подгонке. В общем случае степенной закон и логарифм по шуму в данных не различить. Для этой $\mathcal{J}_1$ диффузионная динамика ещё не успела подействовать на записанную цену: всё движение — от того, как рыночная заявка потребляет лимитки.

Если дать пройти времени в $L_0$ ($\Delta n=2$), impact (оранжевый) сначала отличается от синего, но при достаточно больших объёмах выравнивается. Это соответствует тому, что плоский участок на кадре исполнения может стать достаточно большим, чтобы новый mid-price не был достигнут распространением незатронутых цен (в смысле, близком к приложению B.1) более чем за один шаг $L_0$. Динамика системы не достигает цены целый шаг. При ожидании $\Delta n=7$ ещё большее отклонение от квадратного корня: степенной показатель около $0.7$. Снова видны изломы: можно представить рис. 7 оригинала с исчезнувшими синими столбцами — это визуализация рыночных заявок в области, где $\varphi$ обнулён; красное тогда соответствует первому ненулевому $\varphi$ слева от текущей цены, растекающемуся к ней. Изломы возникают сходным образом.

Limit order impact Market order impact
Рисунок 35–36. Price impact: (слева) flash-лимитка; (справа) рыночная заявка. Кубический сплайн, неравномерное семплирование (уравн. 24), 10 репликаций с разными шумовыми путями $V_t$. Линии — задержки $\Delta n\in\mathbb{N}^+$ шагов в $L_0$ после постановки; $\mathcal{J}_{\Delta n}\equiv\{(Q,\mathcal{J}(Q,\Delta n)):\forall Q\}$, здесь $\gamma_1=\Delta n$. Справа — степенная и логарифмическая подгонки каждой линии. Слева — логарифм объёма flash-лимитки, нормированный на площадь бидовой стороны $A$. Некоторые $\mathcal{J}_{\Delta n}$ проходят через точки $b_{\Delta n}\equiv\tfrac12+(\Delta n-1)$ и не ограничены сверху $b_{\Delta n}$ (см. $\Delta n=2$) — в отличие от линейной интерполяции, где есть изломы. Есть интервал объёмов от нуля до некоторого максимума, на котором $\mathcal{J}_{\Delta n}$ примерно линейна в лог-шкале; длина интервала растёт с $\Delta n$. Врезка: различие $\Delta n=1$ и $\Delta n=2$. Выбор частоты семплирования подлежащей модели влияет на способность flash-заявок сдвинуть цену стакана (раздел 2.4).

4.3. Измерение волатильности и торгового темпа

Рассмотрим степенную функцию impact (Almgren et al., 2005; Tóth et al., 2011; Mastromatteo et al., 2014; Bacry et al., 2015; Kyle, Obizhaeva, 2016; Benzaquen, Bouchaud, 2018):

\[ F(Q)=Y\sigma_D\Bigl(\frac{Q}{V_D}\Bigr)^\delta=\Bigl(Y\frac{\sigma_D}{(V_D)^\delta}\Bigr)Q^\delta. \tag{29} \]

Здесь дневная волатильность $\sigma_D$, дневной проторгованный объём $V_D$, показатель $\delta$ и множитель $Y$ порядка единицы. Вторая запись нужна для сравнения ниже.

Чтобы получить данные, из которых измерить модельный аналог дневного объёма $V_D$ и связанную волатильность mid-price $\sigma_D$ за тот же период, запускаем модель с параметрами по умолчанию на эквивалент 8 часов торговли (раздел 4.1). Повторяем ещё четыре раза с другими seed. Вместе с уже имеющимися данными это эквивалент (по проторгованному объёму) пяти «дней» 8-часовых сессий типичного рынка акций. Seed: $\{3535956730, 4898384128, 5554355463, 0586258657, 3453348462\}$.

Мгновенный торговый темп нужен, чтобы измерить полный объём $V_D$ за сессию, представляющую 8 часов. Темп интегрируют по желаемому периоду: число сделок в единицу времени $D\partial_x\varphi(x,t)|_{x=p_t}$ даёт полный дневной объём по уравнению (3) (Donier et al., 2015; Benzaquen, Bouchaud, 2018). Выражение считают численно. В равновесии производная постоянна во времени и по дням, поэтому вместе с $D$ достаточно объявить длительность измерения. Значение $D\partial_x\varphi|_{p_t}$ оказалось $0.0957$. Полный объём за симулированный 8-часовой день: $V_D=0.0957\times 25000=2392.5$.

Пять симулированных торговых дней режем на срезы, эквивалентные симулированным часам: $32$ «часовых» выборки. Для каждой считаем лог-разность цены от начала периода до конца. Результаты — рис. 37. Отсюда часовая дисперсия флуктуаций цены $\sigma_h^2$. Дневную оцениваем $\sigma_D=\sqrt{8}\,\sigma_h$. Это приближение: диффузия аномальная с $\alpha=0.8$; нам нужно лишь проверить, что множитель $Y$ в (29) порядка единицы. Получено $\sigma_h=52.02$, откуда $\sigma_D\approx 147.15$.

Рисунок 37
Рисунок 37. Распределение часовых изменений цены по пяти симулированным 8-часовым дням (раздел 4.3). По горизонтали — полученные точки (в оригинале указано 40; в тексте основного расчёта — 32 часовых среза). Гистограмма и нормальная подгонка; интересует дисперсия этого распределения.

Из раздела 4.2.2 и табл. 4 приложения известны масштаб и показатель степенной подгонки рыночного impact. Это соответствует $\delta$ и числу в больших скобках уравнения (29). Решая (29) относительно $Y$ так, чтобы численная подгонка совпала с уравнением, получаем $Y=4.58712\pm 0.00096$.

5. Заключение

Исходя из численной схемы Discrete Time Random Walk Angstmann et al. (2016) и расширив её forcing-членом, мы показали, что наша версия схемы генерирует корректное диффузионное поведение во времени. Это видно в табл. 2–3 и на рис. 3–4. Продемонстрировано разнообразие стилизованных фактов при разных параметрах модели (рис. 5–10; дополнительные панели — приложение C оригинала). Это же подчёркивает ограничения модели.

Симуляции — дискретная численная аппроксимация (уравнения (20) и (24)) континуума событий стакана (уравнение (6)), каждое из которых даёт mid-price (уравнение (2)). Торговля в модели сама по себе ненаблюдаема: стакан представлен бидами и офферами, и на границе аннигиляции мгновенно нет ни бидов, ни офферов при prevailing mid-price. Другой взгляд: торговый темп постоянен во времени и задан уравнением (3), так что отдельных trade events нет.

Решение уравнения (6) концептуально непрерывно. Симуляция даёт приближённое решение этого PDE через (20) и (24), но модель всё равно нужно отобразить на наблюдаемые события, которые сами суть дискретный процесс. Хотя дискретизированное уравнение обновления согласовано с непрерывно-временным представлением в соответствующих пределах, при семплировании остаётся неоднозначность модели. Задача семплирования обсуждается в разделе 2.4. Точное множество точек любой численной схемы произвольно и здесь зависит от выбора $\Delta t$, то есть от неизвестного масштаба; поэтому нужно выбирать семплирование, которое индексирует и извлекает события из схемы. Эта свобода интерпретации обсуждалась в разделе 2.3. Она вводит неявный гиперпараметр, который следует тщательно учитывать в каркасе калибровки.

Интерпретация, принятая в этой работе: мы семплируем стакан в моменты внешне заданных сделок. Это потому, что нужны кривые price impact, где объёмы сделок связаны с изменениями mid-price. Сделки помечены $\ell$ и семплируются как целые значения из подлежащего симуляционного времени $t$. Тогда нужно зафиксировать среднее отношение времён ожидания между моментами семплирования, представляющими сделки $\delta t$ (уравнение (13)), и шагами $\Delta t$ фоновой модели стакана.

Чтобы результирующие mid-price сохраняли корректные диффузионные свойства, должно выполняться уравнение (22). Выбор шагов фона $\Delta t$ фиксирует лог-ценовые шаги $\Delta x$, и семплирование должно сохранять свойства этого диффузионного процесса. Поэтому у схемы два типа семплирования. Сначала демонстрируем симуляцию с равномерным семплированием (уравнение (20)). Затем расширяем схему на неравномерное время (уравнение (24)).

В этой постановке можно брать случайные блуждания с разными значениями параметра диффузионного скейлинга $\alpha$ и сравнивать их, семплируя каждое подобающим образом. Получаются распределения с разной дисперсией доходностей и силой автокорреляций, но согласованными диффузиями (приложение C оригинала). Далее показано, что автокорреляции, способные соответствовать реальным рынкам, естественно возникают при введении автокорреляций в случайное блуждание $V_t$, представляющее экзогенный приход информации. Это видно на панелях стилизованных фактов рис. 5–10 (и шире в приложении C).

Желаемое поведение: корреляции order-flow затухают гораздо медленнее, чем автокорреляции модуля лог-доходностей. Можно было бы ожидать, что автокорреляция прихода информации породит и более экстремальные события — однако нет. Несмотря на сильную автокорреляцию $\rho=0.9$, хвосты всех распределений доходностей очень лёгкие. Можно подумать, что тяжёлые хвосты $V_t$ дадут тяжёлые хвосты доходностей; это не так — и ожидаемо в силу диффузионной природы численной схемы. Это не из-за субдиффузии (то же верно при $\alpha=1.0$). Модель, по-видимому, не содержит достаточно самозависимости, чтобы ввести кластеризацию волатильности в ряд доходностей, даже при driving potential с $\rho=0.9$ и $\alpha=0.8$ (даже $\alpha=0.6$ в приложении C). Значит, хотя слабое восстановление медленного затухания АКФ знака сделок относительно модуля доходностей возможно, этого недостаточно: нужный уровень экстремальных событий не восстанавливается из-за сильно диффузионной природы схемы.

Несмотря на это, ключевой вклад работы — показать разумность функций price impact при разных конфигурациях параметров, когда решётка симуляции субсемплируется в присутствии: 1) flash-лимитки и 2) рыночной заявки в симулированном lit-стакане. В этой модели два случая трудно различить при малых родительских заявках, но выбор, чем выбивать систему из равновесия, имеет сильные численные эффекты: первый случай ограничен, второй — нет. Это важно, потому что и степенная, и логарифмическая подгонки выглядят разумными. Выбор степенного закона относительно логарифмической формы зависит от гиперпараметра масштаба семплирования, следующего из необходимости отобразить непрерывно-временную модель на дискретно семплированные данные и численно симулировать её на дискретной сетке. Нужно говорить больше о задействованных масштабах.

Эвристическая проверка часто цитируемой формулы impact (29) даёт множитель $Y$ порядка единицы — примерно $4$, то есть разумную подгонку. Существенно больше работы ещё требуется. Главное: это подчёркивает важность разных выборов семплирования подлежащей модели. Гладкие и эмпирически приемлемые кривые impact получаются при семплировании реже, чем шаг подлежащей модели.

Конкретно исследуем влияние отношения событий семплирования сделок к подлежащим симуляционным временам, то есть влияние выбора $\gamma_2$ (уравнение (13)) на наблюдаемые кривые impact для двух типов родительских заявок с немедленным исполнением. Для flash-лимиток: чем больше шагов симуляции между сделками, тем выше граница спреда лимитки и тем дольше интервал, на котором она линейна в лог-шкале. Для рыночных заявок эффект слабее.

Во всех случаях наблюдаются изломы impact — следствие семплирования, присущего любой численной схеме решения PDE. Изломы на графиках flash-лимиток (раздел 4.2.1) удалось объяснить аналитически (приложение B.1) вместе с ограниченностью impact при равномерной схеме. Далее предложена новая схема, в которой время само становится статистическим процессом; показано, что эта схема (с кубической сплайн-интерполяцией) убирает изломы и ограниченность flash-лимиток и даёт сопоставимые результаты с равномерной схемой для рыночных заявок. Ресемплирование равномерного процесса определяет новый стохастический процесс; мы предполагаем, что у него должен быть хорошо определённый континуальный предел при некоторых выборах неравномерного семплирования, но этого не доказываем.

Вычислительная стоимость важна для крупномасштабной симуляции. Формула роста сложности при уменьшении $\alpha$ — уравнение (67). Даже с конечным ядром памяти есть резкий скачок сложности от $\alpha=1.0$ к чему угодно меньшему, затем умеренный рост до $\alpha=0.6$. Дальше времена счёта быстро становятся неприемлемыми для субдиффузии. Полное ядро в общем случае невыполнимо для длинных прогонов при большинстве $\alpha$.

С учётом стоимости рекомендуем модель с $\alpha=1.0$: нет явного преимущества субдиффузии для стилизованных фактов. Кроме того, рекомендуем неравномерный временной алгоритм: он концептуально упрощает требования к семплированию, сохраняя желаемые черты стилизованных фактов. Вместе их можно использовать для будущей калибровки и симуляции. Снова отметим, однако, что ни то ни другое не породит эффектов, опирающихся на память, — таких, какие нужны для кластеризации волатильности. Поэтому модель в текущем виде нуждается в дополнительных чертах, чтобы генерировать экстремальные события и volatility clustering.

Благодарности. Salahuddeen Ahmad и Etienne Pienaar — за содержательные замечания; Chris Angstmann — за многочисленные полезные беседы; Byron Jacobs — за поддержку.

Приложение A. Аномальная диффузия

Длинные преобразования Лапласа приведены сжато; полные выкладки — в PDF оригинала.

A.1. Уравнение обновления

Реакционно-диффузионные системы моделируют через процессы создания и аннигиляции (Angstmann et al., 2016). Аннигиляция заявок на дискретной сетке — неоднородный пуассоновский процесс с интенсивностью $a_\Delta(x,t)$. Вероятность не быть снятым между $t_m$ и $t_{n-1}$ в ценовой точке $x_i$ — функция выживания (16). Чтобы дойти до $t_n$, заявка должна пережить ещё один шаг: вероятность аннигиляции на $[t_{n-1},t_n]$ равна $A^i_{n-1}=1-\theta^i_{n-1,n}$.

Полная система: приходящие заявки (создание), пережившие снятие, и заявки, пришедшие с соседних ценовых узлов из-за случайных эффектов за $\Delta t$. Вычитая переживших до $t_{n-1}$ в цене $x_i$, получают оставшуюся плотность. Дискретное master-уравнение в момент $t_n$:

\[ \varphi^i_n=C^i_{n-1}+\theta^i_{n-1,n}\varphi^i_{n-1} +\sum_{j=-1}^{+1}\lambda^{i|i+j}_{n-1}\sum_{m=0}^{n-1}K_{n-m}\theta^{i+j}_{m,n-1}\varphi^{i+j}_m -\sum_{m=0}^{n-1}K_{n-m}\theta^i_{m,n-1}\varphi^i_m. \tag{31} \]

Случайные эффекты — вероятности перехода вправо, на месте и влево, $\lambda^{i|i+j}_n=P^{(-j)}_{i,n}$, нормированные $\sum_{k=-1}^{+1}P^{(k)}_{i,n}=1$. Вероятности зависят от времени (forcing зависит от $t$), но не от ценового узла. Подстановка даёт схему (18)/(34) Angstmann et al. Плотность созданных заявок: $C^i_n=c^i_{n-1}\Delta t$.

A.2. Вывод PDE

Из (34) вычитают $\varphi^i_{n-1}$ и используют $A^i_{n-1}\varphi^i_{n-1}=(1-\theta^i_{n-1,n})\varphi^i_{n-1}$. Функцию выживания факторизуют: $\theta^i_{m,n-1}=\theta^i_{k,n-1}/\theta^i_{k,m}$ при $m\le k\le n-1$. Forcing вводят как

\[ f_\Delta(t_n)=\frac{1}{r\beta\Delta x}\bigl(P^{(+1)}_n-P^{(-1)}_n\bigr), \tag{38} \]

так что сила противодействует диффузионным прыжкам. Вероятность прыжка на месте всегда $1-r$; тогда $P^{(+1)}_n=\tfrac12(r+F_n)$, $P^{(-1)}_n=\tfrac12(r-F_n)$ с $F_n=r\beta\Delta x f_\Delta$.

Определяют свёртку $\Phi^i_{k,n-1}\equiv\sum_{m=0}^{n-1}K_{n-m}\varphi^i_m/\theta^i_{k,m}$. Односторонние star-преобразования по времени и цене (решётка $[0,+\infty)$), разложение экспонент до второго порядка, обратное преобразование Лапласа и предел $\Delta x,\Delta t\to 0$ с $D_\alpha$ и оператором Римана–Лиувилля $D^{1-\alpha}_t$ дают уравнение (6)/(56). В отличие от Benzaquen and Bouchaud (2018), которые стартуют с баланса в двойственном пространстве, аппроксимируют диффузионный предел и усекают распределение времён ожидания, здесь начинают с дискретного микроскопического detailed balance в форме Колмогорова (31) и берут диффузионный предел только после преобразований — отсюда согласованная численная схема без усечения траектории.

A.3. Согласованность вероятностей прыжка со стохастической силой

Вероятности $r/2$ смещаются внешней силой. Для заявки, ограниченной двумя соседними ценовыми позициями в потенциале $V(x,t)$,

\[ p^\pm(x,t)=C Z^{-1}e^{-\beta V(x_{i\pm 1},t)},\qquad Z=\sum_{k=\pm 1}e^{-\beta V(x_{i+k},t)}. \]

Если бы сила была единственным источником случайности, $C=1$; здесь она противодействует диффузионным прыжкам, поэтому нормировка $(r/2+r/2)=C$ задаёт $C=r$. Разложение Тейлора даёт $p^+-p^-=-C\beta\Delta x\,\partial_x V+\mathcal{O}(\Delta x^3)$. Сила — градиент потенциала, $f=-\partial_x V$. Выбор $V(x,t)=V_t x/(2D_\alpha\beta)$ даёт в первом порядке $f(t)=V_t/(2D_\alpha\beta)$, согласованно с градиентом потенциала.

A.4. Предел обычной диффузии

При $\alpha=1$ ядро $K_{n-m}=\delta_{n-m,1}$, сумма исчезает, $m=n-1$. Без source и при $\theta$ независимой от цены, $\theta^i_{n-1,n}=e^{-\nu\Delta t}$, без стохастической силы:

\[ \varphi^i_n=\tfrac{r}{2}\varphi^{i-1}_{n-1}+\tfrac{r}{2}\varphi^{i+1}_{n-1}-(r-e^{-\nu\Delta t})\varphi^i_{n-1}. \]

Разложение до первого порядка по $\Delta t$ — простое диффузионное обновление, использовавшееся в предыдущих работах (Gant, 2022).

A.5. Граничные и начальные условия

Если $\theta$ зависит только от времени (случай этой работы), производные коммутируют с $D^{1-\alpha}_t$ и с $\theta$, и (6) факторизуется:

\[ \partial_t\varphi=c-a\varphi+\theta D^{1-\alpha}_t\Bigl[\frac{1}{\theta}\bigl(D_\alpha\varphi_{xx}+V_t\varphi_x\bigr)\Bigr]. \tag{63} \]

Пространственный интеграл $\Phi(t)=\int_{L_1}^{L_2}\varphi(x,t)\,dx$ — чистый объём лимиток. Для стационарности $\partial_t\Phi=0$ достаточны три условия: (i) $\Phi(0)=0$; (ii) $\int c\,dx=0$ во все моменты; (iii) $[D_\alpha\partial_x\varphi+V_t\varphi]_{L_1}^{L_2}=0$ во все моменты. Первое достигается выбором НУ; второе и третье — антисимметричным source (11) и достаточно далёкими границами, где $\varphi$ и $\partial_x\varphi$ нули. Альтернатива — ghost points: $D_\alpha\partial_x\varphi=-V_t\varphi$ на каждой границе отдельно, $\varphi_{i\pm 1}=\varphi_i\mp(\Delta t V_t/D_\alpha)\varphi_i$.

Аналитическое стационарное состояние при $V_t\neq 0$ и аномальной диффузии трудно определить: оператор $D^{1-\alpha}_t$ несёт всю историю $p_t$. Сдвиг в движущуюся систему $y=x-\hat p_t$, $\hat p_t=\int_0^t V_s\,ds$, который убирает $V_t$ при обычной диффузии (Donier et al., 2015), здесь проблематичен: в момент $t'$ intercept в этой же системе был в $p_t-\hat p_{t'}$, и $V_t$ возвращается. Для трактуемости необходимо усечение ядра. На практике: сначала обычная диффузия до равновесия, затем аномальная.

Приложение B. Реализация

Алгоритм 1. Вход: $\{M,x_0,x_M,r,\lambda_t,D_\alpha,\alpha,\nu,\beta,\lambda,\mu\}$ (табл. 1). Вычислить шаги $\{\Delta t_k\}$, $\{\Delta x_k\}$ и средние $\Delta t$, $\Delta x$ (22). Инициализировать фоновую решётку $(x_i,t_n)$ и НУ $\varphi^i_0$. Для всех $n$: задать $\Delta t_n,\Delta x_n$; вычислить больцмановские потенциалы $V_t$; вероятности прыжков $r$, $F_n$; обновить source $s(x_i,t_n,p_n)$; граничные $\varphi^0_n$, $\varphi^M_n$; внутренние точки $\varphi^i_n$ по (24), (26), (19); найти mid-price $p_n=\{x_i:\min|\varphi^i_n|\}$. Вернуть $\varphi^i_n$ и $p_n$ на решётке.

B.1. Изломы price impact

Объясняем «kinks» раздела 4.2.1 при $\alpha=1.0$ и $V_t=0$. Рассмотрим схему импульса (оригинал, рис. 7). Синее — форма стакана вблизи текущей цены, помещённой в $0$ на оси лог-цены; четыре дискретных столбца — дискретизация. Линейная интерполяция между узлами определяет цену. Синее — состояние до flash-лимитки, неизменно на всех кадрах.

Flash-лимитку ставят на расстоянии $1.5\Delta x$ от текущей цены (красное). Через один шаг симуляции красный столбец диффундирует (синие уже в равновесии): доля $r/2$ влево, $r/2$ вправо, $1-r$ остаётся. Новая линейная интерполяция сдвигает текущую цену на $\Delta p$ — линия $\Delta n=1$. Как бы ни был велик красный столбец в $0.5\Delta x$, $\Delta p$ не пройдёт за $-0.5\Delta x$: сверху $\Delta p$ ограничен $\Delta x/2$.

Ещё один шаг даёт две возможности. (c) Частицы, пересекшие ноль, недостаточны, чтобы полностью аннигилировать синие заявки слева от intercept в $-0.5\Delta x$. (d) Их достаточно, чтобы полностью аннигилировать синий столбец в $-0.5\Delta x$ и заменить его положительным красным; intercept уходит в $[-0.5\Delta x,-1.5\Delta x]$. Масштаб красного задаёт только $V$, поэтому существует критический объём $V_c$ перехода (c)$\to$(d).

Система алгебраична: impact flash-заявки размера $V$ считается явно. На схематическом графике $V$ против impact (оригинал, рис. 13) искомый излом в критическом объёме плюс аналитические выражения формы слева и справа; это полностью объясняет оранжевую линию $\Delta n=2$ равномерной линейной интерполяции (лог-шкала). Остальные линии выводятся аналогично.

При линейной интерполяции и равномерном времени (наименее затратный случай) на линиях $\mathcal{J}_{\Delta n}$ есть изломы при пересечении любого $b_{\Delta n}$, и каждая $\mathcal{J}_{\Delta n}$ ограничена сверху $b_{\Delta n}$. Кубические сплайны при равномерном времени убирают изломы в пересечениях $b_{\Delta n}$, но не верхние границы. Границы снимает неравномерное семплирование. Точки, где линии проходят через критические смещения $b_{\Delta n}$, совпадают с изломами линейной схемы — они наиболее устойчивы к выбору интерполяции.

Для рыночных заявок при равномерном времени и линейной интерполяции координаты каждого излома определяются точно: выделенные горизонтальные засечки — объём, который нужно проторговать, чтобы сдвинуть цену на $\Delta x/2$, находится численным интегрированием. После введения неравномерного времени координаты изломов заранее точно не определяются.

Таблица 4. Параметры подгонки степенного $aQ^b$ и логарифмического $c\log(1+dQ)$ законов для рыночного impact: равномерная линейная интерполяция (верхний блок, рис. 15(a) оригинала) и неравномерная кубическая (нижний блок, рис. 16(a) оригинала). Неопределённости — 2 значащие цифры.
$\Delta n=1$$\Delta n=2$$\Delta n=7$
Равномерн., линейн.$a$$1.33702\pm 0.00032$$1.3277\pm 0.0010$$1.19982\pm 0.00033$
$b$$0.54045\pm 0.00049$$0.5888\pm 0.0017$$0.72762\pm 0.00066$
$c$$0.7868\pm 0.0068$$0.9239\pm 0.0057$$1.548\pm 0.012$
$d$$4.619\pm 0.082$$3.314\pm 0.039$$1.197\pm 0.014$
Неравном., сплайн$a$$1.29129\pm 0.00029$$1.28288\pm 0.00056$$1.14056\pm 0.00029$
$b$$0.53823\pm 0.00047$$0.58065\pm 0.00094$$0.67964\pm 0.00060$
$c$$0.7537\pm 0.0064$$0.8696\pm 0.0047$$1.189\pm 0.012$
$d$$4.698\pm 0.083$$3.484\pm 0.036$$1.65\pm 0.026$

B.2. Вычислительная сложность

Пусть моделируют цены на диапазоне $X$ за время $T$, а ядро помнит время $K$ в прошлое (в тех же единицах, что $T$). Число узлов: $M=X/\Delta x$ по пространству, $N=T/\Delta t$ по времени. Из (22) $\Delta t\propto(\Delta x)^{2/\alpha}$, поэтому при $K\ll T$

\[ \text{шаги}\propto\frac{T\cdot K\cdot X}{(\Delta x)^{1+4/\alpha}}. \tag{67} \]

Если ядро помнит всё прошлое, сложность растёт как $XT^2(\Delta x)^{-(1+4/\alpha)}$. В машинном времени: $\alpha=1.00$ — 30 с на 28 000 сделок; $\alpha=0.80$ — 4 ч 35 мин на то же число (ядро помнит $600$ предыдущих шагов симуляции против нуля при $\alpha=1$; $600\times 30\,\mathrm{с}\approx 5$ ч). Обе задачи — Core i5 (11800H), 24 ГБ RAM.

Приложение C. Дополнительные графики

Описания и общие черты раздела 4.1.1 сохраняются на дополнительных панелях оригинала (рис. 18–20), где варьируют сами параметры по умолчанию. Красная траектория везде — default $(\alpha=0.8,\sigma=1.0,\rho=0.9)$.

Варьирование $\alpha$. Зелёное — $\alpha=0.6$, синее — $\alpha=1.0$ (обычная диффузия). Уменьшение субдиффузии снижает дисперсию ценовой траектории. Чем больше $\alpha$, тем сильнее подавлены автокорреляции. Траектории и гистограммы — не просто масштабированные копии друг друга: диффузия меняет динамику так, что пути выглядят взятыми из разных seed. Все три гистограммы пересекаются вблизи $\pm 0.5=\pm\Delta x$.

Варьирование $\sigma$. Зелёное — $\sigma=1.5$, синее — $\sigma=0.5$. Это ближе к чистому масштабированию: большая дисперсия силы растягивает пути и гистограммы, не меняя качественно АКФ так, как $\alpha$.

Варьирование $\rho$. Автокорреляция $V_t$ — главный рычаг АКФ знака, доходностей и $|r_t|$. При $\rho=0$ корреляции в АКФ практически исчезают; при $0.8$–$0.9$ появляется желаемое более медленное затухание order-flow относительно модуля доходностей. Хвосты остаются лёгкими во всех комбинациях; volatility clustering не появляется.

Дополнительные конфигурации impact (равномерное vs неравномерное, линейная vs кубическая интерполяция) — рис. 14–16 оригинала; они подтверждают разбор приложения B.1. Полные панели и TikZ-схемы решётки — в PDF: arxiv.org/pdf/2310.06079.

Литература

Оригинал статьи: Diana and Gebbie, «Non-uniformly sampled simulated price impact of an order-book», arXiv:2310.06079 · опубликовано Journal of Computational and Applied Mathematics, 456:116202, 2025