Files
nautilus_mm/FREEZE.md
T
jackyu66gitandCursor e2fbe1c2b3 Snapshot nautilus_mm after EXP_002 Phase 1 stop.
Keep frozen research conclusions and code; raw ledgers and secrets stay out of git.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-10 16:53:22 +08:00

9.3 KiB
Raw Blame History

Research Freeze / Data Collection Phase

研究框架已冻结。 研究对象:可验证的市场现象(不是策略)。

验证的假设是:

在当前 BTC 永续、当前交易所、当前报价假设、当前执行条件下,被动成交是否产生正向 Maker Alpha。

不是:「我的策略有没有赚钱」。

报告结论 含义 下一步
FAIL 这个市场假设不成立 换假设(Carry / Basis / Funding…)
PARTIAL_PASS 优势仅局部存在 Event-driven LP
PASS 普遍可捕获 Economic Simulation → Symmetric MM
COLLECTING 样本不足 继续采集

三个答案都推进系统。只有盈利才算成功 —— 错误。


状态机(锁定)

Research Freeze
        |
        v
Data Collection
        |
        v
Maker Edge Report v0.1
        |
        +---- FAIL --------------→ 换假设
        |
        +---- PARTIAL_PASS ------→ Event-driven LP
        |
        +---- PASS --------------→ Economic Simulation
        |                              ↓
        |                         Symmetric MM / Quote Engine
        |
        +---- COLLECTING --------→ 继续采集

观察窗口(不要过早解释)

规模 用途
~500 fills 发现异常 / 管道是否工作
~2000 fills 初步判断(Decision 门槛默认)
~10000 fills 才讨论稳定性

cluster 数量比 fill 数量更重要。
5000 fills / 80 clusters ≠ 3000 fills / 900 clusters。

第一份报告最值得看的不是 Decision,而是三个分布Fill Alpha / Cluster Alpha / Toxicity。


Unlock Stage3Economic Simulation)必须同时满足

Data Integrity PASS
AND cluster-weighted MakerAlpha > 0
AND benchmark-adjusted alpha > 0
AND edge not concentrated in one event/regime

否则:继续 Data Collection,或判定 FAIL / PARTIAL_PASS。
禁止用改 Quote Logic / 改成本假设 来「凑」解锁。


冻结期间只允许 / 禁止

允许

  • 数据字段(不改变报价行为)
  • 数据质量检查
  • 报告解释能力(分布、归因、可比格式)

