Одноногий режим (One-Legged)
Актуально на 14.10.2026. Источники:
spreadracer-v3-trading-agent(execution/engine.py,execution/position_manager.py,market_data/), бэкендtrading_fork_consumer.py(Telegram-уведомления).
Суть стратегии OL: якорь (DEX-пул через GMGN или эталонная CEX) двигается первым, таргет-CEX отстаёт. Позиция открывается только на таргете одной ногой (long или short — автоматически), прибыль — на схождении таргета к якорю.
Ключевые правила
| Аспект | Поведение |
|---|---|
| Сторона позиции | Автоматически: сторона с большим эффективным спредом (сырой − медиана 5 мин) |
| Спред входа | Walked-цена стакана таргета (ask для long, bid для short) против книги якоря |
| Импульс (jump) | Якорь сдвинулся за 5 с ≥ порога, движение однонаправленно за 10 с, eff-спред ≥ порога |
| Отклонение (deviation) | Достаточно эффективного спреда — постоянный базис сам по себе не стреляет |
| Заявка входа | Лимитная по walked-цене × (1±slippage), снап на тик; ожидание фила 2 с, до 4 попыток cancel/refetch |
| GSL (глобальный стоп) | При входе: mid_якоря × (1 ∓ k·size); jump k=0.4·mv, deviation k=0.5·max(eff, 4%). Выход по рынку при пробое ≥ 1 с |
| Выход по схождению | Exit-спред ≥ порога (минус медиана противоположной серии) → рыночный reduce-only |
| Выходы всего | Схождение, GSL, ручной CLOSE/STOP. Тейк-профит-трала нет |
| Якорь | Не торгуется никогда; DEX-котировка старше 10 с блокирует и вход, и выход |
| Бумажный режим | Та же логика сигналов, исполнение виртуальное по walked-ценам |
Уведомления (Telegram)
Торговый агент публикует события в Redis-стрим fork:events, бэкенд слушает его и шлёт владельцу через trading-бота:
- Вход — сторона (Лонг/Шорт), фактический спред, медиана спреда (5м), эффективный спред, цена входа, плечо, маркер «(бумажная сделка)».
- Выход — причина (
convergence/global_stop_loss/ manual), цены филов. - Ошибки —
ENTRY_MISSED(вход не состоялся, мониторинг продолжается),ENTRY_FAILED(откат невозможен — форк в ошибке),EXIT_FAILED.
Live-спред для карточки триггера публикуется каждый тик в spread:{user}:{fork_id}.