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 guard 150 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-контура.

Главный принцип:

не увеличивать риск быстрее, чем растет проверенность контура