Деск идёт к go-live — переходу от paper к реальному капиталу — через 30-дневный честный трек. «Честный» здесь — не маркетинговое слово, а закодированное правило. Этот модуль — про то, как именно деск отказывается врать самому себе о собственном результате.
Считаются только evidenced-дни
Gate spa_core/paper_trading/golive_checker.py — это 29 критериев (v6.0). Два из них —
min_track_days_30 и gap_monitor_30d — считают
ТОЛЬКО equity-бары, датированные днём реального daily-cycle (evidenced). Бары из
backfill, demo, warmup или до anchor'а — не считаются вообще.
Почему backfill не считается
Соблазн очевиден: «у нас же есть исторические данные за месяцы — давайте покажем длинный красивый трек». Но backfill-бар — это не прожитый день: система не принимала по нему реальных решений в реальном времени, kill-switch по нему не срабатывал, цикл его не порождал. Засчитать его в track record — значит сфабриковать опыт, которого не было.
Go-live строже kill'а
Порог просадки для go-live — GOLIVE_MAX_DRAWDOWN_PCT = 5.0, и это намеренно
SOFT-derisk tier (5%), а НЕ HARD-kill (10%). То есть трек обязан держаться
под 5% drawdown, чтобы считаться готовым к реальному капиталу — планка строже, чем
та, что просто останавливает торговлю.
Time-gated: нечего чинить, нужно ждать
Когда min_track_days_30 / gap_monitor_30d показывают «не пройдено» — это
не баг. Они помечены TIME_GATED_CRITERIA: проваливаются исключительно
потому, что ещё не накопилось 30 evidenced-дней. Кодом тут чинить нечего — цикл должен просто
продолжать работать день за днём.
Живой трек
Ниже — живой go-live трек с боевого API (/api/v1/golive): сколько evidenced-дней
набрано, сколько критериев пройдено, и что ещё time-gated.