Phase 1 實作清單
這份清單的目標,是把 Phase 1 從概念藍圖拆成可以逐項落地的工作項目。
Phase 1 完成定義
如果 Phase 1 完成,應至少滿足以下條件:
- 有明確的
instrument_id與 symbol mapping - live data 與 historical data 都能轉成 canonical events
- raw data 有保存
- strategy 不直接依賴 vendor API
- execution 有獨立邊界
- 至少能做基本 replay
1. 架構邊界先寫清楚
必做
- 定義
資料來源層 - 定義
資料接入層 - 定義
標準資料模型 - 定義
策略層 - 定義
風控層 - 定義
執行層
交付物
- 一張系統上下文圖
- 一份簡短架構原則文件
2. 商品主檔
必做
- 定義
instrument_id - 定義 symbol alias 規則
- 定義 market / venue
- 定義 session template
- 定義 tick size / lot size / multiplier
建議表格
instrumentsinstrument_aliasesmarketsvenuessession_templates
驗收標準
- 同一商品在不同 source 下可映射到同一 internal id
3. Canonical Schema
必做
- 定義
trade - 定義
quote - 定義
bar - 定義
order_intent - 定義
order_event - 定義
fill
每個 schema 至少包含
schema_nameschema_versionevent_timeingest_timeinstrument_idsourcemetadata
驗收標準
- strategy 與 replay 都使用相同 schema
4. 資料接入
必做
- 接入至少一條 live market data source
- 接入至少一條 historical source
- 對每個 source 建立獨立 connector
- 建立 normalizer
每條 source 都要輸出
- raw payload
- normalized canonical events
驗收標準
- 任一 event 都可追到 raw source
5. 儲存與串流
必做
- 建立
raw/parquet 目錄規範 - 建立
canonical/parquet 目錄規範 - 建立 Kafka canonical topics
優先 topic
md.trade.v1md.quote.v1md.bar.1s.v1md.bar.1m.v1exec.order_intent.v1exec.order_event.v1exec.fill.v1
驗收標準
- 可以從 Kafka 消費 live canonical events
- 可以從 parquet 讀回 historical canonical events
6. Replay 與 bar 聚合最小能力
必做
- historical data 可重播成 canonical events
- trade / quote 可聚合成 1s bar
- 1s bar 可聚合成 1m bar
必須先決定的規則
- 用 event time 還是 ingest time 聚合
- late event 怎麼處理
- session 邊界怎麼定義
- bar finalize 規則
驗收標準
- 同一策略可在 replay 模式下重跑
7. 策略、風控、執行邊界
必做
- strategy 只輸出 signal 或 order intent
- risk engine 決定是否允許下單
- execution gateway 負責 broker mapping
- order event / fill 回流平台
禁止事項
- strategy 直接碰 broker SDK
- strategy 直接處理 broker callback
- strategy 直接查 vendor-specific schema
驗收標準
- 更換 broker adapter 時,不需重寫策略核心
8. 基本可觀測性
必做
- connector heartbeat
- Kafka consumer lag 觀測
- strategy heartbeat
- execution success / reject metrics
至少要知道
- 哪個 connector 斷了
- 哪個 consumer lag 了
- 哪個 strategy 沒心跳
- 哪個 broker route 有問題
9. Phase 1 不做清單
先不要做:
- 全市場多 source 對照
- 複雜 portfolio engine
- 完整 metadata catalog
- Iceberg / Delta Lake
- 太重的 workflow orchestration
- 太細碎的 microservices 拆分
10. 建議實作順序
- 商品主檔與 symbol mapping
- canonical schema
- connectors + normalizer
- raw archive + canonical Kafka topics
- strategy runtime 接 canonical stream
- risk engine + execution gateway
- replay 與基本 bar aggregation
- metrics 與基本觀測
最後一句話
Phase 1 的目標不是完整,而是先做出一個之後不需要砍掉重練的骨架。