Архитектура v42

v42 - это текущая базовая архитектура Китобоя. Она разделяет рынок, нейроморфный сенсор и торговое решение на разные уровни. Это важно: Decima-8 не должна быть самостоятельным трейдером. Она должна быть быстрым резонансным сенсором, который слышит редкую структуру в потоке.

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

Китобой торгует не движение, а асимметрию.

Рынок каждый день дает много движений. Большая часть этих движений не имеет полезного edge после комиссий, шума, funding и проскальзывания. Поэтому v42 не пытается быть постоянным market taker. Она делает обратное:

ждать
  -> услышать редкий s300-сигнал
  -> проверить фазу s1800
  -> войти только если директор видит допустимый контекст
  -> не дергаться в боковике

В рабочем языке проекта:

ЖДАТЬ       = редкий s300 сигнал от Decima
ДИСКОНТ     = правильная фаза s1800 и контекст для long
ПРЕМИЯ      = правильная фаза s1800 и контекст для short
НЕ ЛЕЗТЬ    = neutral/skip
НЕ ДЕРГАТЬ  = same-side keep
ЗАБРАТЬ     = same-side close-if-profit

Полный поток данных

Биржа
  -> поток сделок
  -> секундный level-v3 press
  -> frames.level-v3.jsonl / tape.level-v3.raw8.vsb
  -> MTF stage
       -> s300 frames/tape/html
       -> s1800 frames/tape/html
  -> Decima-8 v42 на s300
  -> short/long/neutral сигналы
  -> catalog / Shannon lineage для отбора сенсоров
  -> директор фазы на s1800
  -> inventory/paper/live order intent
  -> director.json / director.tsv / director.html

В live это делает whaler_s300_stage_live.py.

В offline walk-forward это делает whaler_live_replay_walkforward.py.

Уровень 1: биржевой поток

Источник live-потока сейчас - Bybit WebSocket. Для истории используются сохраненные дневные данные в store/market/runs/SYMBOL-YYYY-MM-DD.

Сырой поток сделок не подается в Decima напрямую. Это принципиально: сырые сделки слишком шумные, имеют переменную частоту, зависят от режима биржи и приводят к тому, что личность слышит кашу.

Нужен пресс.

Уровень 2: level-v3 press

level-v3 - это секундный causal press. Его смысл - сделать время настоящей частью входа.

Инвариант:

1 календарный UTC-день = 86400 frames.level-v3.jsonl строк

Это не просто удобство. Это часть модели:

  • тишина становится входным состоянием;
  • пустые секунды не исчезают;
  • ожидание и охлаждение не теряются;
  • replay и live можно свести к одному таймлайну.

level-v3 описывает рынок через 8 lanes:

lane0: signed price impulse
lane1: local state / stasis
lane2: time-aware flow phase
lane3: buy pressure share
lane4: sell pressure share
lane5: flow-weighted mass
lane6: causal level context
lane7: level reaction / imbalance

На этом уровне Decima еще не работает как v42-сенсор. Это акустический слой.

Уровень 3: MTF s300 и s1800

v42 использует не секундный поток напрямую, а MTF-сжатие.

Основные масштабы:

s300  = 300 секунд = 5 минут
s1800 = 1800 секунд = 30 минут

s300 - рабочий слух Decima. На нем рождаются редкие события.

s1800 - фазовый контекст директора. Он медленнее, грубее, но лучше отделяет направление режима от случайной микрошумовой вспышки.

Важно: s1800 выбран не как произвольный удобный масштаб. В отчете:

store/market/runs/v42_mtf_s300_short_wide_all_history_2026-01-01_2026-05-30/tf_signal_compare.html

он был лучшим найденным фазовым слоем среди сравниваемых s300/s900/s1800/s3600 на моментах s300-сигналов. В этом смысле s1800 реально коррелировал с полезной интерпретацией сигналов. Но в текущем live-контуре это именно фазовый слой директора, а не второй Decima swarm.

MTF-слой строит закрытые окна. Это важно: незакрытый bucket не должен давать полноценный сигнал в replay, иначе offline начнет видеть не тот мир, который видел live.

Смысл MTF lanes в текущем live/replay:

lane0: signed return относительно базового движения
lane1: range относительно базового движения
lane2: relative trades per second
lane3: buy share
lane4: sell share
lane5: relative quantity / mass
lane6: absorption
lane7: signed imbalance

Это уже ближе к гидравлике:

  • где поток ускорился;
  • где масса пришла без движения;
  • где buy/sell pressure перекосился;
  • где движение сменилось выпуском давления;
  • где рынок не просто идет, а начинает терять равновесие.

Уровень 4: Decima-8 v42

Текущая v42-личность:

store/market/personalities/whaler_v42_mtf_s300_short_wide_may01_20.d8p

Она слушает s300 tape и выдает pattern events. Это не торговые приказы.

Labels:

store/market/runs/v42_mtf_s300_short_wide_may01_20/v42_mtf_s300_short_wide.tsv

Specs:

