Перейти к содержимому
← Назад к документации

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 дополнительно ограничивает перекос: ценовая балансировка — экономический механизм, а риск-контуры страхуют от экстремального роста позиции (см. Архитектура).

См. также