外部市場 (Venues)
✅ DONE
Binance Perp testnet
REST + WS + user-data 全通
✅ DONE
Binance Perp live
endpoint 切換完成;缺 IP 白名單
⏳ TODO
Binance Spot
endpoints 已備;需 spot 專用 key
⏳ TODO
OKX Perp
需 OKX testnet key
⏳ TODO
OKX Spot
需 OKX testnet key
支援的交易對 (Symbols)
✅ DONE
BTCUSDT (Binance perp)
sample_passthrough;live 校對通過
✅ DONE
ETHUSDT (Binance perp)
sample_passthrough_eth;同框架
✅ DONE
SOLUSDT (Binance perp)
sample_passthrough_sol;testnet 跑中
✅ DONE
新增其他幣種
見 strategies/README.md,每個幣一條策略目錄
研究線整合 (Research Models)
✅ DONE
btc_15m_long_lgbm (candidate run_002)
LightGBM 27 features;bundle inference_sample 對齊到 1e-9
✅ DONE
Threshold rolling top-20%
2000-bar window;warmup < 500 bars 落 fallback 0.6
⏳ TODO
TP/SL/time-exit 自動執行
目前只記錄 tp_pct/sl_pct 在 model_scores.extra;待 reconciler 位置追蹤後接
資料層 (Data)
✅ DONE
PubSubBus (in-process)
drop-oldest + priority-block
✅ DONE
Subscription + Planner
200 streams/conn split
✅ DONE
Normalizer × 4
Binance/OKX × Spot/Perp
✅ DONE
Bar Builder (5m..1d)
1m → higher TF;不從 trade 合成
✅ DONE
Bar Storage (parquet+index)
wired to bus
🟡 部分
Raw Storage (jsonl.gz)
writer 完整;尚未接 bus 落地
⏳ TODO
WS Pool (multi-conn)
目前單 conn;Pool 留 hook
🟡 部分
Warmup REST loader
seed-bars CLI 可手動;strategy 自動 warmup 未做
⏳ TODO
Gap detection
5min reconnect-fail → DataGapEvent
策略層 (Strategy)
✅ DONE
Strategy ABC + lifecycle hooks
on_start/on_bar/on_tick/on_book/.../on_stop
✅ DONE
Manifest (pydantic strict)
name/venue/market/symbol/feeds/risk/mode
✅ DONE
StrategyContext (ctx)
submit_order/position/balance/log/metric/now
✅ DONE
StrategyHost (load + isolation)
try/except + slow callback warning + stuck suspend
✅ DONE
Sub-account collision guard
v0.1 一策略一 sub-account
✅ DONE
manifest.mode mismatch check
load-time validation
風控層 (Risk)
✅ DONE
RiskGate (6-layer)
kill > live > strategy_paused > strategy > sub > global
✅ DONE
Strategy pause toggle (/settings)
soft per-strategy pause via strategy_state
✅ DONE
Sizer (lot/tick + qty conv)
leverage 不偷降
✅ DONE
KillSwitch (file+SIGUSR1+CLI)
不自動平倉
✅ DONE
LiveUnlockGate
env + manifest hash + 5s countdown
✅ DONE
DailyLossTracker (UTC reset)
重啟保留
✅ DONE
Idempotency Registry (UUID v7)
≤32 字元 base32
執行層 (Execution)
✅ DONE
OrderRequest/Ack/Event/Position/Balance
pydantic v2 strict
✅ DONE
State Machine (terminal sticky)
UNKNOWN never resubmits
✅ DONE
Symbol Map (round-trip)
BTC-USDT-SWAP / BTCUSDT 互轉
✅ DONE
Rate Limiter (per venue×channel)
soft warn / hard suspend
✅ DONE
Order Router
strategy binding lock
✅ DONE
Order Event Bus
by client_oid
✅ DONE
OrderWriter (orders 表)
Persistent Write-Before-Send
🟡 部分
Reconciler (3 loops)
spec 完整實作;尚未啟動於 runtime
✅ DONE
Paper Engine (撮合)
market next-bar / limit on-touch / fee+slippage
✅ DONE
Binance Perp Adapter
REST + WS user-data 全通
⏳ TODO
OKX Adapter
需 OKX SDK
持久化 (Storage)
✅ DONE
SQLite (7 tables, WAL)
idempotency / orders / positions / bar_index / strategy_state / risk_events / system_events
✅ DONE
Jsonl Event Writer/Reader
UTC daily rotate + gzip
✅ DONE
Parquet Bar Storage
ts_open / OHLCV
Runtime + CLI
✅ DONE
Runtime orchestration
store→bus→host→router→adapters→user-data
✅ DONE
CLI subcommands
run / kill / unkill / positions / doctor / probe-binance / seed-bars / dashboard
✅ DONE
Sample strategy (sample_passthrough)
5-bar cadence
✅ DONE
graceful shutdown (SIGINT/SIGTERM)
🟡 部分
backtest / replay 完整
stub;需歷史資料 + 重放
Dashboard + 觀察
✅ DONE
Dashboard 主頁 (RWD)
positions/orders/daily-loss/risk-events
✅ DONE
Kill switch 顯示
badge
✅ DONE
LAN 連線 (0.0.0.0:8765)
ufw 開放
✅ DONE
systemd user service
linger=yes / 開機自啟
✅ DONE
K 線圖 (lightweight-charts)
candle + volume + 5s refresh
✅ DONE
訂單 Markers (BUY/SELL 箭頭)
從 orders 表
✅ DONE
seed-bars (Binance live klines)
離線 backfill
✅ DONE
Architecture status page (本頁)
🎉