Архитектура 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 мониторинг
Если менять только один слой, надо явно фиксировать, какой контракт остается прежним.