Pricing Engine
Pricing Engine — ключевой компонент модуля. Его принцип: цена должна учитывать не только рынок, но и позицию системы. Кроме рыночного курса и базового спреда в цену входит поправка на текущее состояние инвентаря — так цена становится инструментом балансировки позиции.
Формула итогового курса
final_rate = market_rate * (1 + base_spread) * (1 + inventory_skew)
- market_rate — рыночный курс пары.
- base_spread — базовый спред: маржа системы на сделке.
- inventory_skew — поправка на состояние инвентаря (положительная или отрицательная).
Inventory skew
Поправка пропорциональна относительному отклонению инвентаря от целевого уровня:
inventory_skew = k * (inventory_delta / target_balance)
где:
k # коэффициент чувствительности: насколько сильно позиция влияет на цену
inventory_delta = current_balance – target_balance # см. Inventory Model
target_balance # целевой уровень инвентаря
- Чем больше k, тем агрессивнее цена реагирует на перекос позиции.
- При inventory_delta = 0 поправка равна нулю: final_rate = market_rate * (1 + base_spread).
Поведение системы
| Состояние инвентаря | Знак skew | Эффект на цену BTC | Стимул для клиентов |
| Избыток BTC (inventory_delta > 0) | skew > 0 → поправка снижает цену актива | Цена BTC ↓ | Стимулируем покупку BTC клиентами (фаза Release) |
| Дефицит BTC (inventory_delta < 0) | skew < 0 → поправка поднимает цену актива | Цена BTC ↑ | Стимулируем продажу BTC клиентами (фаза Fill) |
Логика контура: избыток актива делает его покупку клиентами выгоднее — поток покупок растёт, инвентарь разгружается. Дефицит поднимает цену — клиентам выгоднее продавать актив системе, инвентарь пополняется. Цена сама возвращает позицию к целевому уровню.
Числовой пример
market_rate = 100000 USDT/BTC
base_spread = 0.004 # 0.4%
current_balance = 3.2 BTC
target_balance = 2.5 BTC
inventory_delta = 0.7 BTC # избыток
k = 0.05
inventory_skew = 0.05 * (0.7 / 2.5) = 0.014
final_rate = 100000 * (1 + 0.004) * (1 – 0.014)
= 100400 * 0.986
= 98994.4 USDT/BTC
Интерпретация: при избытке BTC итоговый курс оказывается ниже рыночного с базовым спредом (100 400 → 98 994.4) — клиентам выгоднее покупать BTC, и система разгружает инвентарь. Знак применения skew зависит от стороны сделки: на покупку актива клиентом поправка снижает цену, на продажу — работает зеркально; детерминированный результат виден в расчёте курса по конкретному направлению.
Практические замечания
- Подбор k. Малое k делает цену почти нечувствительной к позиции (медленная балансировка), большое — агрессивно двигает курс и может ухудшать позицию в мониторингах. Начинайте с консервативных значений.
- Взаимодействие со слоями курса.inventory_skew применяется поверх базовой ценовой модели платформы (см. Формирование курса): сначала рыночный курс и спреды, затем поправка на инвентарь.
- Risk Engine дополнительно ограничивает перекос: ценовая балансировка — экономический механизм, а риск-контуры страхуют от экстремального роста позиции (см. Архитектура).
См. также