QMT策略中如何判断股票停牌和复牌并处理持仓
发布时间:1小时前阅读:53

停牌是股票交易中常见的现象,对于量化策略来说,如果不正确处理停牌,可能导致回测失真或实盘挂单无效。QMT提供了接口来查询股票的停牌状态,策略需要根据状态来调整买卖决策。下面介绍方法。
在QMT中,可以使用xtdata.get_instrument_detail或get_market_data的字段来获取股票当前是否停牌。更常用的方式是调用xtdata.get_trading_calendar或者订阅行情后检查last_price是否为0或停牌标志。一个稳健的做法是维护一个停牌股票列表,每天盘前更新。
代码示例:
`
def is_suspended(stock, date):
detail = xtdata.get_instrument_detail(stock)
if detail:
检查停牌起始日和复牌日
suspend_date = detail.get('SuspendDate')
resume_date = detail.get('ResumeDate')
if suspend_date and resume_date:
if suspend_date <= date < resume_date:
return True
return False
`
如果股票停牌,策略应该如何处理?通常有两种方式:
1. 被动处理:策略不主动卖出停牌股票,而是持有直到复牌。但在实盘中,复牌后可能连续涨停或跌停,策略需要决定是否立即执行原有信号。有些策略会在复牌日以开盘价立即挂单卖出,以避免不确定性。
2. 主动替代:对于指数增强策略,停牌股票无法交易,可以用同行业的其他股票临时替代,或者将资金分配给其他股票。
回测时,QMT会自动处理停牌期间的交易:如果某只股票在回测区间内停牌,那么在该区间内order函数会失败(返回空订单),你需要捕获错误并跳过。同时,复牌后的第一个交易日,handle_bar会正常触发。
另外,对于融资融券,停牌股票通常不能作为担保品,也不能被融券卖出。策略需检查。
国金证券的QMT提供完整的股票基础信息数据,10万资金即可开通。量化社群中有现成的停牌处理函数模板。因为停牌难以预测,最好的办法是在选股时尽量避免长期停牌风险,比如剔除过去一年有过长期停牌的股票。两融业务全线上办理,如果你持有停牌的融资仓位,维持担保比例计算会受影响,需要提前了解规则。总之,停牌处理虽是小细节,但忽视它可能造成实盘意外。
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇


问一问

+微信
分享该文章
