12. 模擬實盤中的風控與 Broker 適配(雙路徑)
本教程通過兩條完整路徑,帶你在模擬實盤中驗證 S1.3 的關鍵行爲:
路径 A:
asset_type='E' + simulator路径 B:
asset_type='FD' + simulator
目標是“跑通 + 觀測 + 驗證”,而不是隻看概念。
12.1. 0. 教程目标
跑通兩條路徑(E 與 FD)
人工觸發一次拒單並定位原因
觀察分批成交狀態從
partial-filled到filled的可見行爲
12.2. 1. 前置准备
已有可運行的
Operator本地數據可支持運行頻率
已配置 live 賬戶參數
建議先準備一個“可穩定觸發拒單”的規則配置(例如較小的單筆數量上限),便於復現實驗。
12.3. 2. 路径 A:E + simulator
步驟 1:設置配置
import qteasy as qt
qt.configure(
mode=0,
asset_type='E',
live_trade_broker_type='simulator',
live_price_acquire_channel='eastmoney',
live_price_acquire_freq='15MIN',
)
步驟 2:啓動運行
qt.run(op)
步驟 3:提交一筆測試訂單並觀察反饋
關注是否出現提交成功提示
關注是否出現風控拒單提示(英文)
記錄一次訂單 ID(後續對照日誌)
12.4. 3. 路径 B:FD + simulator
步驟 1:切換資產類型配置
import qteasy as qt
qt.configure(
mode=0,
asset_type='FD',
live_trade_broker_type='simulator',
live_price_acquire_channel='eastmoney',
live_price_acquire_freq='15MIN',
)
步驟 2:重複啓動與下單
qt.run(op)
步驟 3:驗證行爲一致性
FD 路徑應可進入 live 運行鏈路
拒單/提交/日誌的觀察方式與 E 路徑一致
同一類訂單在兩條路徑下應有一致的反饋語義
12.5. 4. 人工触发一次风控拒单
建議臨時設置嚴格規則(如單筆數量上限),提交超限訂單。 你應看到類似英文提示:
Order rejected by risk rule [MAX_ORDER_QTY]: order quantity exceeds limit
並可在 risk_log 中檢索到對應記錄。
建議至少驗證兩次:
一次被拒(確認拒因可見)
一次放行(確認策略可繼續運行)
12.6. 5. 观察订单状态变化
重點觀察是否出現:
submitted -> partial-filled -> filled
在分批成交場景中,最終狀態應與累計成交量一致。
如果你看到了 partial-filled 長時間不變,請回到排錯頁按“狀態理解偏差”劇本覈對日誌。
12.7. 6. 教程验收清单
E 路徑可運行
FD 路徑可運行
可觸發並識別風控拒單
可在日誌中定位拒單原因
可觀察並理解分批成交狀態變化
至少完成一次“拒單 -> 調整參數 -> 放行”閉環驗證
12.8. 7. 下一步
深入機制:
live_trading/3-risk-and-order-lifecycle扩展 Broker:
live_trading/4-broker-adapter-and-integration排錯手冊:
live_trading/5-artifacts-and-troubleshooting
12.9. 8. 结果判定标准
當你完成本教程後,應能獨立回答以下問題:
當前訂單是被風控拒絕,還是已提交但未成交?
爲什麼某筆訂單會停留在
partial-filled?需要去哪個日誌文件先看、再看什麼字段?
若以上三題都能獨立回答,說明你已經具備 live 場景下的基本排錯能力。