🧠 Монстр — костяк ультимативной системы
Не калькулятор. Спроектировано как 8 слоёв + петля самообучения, прогнано через adversarial-проверку дыр (которая поймала, что 6 слоёв в лоб конфликтуют), синтезировано в один контур с планом «сначала разминируй, потом строй, валидируй симуляцией ДО live».
Принцип: один поток данных, один владелец на каждый шов, всё валидируется сценарной симуляцией ДО live, число степеней свободы под жёстким контролем. Газ на data-уверенном внутри железных потолков; форвард — единственный судья.
Карта слоёв — P · S · D · A · R · X · L · V
| Слой | Роль | Где в коде (owner) | Темп |
| P Perception | восприятие · новости · поток (funding/OI/ликвидации/CVD) · режим | brief.py + perceive.py | 2ч + (потом) тик 60-120с |
| S Signal | детекция сетапов + единый interaction-движок (как факторы усиливают/гасят друг друга, не сумма) | edge.compute_edge ← interactions.py | в цикле деска |
| D Desk | LLM-арбитр — медленный мозг, выдаёт намерение | desk.py | 2ч |
| A Arming/Timing | «когда войти» — не на сигнале сразу, ждать лучшую точку. ОДИН механизм | open_new rr-gate → arming.py | guard 2мин |
| R Risk+Portfolio | сайзинг по уверенности · ruin-guards · ротация с гейтами · ведение | portfolio.py + risk.py + trail.py | цикл + guard |
| X Execution | ордера · нативные стопы | monster_executor + bybit_demo | — |
| L Learning/Shadow | теневая книга (все сигналы, взятые И нет) + калибровка | shadow_log + shadow_sim + calibration | 1×/сутки |
| V Verify | selfcheck-инварианты + баг-трекер | selfcheck.py + bugtracker.py | каждый цикл |
Поток данных — один контур, три темпа
ГОРЯЧИЙ (2ч) perceive→brief(P) → edge+interactions(S) → desk(D) → rr-gate(A)
→ portfolio: ранг+сайз+ротация(R) → executor(X) → нативные стопы
ЧАСТЫЙ (2мин) mark_and_close → trail(R) ; arming.evaluate(A)
ХОЛОДНЫЙ (сутки) shadow_sim (через sim_pnl) → calibration(L) → policy (апрув)
ОБРАТНАЯ ПЕТЛЯ calibration → [gate sim≈real] → desk_memory → desk(D)
Как быстрый тайминг уживается с медленным LLM-деском: деск думает редко (2ч) и выдаёт намерение (пара/сторона/тезис/инвалидация). Быстрый guard (2мин) НЕ зовёт LLM — он держит идею живой и ловит момент входа детерминированными правилами. Деск = стратег, guard = снайпер. LLM нигде в горячем пути.
План внедрения — каждая фаза валидируется ДО live
0Разминирование БЛОКЕР — до любой фичи
- 🔴 Закрыть «бэктест≠live» (BUG-013): тест что features на баре T идентичны в live и бэктесте. Под ним стоят ВСЕ слои — трещина в фундаменте.
- 🔴 Модель издержек в симуляции (спред + проскальзывание по ликвидности + impact на цену от своего входа). Без неё теневая книга врёт «упущенную прибыль» в сторону снятия защит → слив.
- Весь контрфактуал — только через проверенный `sim_pnl` + тест на отсутствие lookahead. Назначить владельца каждому шву.
1Ядро ценности — чистое, тестируемое без LLM/биржи
- Единый `interactions.py` (один множитель, не четыре конфликтующих) + `edge.rr_factor`.
- `portfolio.py`: ранг → сборка портфеля → гейтированная ротация (F1–F7) + тонкий `open_new`.
- Теневая книга ★ твоё: одна таблица `signals` — лог ВСЕХ сигналов (взятых и заблокированных) в каждой continue-ветке.
- Настоящие ruin-guards (portfolio-heat, дневной убыток). TDD на всё.
2Валидация симуляцией — ДО live
- Прогнать на 3 OOS-окнах: ценовые оси, rr, издержки ротации.
- Калибровка ★ твоё: edge=0.7 реально даёт 70%? Reliability-кривая на ВСЕХ сигналах (не только взятых — против survivorship bias).
- Блокирующий гейт: калибровка НЕ идёт в память деска, пока симуляция ≈ реальности. Заморозка констант (нет 3-окон → нет новой константы = анти-overfit).
3Forward на demo — shadow-first, нулевой риск
- Теневая книга + guards включены (не трогают живой вход). Накопить ≥100 закрытых сигналов.
- A/B против тупого жадного бенчмарка: доказать, что interaction/ротация/тайминг реально добавляют, а не кажутся.
4Тайминг входа и ведение — только если форвард доказал нужду
- ОДИН механизм входа (`arming.py` ИЛИ лэддер, не оба) + трейл (runner-фаза).
- Единый источник TTL/кулдаунов (анти-churn — иначе arming×rotation×runner гоняют пару A→B→A).
- `policy_proposer` (веса/пороги) — предлагает, применяется через твой апрув.
Что могло сломаться — и как план это закрывает (adversarial)
Теневая книга без модели издержек врёт — «кэп стоил $X» завышает упущенную прибыль → давит снять защиты → слив. На альтах/мемах impact съест весь «упущенный край». → Фаза 0.2: издержки в sim ДО любого ledger.
6 слоёв перезаписывают edge/open_new — четыре множителя взаимодействия перемножились бы дважды, edge поехал бы неконтролируемо. → Фаза 0.4 + один owner на шов, схлопывание до кода.
Бэктест≠live не закрыт, а все слои на нём стоят → скрытый lookahead везде. → Фаза 0.1, блокер №0, не «заодно».
Петля закрепляет плохое — sim-bias → память деска → калибровка «подтверждает» враньё. → блокирующий гейт sim≈real перед памятью.
Churn/переобувание (тот самый косяк ротации ×3) — arming×rotation×runner с несинхронными таймерами гоняют одну пару. → единый TTL-контур + гейты F1–F7 (не рубить победителей, кулдаун, fee-aware).