November 6

Дневник. SDEX Market Maker - SHADOW №1: логика подтверждена

Получили полноценный результат первого теневого эксперимента.
SHADOW №1 прошёл проверку логики NORMAL / REBALANCE.
Перед переносом в LIVE нужно дополнить систему учётом доступного инвентаря.
И главное: за этот период SPREAD25 показал результат лучше простого удержания портфеля.

1. InventoryMode — результат положительный

За 3 часа 5 минут наблюдения:

Три полных цикла REBALANCE:

Что особенно хорошо:

  • При избытке XLM уменьшался именно BID
  • ASK оставался на 100%
  • При усилении перекоса ограничение становилось сильнее
  • Возврат в NORMAL происходил без хаотичных переключений

Самый показательный эпизод: при 70.07% XLM размер BID упал до 49.6%, после восстановления доли до 56.97% модель спокойно вернулась в NORMAL.

PROTECT пока не проверен (максимум был 70.1%, порог — 75%).

2. Что реально сделал SPREAD25

Реальные исполнения на Stellar (не виртуальные решения):

Средние цены (VWAP):

Хороший результат исполнения: средняя цена продажи заметно выше средней цены покупки.

3. Изменение стоимости портфеля

+40.06 AQUA (+0.1433% mark-to-market)

Сравнение с пассивным удержанием:

  • Преимущество над удержанием начальных количеств: +27.21 AQUA
  • Дополнительные зачисления AQUA ≈ 5.20
  • Преимущество после их исключения: ≈ +22.01 AQUA

Это предварительное преимущество торговой активности над Buy & Hold. Не окончательная доказанная реализованная прибыль, но уже сильный позитивный сигнал.

Балансовая сверка почти закрыта (остаток XLM −0.003 — скорее всего комиссии).

4. Важный архитектурный вывод

Существующий Fill Guard уже контролирует не только общую долю XLM, но и доступный инвентарь с учётом открытых ордеров.

Поэтому нельзя просто заменить старый Inventory Guard новым InventoryMode. Нужно чётко разделить слои:

  • InventoryMode — экономическое направление (когда и насколько ограничивать покупки/продажи)
  • Fill Guard — техническая безопасность (доступные остатки + прогноз полного исполнения)
  • Execution Layer — формирует реальные размеры ордеров только после прохождения обеих проверок

Эти слои не должны отменять защиту друг друга.

Вердикт и следующий этап

Переходим к SHADOW №2

Сохраняем фиксированный спред 25 bps и добавляем три механизма:

  1. Inventory Cost — учёт себестоимости XLM (новые покупки отдельно от старого остатка)
  2. Inventory Age — сколько времени каждая партия XLM находится в портфеле
  3. Markout — оценка качества исполнения через 1 / 5 / 15 минут после реальных сделок

Это позволит понять не только то, что бот покупает дешевле, чем продаёт, но и действительно ли он выбирает удачные моменты и сколько капитала «замораживается» из-за долгого удержания инвентаря.

SPREAD25 не трогаем. Динамический спред откладываем.