Дневник. SDEX Market Maker - разбор 6 часов и критический баг
Проанализировал шестичасовой период работы маркет-мейкера. Картина получилась показательной: есть признаки рабочего ценового преимущества, но существенной чистой прибыли пока нет. И главное - обнаружен конкретный сбой защиты XLM, который важнее любой оптимизации доходности.
1. Качество данных
Сначала очистил статистику от дублей:
39 точных повторов в исполнениях и 8 в транзакциях. Без очистки статистика сильно искажалась бы (лишние 5,17 XLM продаж и 0,97 XLM покупок).
Есть и неполнота: CSV с исполнениями обрывается в 05:27 UTC, а журнал бота идёт до 09:24. Последние ~57 минут периода в файл не попали. Именно в конце этого окна произошёл заметный сдвиг балансов (XLM вырос, AQUA упал), которого нет в fills.
2. Качество исполнения
Средняя цена продажи выше средней цены покупки на 0,40 AQUA/XLM (~6,66 bps).
Ещё интереснее сравнение с предыдущим mid:
- Покупки XLM исполнялись в среднем на +11,55 bps лучше предыдущего mid
- Продажи XLM - на +8,28 bps лучше
Это хороший сигнал: котировки в целом дают ожидаемое ценовое преимущество. Пока нет оснований сужать или расширять спред 20 bps.
3. Финансовый результат
Оценка торгового капитала бота:
Полная оценка портфеля по рынку даёт примерно от +1,84 до +4,96 AQUA на капитале ~19 142 AQUA. Это +0,01–0,03%.
Стратегия за эти шесть часов была близка к безубыточной. Есть качество исполнения, но пока нет убедительной чистой доходности.
4. Критический баг: пробит страховой пол XLM
В 09:08:47 бот выставил ASK на 3,9914 XLM.
Уже через 10 секунд расчёт показал:
Предупреждение было, но ASK оставался в рынке. Только через минуту бот решил отключить ASK, а к 09:10:11 фактический баланс уже составлял 17,70 XLM - ниже установленного минимума 18.
Ниже пола бот пробыл в семи подряд снимках.
Что нужно исправить
Проверка должна быть жёсткой и учитывать не только текущий баланс, но и весь открытый ASK:
Если условие нарушается — ASK нужно блокировать или немедленно сокращать. Одного предупреждения в логе недостаточно.
5. Перекос инвентаря
Доля XLM в торговом капитале снизилась с 65% до 58% - движение в сторону целевых 50%.
Но при полном исполнении всех открытых ордеров проекция уходит до 43% и ниже (в одном снимке даже до 37%).
Текущая защита 30–70% слишком широкая. Нужно лучше контролировать сценарий «если исполнятся все заявки».
6. Инфраструктура
- 57 успешных перестановок
- 5 неуспешных транзакций
- Несколько переключений Horizon и две паузы из-за рассинхронизации снимков
- Failover и реконсиляция отработали, бот не остановился
Работает, но идеальной стабильности ещё нет.
Приоритеты
- Обязательно - исправить защиту страхового остатка XLM (учитывать ASK liability).
- Усилить контроль сценария полного исполнения сетки относительно целевой доли 50%.
- Только после этого заново оценивать прибыльность на полных данных.
Параметры (спред 20 bps, cooldown 60 сек, три уровня) пока не трогаем.
Итог: ценовое преимущество есть, чистой прибыли пока почти нет, а вот дыра в защите XLM - реальная и требует немедленного закрытия.