Руководство по интеграции
Обновлено: 2026-07-04
*Дисклеймер: Данный материал носит исключительно информационный характер и не является финансовой рекомендацией.*
## Как оценить позицию лимитного ордера в очереди стакана L2?
Так как биржи скрывают идентификаторы ордеров в L2 обновлениях, позиция в очереди моделируется математически. Алгоритм оценивает объем перед ордером, вычитая сделки и пропорционально распределенные отмены. Если расчетная вероятность исполнения падает ниже допустимого минимума, ордер отменяется во избежание рисков неблагоприятного отбора.
### Введение
При торговле лимитными ордерами (Limit Orders) биржа исполняет их по принципу **FIFO** (First-In, First-Out): ордера, выставленные раньше по той же цене, исполняются первыми. Знание своей позиции в очереди (Queue Position) позволяет оценивать вероятность исполнения ордера до изменения цены и вовремя отменять неэффективные заявки.
### Моделирование позиции в очереди стакана
Поскольку биржи не раскрывают точные индентификаты ордеров в публичном потоке данных L2 (Order Book Updates), позиция ордера в очереди оценивается математически.
При отправке ордера объемом \(D\) по цене \(p\), текущий объем на этом ценовом уровне равен \(V_0\). В этот момент перед нашим ордером находится объем \(Q_0 = V_0\). Со временем позиция в очереди меняется из-за сделок (рыночные ордера уменьшают очередь спереди) и отмен (cancel events уменьшают как спереди, так и сзади нас).
### Расчет остаточного объема перед ордером
В момент времени \(t\) объем перед нашим ордером \(Q_t\) рассчитывается по приближенной формуле:
\[ Q_t = Q_{t-1} - Trade_t - C_t \cdot \frac{Q_{t-1}}{V_{t-1}} \]
Где:
- \(Trade_t\) — объем сделок, совершенных по цене \(p\) за шаг времени,
- \(C_t\) — объем отмененных лимитных ордеров на данном уровне,
- \(\frac{Q_{t-1}}{V_{t-1}}\) — вероятность того, что отмененный ордер находился в очереди перед нами (предполагая равномерное распределение отмен).
### Оценка вероятности исполнения (Fill Probability)
Вероятность исполнения ордера за время \(T\) оценивается на основе интенсивности входящих рыночных сделок \(\lambda_{mkt}\):
\[ P(\text{Execution}) = 1 - e^{-\lambda_{mkt} \frac{T}{Q_t}} \]
Если оценка вероятности исполнения \(P(\text{Execution})\) падает ниже `min_fill_probability` (0.65) или время нахождения в очереди превышает `max_queue_delay_ms` (3 секунды) без исполнения, ордер отменяется (`cancel_limit_order`), так как удержание старого ордера в хвосте очереди повышает риск неблагоприятного отбора при развороте цены.
*Дисклеймер: Данный материал носит исключительно информационный характер и не является финансовой рекомендацией.*
## Как оценить позицию лимитного ордера в очереди стакана L2?
Так как биржи скрывают идентификаторы ордеров в L2 обновлениях, позиция в очереди моделируется математически. Алгоритм оценивает объем перед ордером, вычитая сделки и пропорционально распределенные отмены. Если расчетная вероятность исполнения падает ниже допустимого минимума, ордер отменяется во избежание рисков неблагоприятного отбора.
| Переменная | Описание | Роль в формуле |
|---|---|---|
| $Q_t$ | Объем перед ордером | Определяет текущий остаточный объем в очереди до нашей заявки. |
| $Trade_t$ | Рыночные сделки | Вычитаются напрямую, так как исполняют ордера спереди очереди (FIFO). |
| $C_t$ | Объем отмененных лимитов | Оценивается пропорционально доле очереди перед нами ($Q_{t-1} / V_{t-1}$). |
| $P(\text{Execution})$ | Вероятность исполнения | Рассчитывается на основе интенсивности сделок; порог отмены < 0.65. |
### Введение
При торговле лимитными ордерами (Limit Orders) биржа исполняет их по принципу **FIFO** (First-In, First-Out): ордера, выставленные раньше по той же цене, исполняются первыми. Знание своей позиции в очереди (Queue Position) позволяет оценивать вероятность исполнения ордера до изменения цены и вовремя отменять неэффективные заявки.
### Моделирование позиции в очереди стакана
Поскольку биржи не раскрывают точные индентификаты ордеров в публичном потоке данных L2 (Order Book Updates), позиция ордера в очереди оценивается математически.
При отправке ордера объемом \(D\) по цене \(p\), текущий объем на этом ценовом уровне равен \(V_0\). В этот момент перед нашим ордером находится объем \(Q_0 = V_0\). Со временем позиция в очереди меняется из-за сделок (рыночные ордера уменьшают очередь спереди) и отмен (cancel events уменьшают как спереди, так и сзади нас).
### Расчет остаточного объема перед ордером
В момент времени \(t\) объем перед нашим ордером \(Q_t\) рассчитывается по приближенной формуле:
\[ Q_t = Q_{t-1} - Trade_t - C_t \cdot \frac{Q_{t-1}}{V_{t-1}} \]
Где:
- \(Trade_t\) — объем сделок, совершенных по цене \(p\) за шаг времени,
- \(C_t\) — объем отмененных лимитных ордеров на данном уровне,
- \(\frac{Q_{t-1}}{V_{t-1}}\) — вероятность того, что отмененный ордер находился в очереди перед нами (предполагая равномерное распределение отмен).
### Оценка вероятности исполнения (Fill Probability)
Вероятность исполнения ордера за время \(T\) оценивается на основе интенсивности входящих рыночных сделок \(\lambda_{mkt}\):
\[ P(\text{Execution}) = 1 - e^{-\lambda_{mkt} \frac{T}{Q_t}} \]
Если оценка вероятности исполнения \(P(\text{Execution})\) падает ниже `min_fill_probability` (0.65) или время нахождения в очереди превышает `max_queue_delay_ms` (3 секунды) без исполнения, ордер отменяется (`cancel_limit_order`), так как удержание старого ордера в хвосте очереди повышает риск неблагоприятного отбора при развороте цены.