store/market/runs/v42_mtf_s300_short_wide_may01_20/v42_mtf_s300_short_wide.specs.jsonl

Факты по текущей личности:

specs: 62
branches / labels: 96
pattern_id base: 81000
основной side: down / entry_short
период исходного mining: 2026-05-01..2026-05-20
рабочий timeframe: s300
горизонты оценки: 12, 24, 48 s300-кадров
эквивалент горизонтов: 1, 2, 4 часа

Семейства, из которых собрана v42:

motion2
flow_release
pressure_release
quiet_release
pressure_pressure_release
all2 / all3

Название short_wide означает, что это широкий short-сенсор. Он не обязан сам решать, что надо шортить прямо сейчас. Он должен часто не молчать в местах, где начинается или продолжается down-дисбаланс, а директор потом отсекает неправильную фазу.

Уровень 5: директор

Директор превращает нервный сигнал в торговую интерпретацию.

Его задачи:

  • читать s300 signal;
  • читать s1800 phase;
  • решить long, short, neutral;
  • открыть позицию только при допустимом контексте;
  • не переворачиваться хаотично;
  • уметь закрыть same-side сигналом, если уже есть прибыль;
  • писать понятный HTML/JSON/TSV мониторинг.

Текущий директор использует:

s300 Decima signal -> событие
s1800 phase        -> контекст направления

s1800 в этом контуре не выдает pattern ids. Он дает фазу через price/trend на HTF-фреймах.

Текущий основной режим:

mode=phase
phase lookback=224
phase threshold=0.0
same-side-signal=close-if-profit
neutral-action=skip
entry exposure=0.5
fee=4 bps

close-if-profit сейчас зафиксирован как важная база: он уменьшает токсичное дерганье и делает same-side сигнал предохранителем, а не источником шума.

Отдельная линия: Shannon/catalog

До текущего live-директора в проекте была важная линия отбора сенсоров:

Shannon tree mining
  -> specs
  -> sensor catalog
  -> catalog director
  -> trade inventory

Эта линия не исчезла. Ее роль - не заменить s1800-фазу, а хранить доказательную память о том, какие pattern ids вообще имеют OOS-информацию.

Главные инструменты:

store/market/tools/whaler_shannon_tree_specs.py
store/market/tools/whaler_sensor_catalog.py
store/market/tools/whaler_catalog_director.py
store/market/tools/whaler_trade_inventory.py

В all-history v42 есть артефакт:

store/market/runs/v42_mtf_s300_short_wide_all_history_2026-01-01_2026-05-30/internal_catalog_short_all_history.json

Он содержит 26 trade-сенсоров. Catalog-директор на этих сенсорах дал:

events=154
catalog_sensors=26
trades=106
return=-0.29%
win=59.43%
profit_factor=0.988

Вывод: catalog/Shannon-слой важен как фильтр и инвентаризация сенсоров, но сам по себе в этом прогоне не стал финальным edge. Текущая сильная база v42 появилась, когда rare s300 event был интерпретирован через s1800 phase и same-side policy.

Уровень 6: inventory

Inventory - это не стратегия. Это учет состояния:

equity
position
entry price
trades
realized pnl
mark pnl

В текущем live inventory пока работает как dry-run / paper слой. Следующий шаг - добавить боевые ордера так, чтобы order executor был отдельным слоем и не смешивался с директором.

Почему это не HFT

v42 не HFT по нескольким причинам:

  • базовый сигнал s300, то есть 5-минутная структура;
  • фазовый контекст s1800, то есть 30-минутный режим;
  • сигналов мало;
  • боковик в основном не торгуется;
  • входы проходят через директора;
  • цель - редкая асимметрия, а не постоянное снятие спреда.

Даже если live получает сотни тысяч WebSocket-сообщений, торговое решение возникает редко. Большой поток нужен для слуха, а не для высокой частоты ордеров.

Важные наблюдения по результатам

На BTCUSDT текущий v42-кандидат дал устойчивую базу на историческом проходе: мало сделок, месяцы подряд в плюс, win rate около психологически нормального диапазона, меньший drawdown относительно более простых keep-режимов.

На ETHUSDT transfer-проверка после исправления level-v3 дала положительный результат, но слабее BTCUSDT:

период: 2026-01-01..2026-05-30
raw frames: 12960000
s300 frames: 43200
s1800 frames: 7200
short signals: 138
trades: 68
pnl: +13.6846
return: +13.68%
win: 64.7%
max dd: 19.22%

Это важно трактовать трезво: v42 переносится на ETHUSDT не идеально, но не разваливается. Значит, личность слышит не только подгонку под один участок BTC, но директор и риск еще требуют проверки по парам.

Что считается базой

Базой считается не один файл .d8p, а связка:

level-v3 invariant
MTF s300/s1800
whaler_v42_mtf_s300_short_wide_may01_20.d8p
v42 labels TSV
phase director
same-side close-if-profit
live/replay parity
HTML/JSON/TSV мониторинг

Если менять только один слой, надо явно фиксировать, какой контракт остается прежним.