Руководство по интеграции
### Введение
При отправке крупных рыночных ордеров (или условных ордеров, исполняющихся как taker) цена исполнения ухудшается по мере пробития уровней стакана. **Depth Liquidity Policy** в реальном времени эмулирует исполнение ордера по стакану (Depth Sweep) и рассчитывает средневзвешенную цену ($Avg\_Price$), чтобы заблокировать сделки с избыточными издержками.
### Алгоритм симуляции (Depth Sweep)
1. **Проход по уровням стакана**: Бот последовательно списывает доступный объем ордеров (qty) из книги котировок (bids для продажи, asks для покупки):
\[ Qty_{filled} = \sum_{i=1}^{k} Level\_Qty_i \]
2. **Обработка "хвоста" (Tail Penalty)**: Если объема стакана недостаточно для полного исполнения ордера (остается $Qty_{remaining} > 0$), бот моделирует покупку/продажу остатка по виртуальной штрафной цене. Штраф рассчитывается от цены последнего доступного уровня стакана ($Price_{ref}$):
* Для **SELL**: $Price_{tail} = Price_{ref} \times (1 - \frac{Tail\_Penalty}{10000})$
* Для **BUY**: $Price_{tail} = Price_{ref} \times (1 + \frac{Tail\_Penalty}{10000})$
где `tail_penalty_bps = 5.0`.
3. **Метрики качества исполнения**:
* **Displayed Coverage Ratio (Покрытие стакана)**: Доля объема ордера, обеспеченная реальными заявками в стакане. Должна быть $\ge 75\%$ (`min_displayed_coverage_ratio = 0.75`).
* **Sweep Slippage Bps (Проскальзывание в базисных пунктах)**:
\[ Slippage_{bps} = \frac{|Avg\_Price - Best\_Price|}{Best\_Price} \times 10000 \]
Если $Slippage_{bps} > 3.0$ базисных пунктов, или покрытие стакана ниже 75%, демон отклоняет выставление ордера (`reject_execution`), спасая от входа в неликвидный рынок.
При отправке крупных рыночных ордеров (или условных ордеров, исполняющихся как taker) цена исполнения ухудшается по мере пробития уровней стакана. **Depth Liquidity Policy** в реальном времени эмулирует исполнение ордера по стакану (Depth Sweep) и рассчитывает средневзвешенную цену ($Avg\_Price$), чтобы заблокировать сделки с избыточными издержками.
### Алгоритм симуляции (Depth Sweep)
1. **Проход по уровням стакана**: Бот последовательно списывает доступный объем ордеров (qty) из книги котировок (bids для продажи, asks для покупки):
\[ Qty_{filled} = \sum_{i=1}^{k} Level\_Qty_i \]
2. **Обработка "хвоста" (Tail Penalty)**: Если объема стакана недостаточно для полного исполнения ордера (остается $Qty_{remaining} > 0$), бот моделирует покупку/продажу остатка по виртуальной штрафной цене. Штраф рассчитывается от цены последнего доступного уровня стакана ($Price_{ref}$):
* Для **SELL**: $Price_{tail} = Price_{ref} \times (1 - \frac{Tail\_Penalty}{10000})$
* Для **BUY**: $Price_{tail} = Price_{ref} \times (1 + \frac{Tail\_Penalty}{10000})$
где `tail_penalty_bps = 5.0`.
3. **Метрики качества исполнения**:
* **Displayed Coverage Ratio (Покрытие стакана)**: Доля объема ордера, обеспеченная реальными заявками в стакане. Должна быть $\ge 75\%$ (`min_displayed_coverage_ratio = 0.75`).
* **Sweep Slippage Bps (Проскальзывание в базисных пунктах)**:
\[ Slippage_{bps} = \frac{|Avg\_Price - Best\_Price|}{Best\_Price} \times 10000 \]
Если $Slippage_{bps} > 3.0$ базисных пунктов, или покрытие стакана ниже 75%, демон отклоняет выставление ордера (`reject_execution`), спасая от входа в неликвидный рынок.