12. Live Trading S1.3 設計理念與架構

本文從設計視角解釋 S1.3 的 live trading 改造思路:爲什麼這樣分層、如何保持兼容、以及這些設計如何幫助後續擴展。

12.1. 0. 文档定位

  • 本文是設計說明,不是使用教程

  • 重點回答“爲什麼這樣做”,而不是“如何一步步操作”

  • 若需要實操路徑,請轉到 live_trading/2-configuration-and-run.mdtutorials/8-live-trade-risk-and-broker-walkthrough.md

12.2. 1. 设计目标

  • 在不破壞既有用戶路徑的前提下,提升 live 鏈路的可校驗性與可審計性

  • 把風險控制前置到“下單寫庫之前”

  • 抽象 Broker 適配層,爲未來真實櫃檯接入預留穩定邊界

12.3. 2. 分层结构

S1.3 的 live 相關職責可抽象爲:

  • Operator:策略運行調度與信號來源

  • Trader:訂單意圖落地、風險閘門與執行協調

  • RiskManager:純邏輯規則評估,不依賴 IO

  • Broker:提交、取消、回報、連接語義

  • trade_io:訂單/成交數據契約校驗

12.4. 3. 关键设计原则

3.1 契約先行

訂單 dict 與成交 dict 在邊界處校驗,避免“結構錯了還能跑”導致的靜默錯誤。

3.2 風控前置

風險評估在寫庫和入隊之前完成,拒單不污染執行數據。

3.3 適配解耦

通過 broker adapter API 承載未來接入,降低 Trader 與具體櫃檯的耦合度。

3.4 可審計

拒因以 rule_id 和英文 reason 對外可見,支持運維檢索與覆盤。

12.5. 4. 典型疑难点与取舍

4.1 拒單兼容語義

保持歷史兼容(拒單可表現爲空結果),同時增強可見性(CLI/TUI 摘要 + 日誌)。

4.2 新舊鏈路並存

保留 legacy queue 兼容路徑,避免一次性遷移帶來的迴歸風險。

4.3 狀態一致性

分批成交場景下,狀態應以累計成交量爲準,減少用戶觀察到的語義偏差。

12.6. 5. 与 S2.1 的关系

S1.3 不是櫃檯接入終點,而是前置地基:

  • 先穩定接口邊界

  • 再逐步接入真實櫃檯

  • 最後在不破壞上層用法的前提下擴展能力

12.7. 6. 对用户行为的影响

  • 配置錯誤更早暴露

  • 拒單原因更容易定位

  • live 運行中的狀態變化更容易解釋

  • 擴展第三方 broker 的成本更可控

12.8. 7. 相关阅读

  • 模塊總覽:live_trading/1-overview.md

  • 運行與配置:live_trading/2-configuration-and-run.md

  • 風控與狀態:live_trading/3-risk-and-order-lifecycle.md

  • Broker 接入:live_trading/4-broker-adapter-and-integration.md