Roadmap¶
Это рабочая дорожная карта Whaler v42. Она фиксирует инженерный путь от текущего research/live кандидата к лицензируемому software tenant для частных и институциональных клиентов.
Whaler не позиционируется как фонд и не обещает доходность. Текущая модель - лицензия ПО, изолированный tenant, paper/live parity, аудит решений и контролируемый переход к реальным ордерам.
Статус сейчас¶
На текущий момент база v42 такая:
signal: Decima-8 v42 как редкий s300-сенсор шорта/опасности
press: level-v3
phase: s1800, lookback=224
carry phase: s1800 consensus 48/72/224
memory: utc-day=288
VSB: utc-day-first-trade / utc-day-row / bootstrap 16
press research: causal s1800 move w48 selector, gain shelves 1.00/1.25
director: phase-carry long + Decima interrupt + ступенчатый short
short arm: drop-or-push, confirm 50 bps, min push 65 bps, expire 33 frames
signal-arm edge expiry: 6 frames, min MFE 10 bps
position_manager: long_trail_75/50 + causal reclaim/failure guard + causal direct-short lifecycle
direct short protection: fast 300/100 + graded maturity age 72..126, MFE 75..125, giveback 150..50
direct short stagnation: 48 frames, min MFE 25 bps, progress 25 bps, giveback 60 bps, lock 4 bps
short re-arm: confirm 50 bps, max 2, window 144 frames
protective rebound exposure: 0
opposite_signal: close-and-open
fee: 4 bps
symbol: BTCUSDT
period: 2026-01-01..2026-07-29
mtf_source: deterministic rebuild from frames.level-v3.jsonl
Публичный stress-benchmark на effective exposure 5.25:
effective_exposure=5.25
signals=219
trades=254
return=+4116.05%
mark_return=+4196.31%
win=62.20%
profit_factor=2.02
peak_to_trough_drawdown=38.27%
Эти цифры не являются прогнозом. Они фиксируют текущую конфигурацию на одном воспроизводимом VSB-контракте и исследовательской калибровке пресса. Боевая экспозиция задаётся отдельно для каждого аккаунта; stress-профиль сайта не является автоматическим prod-default. Июнь и июль использованы при выборе selector, поэтому следующий критерий - отдельный forward-период.
Что уже собрано¶
- Decima-8 v42 как редкий гидравлический s300-сенсор;
- s1800 phase как подтвержденный HTF-контекст;
- UTC daily Memory 288 вместо старт-зависимого Memory 432;
- phase-carry long как слой участия в монотонном росте;
- consensus 48/72/224 как запрет long при конфликте быстрой и длинной s1800-фазы;
- Decima interrupt шорта/опасности для выхода из long и перехода в short;
- short-arm подтверждение
drop-or-push; - отдельный expiry для signal-arm short, который не развил edge за первые 6 s300-фреймов;
- confirmation level: основной short-вход сразу и набор полного объема после подтвержденного движения;
- position manager с long MFE-защитой
75/50, часовым cooldown, причинным reclaim прежнего high-water и failure guard150 bps; - плавная защита зрелого direct short, выход из стагнации
48/25/25/60и не более двух подтвержденных re-arm входов; - live runner и replay runner с общим путем данных;
director.html,inventory.html,stage.html, JSON/TSV артефакты;- двухполочная юстировка чувствительности пресса по закрытой s1800-фазе;
- paper inventory;
- Bybit executor с multi-account tenant;
- history updater с проверкой
level-v3=86400,s300=288,s1800=48; - phase warmup из исторических s1800 кадров;
- tenant template и tenant stage для VPS;
- публичная документация, отчеты, форма лидов и Метрика;
- продуктовая упаковка как лицензируемый software tenant.
Первый боевой pilot поднят на VPS 2026-07-20: Binance Spot используется как сигнальная лента, Bybit USDT perpetual - как место исполнения. Causal lifecycle с long trail 75/50, phase-cycle block, плавной защитой зрелого direct short, выходом из стагнации и re-arm переведен в production. Защитный rebound отключен. Капитал малый, задача этапа - реальное исполнение, журнал ордеров и сверка exchange position с model state.
Этап 1: VPS tenant¶
Статус: выполнен для первого pilot-tenant.
Цель этапа: Whaler работает как изолированный tenant, а не как ручной research-скрипт.
Штатный запуск:
python3 store/market/tools/whaler_tenant_stage.py \
--config store/market/tenants/pilot-001/tenant.json \
--replace
Tenant stage должен:
- обновлять закрытую историю перед стартом;
- собирать
s300/s1800; - валидировать дневные размеры;
- передавать директору
phase_warmup_frames_glob; - писать
state/history_update.json; - писать
state/current_run.json; - запускать live в namespace конкретного tenant;
- использовать отдельный
pid-key, чтобы tenant-ы не пересекались.
Критерий готовности:
tenant можно остановить, поднять заново и получить тот же фазовый контекст без ожидания 4.7 суток
Этап 2: live observation¶
Статус: идет.
Цель: доказать, что live-контур стабильно живет без ручного присмотра и что реальные позиции на бирже совпадают с intent/model.
Нужно наблюдать:
- websocket reconnects;
- last trade time;
- last ws message time;
- last frame time;
- last s300 time;
- last s1800 time;
- last director write time;
- phase_live_frames;
- phase_warmup_frames;
- inventory state;
- free disk;
- process health.
Минимальная длительность:
2-4 недели непрерывного paper/live-shadow наблюдения
Live в этом этапе не должен тихо ломаться. Любой stop, stale feed, пустой JSON, рассинхрон inventory или пропавший HTML должен быть виден в мониторинге.
Этап 3: live/replay parity¶
Цель: сделать сверку live vs offline replay обязательной процедурой.
Контур проверки:
live raw/frames/signals/director
-> replay на тех же границах времени
-> diff по signals/phase/decisions/inventory
-> parity report
Ожидаемые артефакты:
live_replay_parity.html
live_replay_parity.json
Что сравнивать:
- одинаковые закрытые s300 buckets;
- одинаковые закрытые s1800 buckets;
- одинаковые Decima signals;
- одинаковую фазу директора;
- одинаковые same-side actions;
- одинаковое состояние inventory;
- одинаковый учет комиссии;
- объяснимые расхождения из-за latency, reconnects, funding и slippage.
Этап 4: risk gates¶
Цель: не дать хорошему сигналу умереть от плохого режима, ошибки исполнения или слишком большой агрессии.
Обязательные ограничения:
max_daily_loss;max_weekly_loss;max_trades_per_day;max_consecutive_losses;- cooldown после loss;
- cooldown после profit take;
- запрет входа при мутной фазе;
- kill switch;
- ручной режим
no_trade; - контроль максимальной экспозиции;
- контроль плеча;
- контроль stale feed.
Смысловой модуль:
margin_of_safety
Он должен требовать запас прочности по сигналу, фазе, цене, комиссии, шуму, ликвидности и состоянию позиции.
Этап 5: paper executor¶
Цель: отделить торговое решение от исполнения и проверить весь контур без реальных ордеров.
Путь данных:
director decision
-> order intent
-> risk gate
-> paper executor
-> model fill
-> model inventory
-> audit log
Paper executor должен:
- исполнять только разрешенные intents;
- проверять reduce-only;
- проверять min notional и qty step;
- учитывать fee;
- моделировать slippage;
- писать orders/fills journal;
- не менять стратегическое решение директора.
Этап 6: real executor¶
Цель: подключить реальные ордера только после paper parity и risk gates.
Боевой путь:
director decision
-> order intent
-> risk gate
-> exchange executor
-> exchange order
-> exchange fill
-> exchange reconciliation
Executor не должен торговать при рассинхроне:
model position != exchange position
model qty != exchange qty
model side != exchange side
feed stale
risk gate closed
kill switch on
Главный артефакт этапа:
real_vs_paper.html
Этап 7: личный кабинет¶
Цель: дать пользователю управляемый интерфейс к tenant, risk profile, API-ключам и отчетам.
Пользователь должен настраивать:
- биржу и торговую пару;
- API key с торговыми правами без вывода средств;
- режим
paper,live-shadowилиlive; - risk profile:
conservative,balanced,aggressive,max_aggression; - максимальную экспозицию;
- разрешенное плечо;
- дневной и недельный лимит потерь;
- kill switch;
- режим
no_trade; - уведомления;
- отчеты по signals, orders, fills, fees, funding и realized PnL.
ЛК не заменяет risk layer. Он является интерфейсом к ограничениям, которые уже проверяются в executor и reconciliation.
Этап 8: продуктовая модель¶
Whaler лицензируется как software tenant для аккаунта пользователя.
капитал остается на бирже пользователя
API key не имеет права вывода средств
Whaler получает торговые и read-only права
ордера, fills, комиссии и funding пишутся в аудит
подключение частного tenant: 1000 USDT единоразово
абонентская плата: 100 USDT в месяц
институциональное лицензирование и внедрение: по договоренности
Whaler не берет процент с прибыли
Founding-пул:
пилотный пул: до 50 участников
founding-пул: 13 первых мест, включая reserved/internal места
подключение частного tenant: 1000 USDT единоразово
абонентская плата: 100 USDT в месяц
фонды, банки и институциональные клиенты: по договоренности
верхний торговый депозит: 1 BTC совокупно на клиентский tenant
По мере заполнения пула цена доступа может быть поднята. Причина не маркетинговая, а операционная: нужно контролировать market impact, slippage, ликвидность, support load и безопасность execution layer.
Этап 9: институциональный пилот¶
Цель: упаковать Whaler для банка, фонда или prop/quant-команды как early license на торговый движок.
Институциональный пакет:
- executive brief на 1-2 страницы;
- техническое описание архитектуры;
- отдельный tenant;
- paper/live-shadow перед реальными ордерами;
- API без вывода средств;
- audit log по decisions/orders/fills/fees/funding;
- live/replay parity как приемочный контроль;
- risk gates, лимиты, kill switch;
- порядок перехода к real executor.
Что важно не обещать:
- гарантированную доходность;
- отсутствие просадки;
- готовность фонда;
- мгновенную масштабируемость капитала;
- стабильность на всех рынках.
Институциональному клиенту продается не "бот", а лицензия на ранний микроструктурный торговый контур с проверяемым аудитом и изоляцией tenant.
Этап 10: расширение рынков¶
Цель: понять переносимость v42 за пределы BTCUSDT.
Приоритет:
BTCUSDT -> ETHUSDT -> крупные ликвидные пары
Для каждой пары нужны:
- полный набор
level-v3дней; - invariant
86400 frames/day; - MTF
s300/s1800; - live-equivalent replay;
- проверка s1800 phase;
- отдельный reset-policy sweep;
- отдельный risk profile;
- отдельная оценка slippage и ликвидности.
ETHUSDT остается положительной transfer-проверкой, но не текущей витриной результата. Главная публичная база сейчас - BTCUSDT / UTC daily Memory 288 / position manager.
Ближайшие задачи¶
Короткий список:
1. Вести боевой pilot на VPS малым капиталом.
2. Сверять реальные Bybit positions/fills с model inventory.
3. Доделать live/replay parity report по каждому UTC-дню.
4. Наблюдать causal lifecycle position manager в live: protection, stagnation exit, re-arm, rebound и replay parity.
5. Закрыть daily/weekly risk gates и kill switch.
6. Довести tenant panel до эксплуатационного мониторинга.
7. Сделать безопасное добавление API-аккаунтов без остановки Decima feed.
8. Спроектировать ЛК: аккаунты, профили риска, лимиты, аудит, отключение торговли.
9. Собрать institutional brief для банков/фондов.
10. Продолжить alt radar и переносимость на другие рынки только после стабилизации BTC-контура.
Главный принцип:
не увеличивать риск быстрее, чем растет проверенность контура