禁止(直到 Gate 解锁)

  • 新交易规则 / 动态 spread / inventory skew
  • 新过滤条件(Pulse / AI
  • 新收益优化参数(为结果改 fee/slip/latency

三不动

  1. Quote Logic
  2. 成本模型:Net = Raw Fee Slip Latency
  3. 失败定义:PASS / PARTIAL_PASS / COLLECTING / FAIL

Report v0.1 固定格式

Executive Summary
Section 1 — Data Integrity
Section 2 — Fill Alpha          (+ distribution: mean/median/p25/p75)
Section 3 — Toxicity Profile    (+ loss concentration)
Section 4 — Observed Edge Attribution   (事实,非策略建议)
Section 5 — Decision            + Stage3 unlock checklist

第一份报告不期待 PASS。价值在于:市场在哪些情况下愿意付给流动性提供者溢价。


Experiment ID(强制绑定)

每轮 Data Collection 绑定固定身份,写入每条 jsonl + 每份报告:

Experiment: MM_EDGE_EXP_001
Version:    probe_v0.1
Quote:      frozen
Fee:        frozen
Exchange:   frozen

环境变量:EXPERIMENT_ID / PROBE_VERSION(见 .env.example)。
换实验假设时换新 ID(如 MM_EDGE_EXP_002),禁止在同一 ID 下改报价逻辑后重解释旧数据。

报告阅读顺序:Integrity → 分布(非均值)→ Cluster → Toxicity → Decision
Integrity FAIL → Decision=INVALID,不解释 Alpha。


Post-Report Phase (2026-08-18)

Maker Edge Report → PARTIAL_PASS.
Account wallet moved ≈ 62 USDT vs assumed 5000 start — not Maker Edge FAIL evidence;
also not ignorable. Research markout ≠ account equity.

Probe volume STOPPED until:

  1. Maker-only hard check: TAKER_FILLED_COUNT == 0 (exchange userTrades.maker)
  2. Order→Fill→Fee→Position→Funding→Equity ledger residual ≈ 0

See STATUS.md and scripts/reconcile_account.py.

Stage3 remains LOCKED. Economic Edge = UNKNOWN.


Economic Attribution Phase (2026-08-18)

MM_EDGE_EXP_001 / probe_v0.1 is now a FROZEN BASELINE.

Execution state:

  • Probe: STOPPED
  • Strategy modifications: forbidden
  • Purpose: Economic Attribution only

First hard-evidence population:

MATCHED = 3890

This means:

  • Local Fill
  • Venue Trade
  • venue_trade_id
  • quantity closure
  • price verification
  • fee verification
  • maker-only verification

Economic Attribution v0.1 must:

  1. Use MATCHED only for core conclusions
  2. Keep VENUE_CONFIRMED_NO_TRADE_HISTORY / VENUE_PARTIAL_ORDER_CANCELED as extension evidence, not core population
  3. Treat counterfactuals as attribution, not backtest / simulation

Current baseline conclusion:

Maker markout exists, but economic edge is not established under v0.1.

Known explanation path:

MakerAlpha
   ↓
matched fills
   ↓
fee + realized / inventory economics
   ↓
account outcome

Next allowed work:

  • Fee attribution
  • Inventory carry / exposure attribution
  • Counterfactual attribution (Path C, toxic, negative states)
  • Real-time immutable fill ledger design for future runs

Still forbidden:

  • Resume v0.1 live execution
  • Change quote offset / TTL / cooldown as a shortcut
  • Unlock Stage3 from attribution alone

Prefill Adverse-Selection Attribution Phase (2026-08-18)

Purpose: Pre-fill adverse-selection predictability audit — NOT strategy / backtest / optimization / model training.

Hard contract:

feature_timestamp <= t_fill - 0.25s

Features: sampled mid_tick / inventory_tick only.
Forbidden as features: fill price, post-fill states, Path A/B/C/D, markout, future book/trade/inventory, realized PnL, cancel-after-fill.

Population: MATCHED paths = 3886 (100% strict coverage)

Executability gate (three tiers):

Grade Meaning
NO_PREFILL_SIGNAL P(C) / economic almost unchanged
STATISTICAL_SIGNAL_ONLY probability shift, economic improvement insufficient
CANDIDATE_V0_2_SIGNAL probability + economic separation — only this enters v0.2 hypothesis

Sample-size policy:

  • n < 30 → LOW_N (exploratory only)
  • n < 100 → WEAK_EVIDENCE
  • n >= 100 → USABLE

v0.1 strict conclusion:

0 / 19 features reach CANDIDATE_V0_2_SIGNAL.
Fill 前可观测信号不足以支撑 v0.2 设计。Stage 3 remains LOCKED.

Deferred (requires richer pre-fill event log):

  • time_since_last_market_event
  • intensity / large trades
  • fill-callback market_event_before_fill

Still forbidden:

  • Treat STATISTICAL_SIGNAL_ONLY as v0.2 candidate
  • Resume probe or design v0.2 strategy without new experiment ID + prefill signal pass

MM_EDGE_EXP_002 — Event-State Observability (2026-08-18)

Type: Data Collection / Observability Experiment
NOT: strategy experiment, backtest, optimization, model training

MM_EDGE_EXP_001  →  phenomenon PASS, economic FAIL, prefill FAIL (snapshot)
MM_EDGE_EXP_002  →  close observability gap (immutable event ledger)
                 →  Gate 4 only after Gates 13 + fill anchors
                 →  (only then) v0.2 hypothesis allowed

Identity:

Field Value
Experiment MM_EDGE_EXP_002
Probe event_state_v0.1
Strategy NONE
Trading NO
Stage 3 LOCKED
Depends on MM_EDGE_EXP_001 FROZEN

Core change: Immutable Event Ledger — raw events first, features offline later.

Pre-fill window schema (frozen):

[-5s, fill - 250ms)  →  all market_event rows
fill_anchor          →  immutable fill metadata (Gate 4; Phase 1 may have none)

Success gates:

  1. Event Completeness — PASS (smoke)
  2. Temporal Integrity — PASS (smoke)
  3. Event Coverage — PASS (smoke)
  4. Predictability — BLOCKED until frozen sample gates in MM_EDGE_EXP_002.md

Long-run: EXP-002-RUN-002 / event-state-probe.service / trading=NO.

Frozen before long-run (do not change after seeing more data):

  • Phase 1 dataset: ≥ 7 days AND ≥ 5,000,000 market events
  • Gate 4: ≥ 2,000 MATCHED fill_anchors AND ≥ 500 clusters (requires later fill-authorized phase)

No daily Path C analysis during collection.

Still forbidden:

  • Resume EXP_001 or modify v0.1 quote logic
  • Enable trading under EXP_002
  • Unlock Stage 3 from observability data alone
  • Peek at Gate 4 before the frozen sample threshold

MM_EDGE_EXP_002 Phase 1 STOPPED (2026-09-10)

Human decision: stop collection. Do not open a fill-authorized phase. Do not design v0.2.

Field Value
Run EXP-002-RUN-002
Stopped 2026-09-10T08:45:24Z
systemd user event-state-probe inactive / disabled
Ledger logs/event_state/EXP-002-RUN-002/ (24 files, 18.06 GiB, 2026-08-18 → 2026-09-10 partial)
Trading NO
Stage 3 LOCKED
Gate 4 BLOCKED (no fill_anchor)
Hypothesis Closure NO

Phase 1 volume thresholds are met as an observability freeze only.
That does not unlock Gate 4 or Stage 3.

Marker: logs/event_state/EXP-002-RUN-002/EXP-002-RUN-002.PHASE1_STOPPED.json

Still forbidden:

  • Restart EXP-002-RUN-002
  • Enable trading under EXP_002
  • Path-C / Gate 4 peek on this artifact
  • Treat this stop as “no pre-fill signal exists”