持仓跨越交易停牌的策略,在交易恢复前没有常规的退出机会。停牌期间提交的订单,则可能被拒绝、排队、撤销,或带入复牌阶段,具体取决于交易场所和订单指令。如果你的回测按停牌前的最后价格成交,就等于模拟了一个并不存在的市场。
实用原则很简单:把停牌表示为交易场所状态的变化,保留规则规定在停牌期间仍然有效的订单和持仓,并单独模拟复牌时的执行。价格序列中的一段空白无法告诉你这些信息。
交易停牌和数据缺失或成交量为零是一回事吗?
不是。数据缺失表示你的数据源没有观测记录。成交量为零表示数据源报告某个时段内没有成交。停牌则表示因特定市场事件,交易不可用或受到限制。这几种情况对订单的影响各不相同。
假设一只股票在 10:17 停牌,停牌前成交价为 $24.80。你的策略在 10:18 提交了一笔 $24.70 的卖出限价单。此时没有正常的连续交易市场可供成交。如果该股票以 $22.10 复牌,回测不能仅仅因为限价单相对于停牌前的陈旧报价已具备成交条件,就悄悄按 $24.70 给它成交。订单的去向取决于交易场所规则、有效期以及它是否符合参与复牌流程的条件。
| 观测情况 | 含义 | 模拟器应采取的处理 |
|---|---|---|
| 数据源中断 | 你的数据无法确定市场状态 | 将价格标记为不可用;不要假设交易已经停止 |
| 零成交量时段 | 该时段没有报告成交 | 将报价和交易场所状态与成交量分开处理 |
| 正式宣布停牌 | 交易暂停或受到限制 | 应用停牌期间的订单规则和复牌规则 |
停牌也不一定是全市场事件。某只证券可能暂停交易,而相关工具仍在交易;不同交易场所的情况也可能不同。事件记录需要包含标的、交易场所、可获取时的停牌原因、开始时间、结束时间和信息来源。如果数据提供商只给出日期或某个时点的状态快照,就不要假装自己知道状态转换的准确时间。
停牌期间订单会怎样处理?
没有通用答案。订单可能被交易场所撤销、继续挂在市场中,或符合参与开盘或复牌集合竞价的条件。订单类型和有效期都很重要,交易场所和事件也同样重要。模拟器如果让所有订单都继续有效,那是在选择一种处理政策,而不是遵循什么自然法则。
要为每类订单明确写下处理政策。例如,策略获知停牌后,可以撤销自己尚未成交的订单,把保护性止损保留为一种意图而非保证成交的指令,并在交易恢复后提交新订单。另一种策略则可能有意保留符合条件的订单参与集合竞价。这是两种不同的策略,结果也应有所不同。
止损单尤其需要谨慎处理。止损价是触发条件,并不保证按该价格成交。如果股票复牌时已经跌破卖出止损价,首个可执行价格可能低得多。将止损单模拟为在触发价自动成交,会掩盖这类订单原本要管理的跳空风险。
应该如何模拟复牌价格和成交?
有复牌集合竞价数据时就使用这些数据:竞价价格、相关情况下的未匹配量或指示价格历史,以及订单的参与资格和优先级规则。然后应用策略的订单限制。只有竞价价格和分配结果允许时,限价单才能成交;市价单则可能按竞价价格成交,具体受交易场所规则和可用数量约束。
没有集合竞价数据时,不要拿停牌前的最后一笔成交来凭空制造精确性。一种较保守的近似方法是将执行推迟到复牌后首个可靠观测,再应用有据可查的价差和冲击模型。这仍可能偏乐观:K 线的最高价和最低价无法说明你的订单是否在队列中排在前面,也无法说明你的价格上是否有足够的成交量。
这个跳空不是预测,而是用来说明沿用旧估值会如何低估风险。暂停期间,持仓仍然存在,但它当前的清算价值可能无法确定。必要时可以保留最后估值用于会计记录,但要标注为陈旧价格,也不要把它当作可执行报价。
如何判断停牌处理是否左右了我的回测结果?
对每笔与停牌或复牌阶段重叠的模拟订单进行一次简要审计。记录相关事件、订单执行前后的状态、所选成交规则和价格来源。然后比较几种合理政策下的结果:停牌时撤销订单、保留符合条件的订单参与复牌,以及推迟所有新订单的执行,直到常规交易恢复。
如果业绩变化显著,说明结果依赖于你的数据可能无法还原的市场机制。这是有用的信息。它告诉你,在把回测当作证据之前,应先查阅交易场所文档或更高分辨率的集合竞价数据。
还要如实记录持仓。停牌不会让风险敞口在图表等待下一根 K 线时凭空消失。市场重新开盘时,策略仍要承受市场发现的任何价格。
← 全部文章


