12. Live Trading S1.3 設計理念與架構
本文從設計視角解釋 S1.3 的 live trading 改造思路:爲什麼這樣分層、如何保持兼容、以及這些設計如何幫助後續擴展。
12.1. 0. 文档定位
本文是設計說明,不是使用教程
重點回答“爲什麼這樣做”,而不是“如何一步步操作”
若需要實操路徑,請轉到
live_trading/2-configuration-and-run.md與tutorials/8-live-trade-risk-and-broker-walkthrough.md
12.2. 1. 设计目标
在不破壞既有用戶路徑的前提下,提升 live 鏈路的可校驗性與可審計性
把風險控制前置到“下單寫庫之前”
抽象 Broker 適配層,爲未來真實櫃檯接入預留穩定邊界
12.3. 2. 分层结构
S1.3 的 live 相關職責可抽象爲:
Operator:策略運行調度與信號來源Trader:訂單意圖落地、風險閘門與執行協調RiskManager:純邏輯規則評估,不依賴 IOBroker:提交、取消、回報、連接語義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.mdBroker 接入:
live_trading/4-broker-adapter-and-integration.md