策略若在交易暫停期間持倉,就得等恢復交易後才有一般的出場機會。若策略在暫停期間送出訂單,依交易場所與訂單指示不同,訂單可能遭拒、排隊、取消,或保留到恢復交易時處理。若回測把訂單成交在暫停前的最後價格,模擬的就是一個不存在的市場。
實務原則很簡單:把暫停交易視為交易場所狀態的變化,依規則保留仍有效的訂單與持倉,並另外模擬恢復交易時的執行。價格序列中的一段空白,無法告訴你這些資訊。
交易暫停和資料缺漏或成交量為 0 是一回事嗎?
不是。資料缺漏表示你的資料源沒有觀測值;成交量為 0 表示資料源回報該時段沒有成交;暫停交易則表示因特定市場事件而無法或受限交易。這些情況對訂單的影響各不相同。
假設一檔股票在 10:17 暫停交易,暫停前成交價為 $24.80。你的策略在 10:18 送出一筆 $24.70 的賣出限價單。此時沒有一般的連續交易市場可供撮合。若股票以 $22.10 恢復交易,回測不能只因這筆限價單相對於暫停前的過時報價已可成交,就悄悄把成交價算成 $24.70。訂單如何處理,取決於交易場所規則、有效時間,以及是否符合恢復交易程序的資格。
| 觀察到的狀況 | 代表的意義 | 模擬器應採取的處理方式 |
|---|---|---|
| 資料中斷 | 你的資料無法判斷市場狀態 | 將價格標示為無法取得;不要假設交易已停止 |
| 成交量為 0 的時段 | 該時段沒有回報成交 | 將報價與交易場所狀態和成交量分開處理 |
| 公告暫停交易 | 交易暫停或受到限制 | 套用暫停交易期間的訂單與恢復交易規則 |
暫停交易也不一定是整個市場都受影響。某項證券可能暫停交易,但相關商品仍照常交易;不同交易場所的狀況也可能不同。事件紀錄應包含商品、交易場所、可取得的暫停原因、開始時間、結束時間與資料來源。若資料供應商只提供日期或某個時間點的狀態快照,就不要假裝知道狀態確切切換的時間。
暫停交易期間,訂單會如何處理?
沒有一體適用的答案。交易場所可能取消訂單、讓訂單繼續掛著,或允許訂單參與開盤或恢復交易時的集合競價。訂單類型與有效時間都很重要,交易場所與事件性質也一樣重要。模擬器若讓每筆訂單都保留到恢復交易,就是在自行選定處理方式,而非遵循什麼必然規則。
請為每種訂單類別寫明處理方式。例如,策略得知交易暫停後,可能取消自己尚未成交的訂單;把保護性停損視為交易意圖,而非保證成交;並在恢復交易後重新送單。另一種策略則可能刻意保留符合資格的訂單參與集合競價。這是不同的策略,回測結果也應有所不同。
停損單尤其需要謹慎處理。停損價格是觸發條件,不代表保證以該價格成交。若股票恢復交易時已跌破賣出停損價,第一個可成交價格可能低得多。若把停損單模擬成觸發時就自動以停損價成交,就會掩蓋這筆訂單原本要管理的跳空風險。
該如何模擬恢復交易時的價格與成交?
若有恢復交易集合競價資料,請使用這些資料:包括集合競價價格、相關的未平衡量或指示價格歷史,以及訂單的參與資格與優先順序規則。接著套用策略的訂單限制。限價單只有在集合競價價格與分配結果允許時才能成交;市價單則可能以集合競價價格成交,仍須遵守交易場所規則與可用數量限制。
若沒有集合競價資料,就不要拿暫停前的最後一筆成交來假裝能精準還原。較保守的近似做法是延後到恢復交易後第一筆可靠觀測,再套用有明確記錄的價差與衝擊模型。但這仍可能過度樂觀:K 棒的最高價與最低價無法顯示你的訂單是否排在隊伍前面,或你的價格是否有足夠成交量。
這個跳空幅度不是預測,而是用來說明沿用舊價格標記,如何讓風險看起來比實際小。暫停期間,持倉仍然存在,但目前的清算價值可能無從得知。若有記帳需要,可以保留最後的標記價格,但要註明它已過時,也不要把它當成可執行報價。
如何判斷暫停交易的處理方式是否左右了回測結果?
針對每筆交易時段與暫停交易或恢復交易重疊的模擬訂單,做一次簡單稽核。記錄事件、訂單前後的狀態、採用的成交規則,以及價格來源。接著比較幾種合理的處理方式:暫停時取消訂單、保留符合資格的訂單參與恢復交易,或延後所有新成交,直到一般交易恢復。
如果績效大幅變化,代表結果取決於資料可能無法判定的市場機制。這項資訊很有用。它能指出在把回測結果視為證據之前,還應查閱哪些交易場所文件或更高解析度的集合競價資料。
也要如實記錄持倉。暫停交易不會讓曝險在圖表等待下一根 K 棒時憑空消失。策略仍承受市場重新開放時所發現的價格風險。
← 所有文章


