讯投QMT避坑指南:A股交易时段规则全解析(含科创/创业板特殊时段)

张开发
2026/4/15 5:36:17 15 分钟阅读

分享文章

讯投QMT避坑指南:A股交易时段规则全解析(含科创/创业板特殊时段)
讯投QMT避坑指南A股交易时段规则全解析含科创/创业板特殊时段刚接触A股量化交易的新手们是否曾在非交易时段挂单后苦苦等待成交是否因不了解集合竞价的撤单规则而错失良机本文将带您深入解析A股交易时段的那些隐藏规则特别是科创板和创业板的特殊交易机制帮助您在使用讯投QMT平台时避开这些常见陷阱。1. A股基础交易时段详解A股的交易时间看似简单实则暗藏玄机。不同于海外市场A股采用分段式交易机制每个时段都有独特的规则和操作限制。1.1 标准交易时段划分表A股主要交易时段及操作规则时段名称时间范围可操作类型特殊规则开盘集合竞价9:15-9:25申报/撤单9:20前可撤单9:20后不可撤早盘连续竞价9:30-11:30自由买卖价格优先、时间优先原则午间休市11:30-13:00不接受新委托已挂未成交订单仍有效午盘连续竞价13:00-14:57自由买卖与早盘规则一致收盘集合竞价14:57-15:00申报不可撤以最大成交量撮合收盘价关键细节提醒集合竞价阶段特别是9:20-9:25的挂单不可撤销这常导致新手犯下手滑错误午间休市时段虽然不接受新委托但已挂订单会保留至下午开盘收盘集合竞价的成交价即为当日收盘价对策略执行有重要影响1.2 非交易时段的委托处理许多新手容易忽视的是在非交易时段如夜间提交的委托单并不会被立即丢弃。这些订单会被券商系统暂存并在次日9:15自动进入交易所系统。这意味着# QMT中检查当前是否可交易的关键判断 if not is_trading_time(): print(当前为非交易时段委托将被暂存至下一交易日)注意部分券商可能对非交易时段委托有特殊限制建议在使用QMT自动化交易前确认所在券商的具体规则。2. 科创板和创业板的特殊交易机制作为注册制试点板块科创板和创业板股票代码分别以688和300开头引入了多项创新机制其中盘后固定价格交易最值得关注。2.1 盘后固定价格交易详解这一特殊时段为15:05-15:30具有以下特点交易价格固定为当日收盘价买卖申报需手动挂单不会自动参与按照时间优先原则撮合成交不可撤销已提交的订单典型使用场景机构投资者的大额交易需求避免盘中交易对价格造成冲击基于收盘价的特定策略执行2.2 QMT中的特殊处理代码针对科创板和创业板的特殊规则QMT用户需要调整交易逻辑def handle_special_board(stock_code): if stock_code.startswith((688,300)): # 盘后交易时段特殊处理 if is_after_hours_trading(): return 进入科创/创业板盘后交易模式 return 标准交易处理3. 集合竞价的深度解析集合竞价是A股特有的价格形成机制也是量化交易中最容易踩坑的环节之一。3.1 开盘集合竞价的三个阶段自由申报期9:15-9:20可自由提交和撤销订单显示的虚拟成交量可能含有大量噪音不可撤单期9:20-9:25只能提交新订单不能撤销现有订单成交量反映真实市场意愿撮合期9:25-9:30系统计算并公布开盘价所有符合价格的订单按最大成交量原则成交3.2 收盘集合竞价的注意事项与开盘集合竞价不同收盘集合竞价14:57-15:00全程不可撤单。这意味着重要提示在14:57前未撤销的订单将自动参与收盘竞价且无法中途退出这对短线策略尤为关键。4. QMT实战时段判断与自动化处理在量化交易中准确判断当前所处交易时段是策略执行的基础。以下是一个增强版的时段判断函数import datetime def get_trading_period_enhanced(): now datetime.datetime.now() current_time now.time() weekday now.weekday() # 基础判断非交易日 if weekday 5: return {period: 非交易时段, action: 委托暂存} # 标准交易时段判断 periods [ {name: 开盘集合竞价, start: 09:15:00, end: 09:25:00, can_cancel: current_time datetime.time(9,20)}, {name: 早盘连续竞价, start: 09:30:00, end: 11:30:00}, {name: 午间休市, start: 11:30:00, end: 13:00:00}, {name: 午盘连续竞价, start: 13:00:00, end: 14:57:00}, {name: 收盘集合竞价, start: 14:57:00, end: 15:00:00} ] for period in periods: start datetime.datetime.strptime(period[start], %H:%M:%S).time() end datetime.datetime.strptime(period[end], %H:%M:%S).time() if start current_time end: return {period: period[name], action: 可交易 if 竞价 in period[name] else 休市, can_cancel: period.get(can_cancel, False)} # 科创/创业板盘后交易判断 if datetime.time(15,5) current_time datetime.time(15,30): return {period: 科创/创业板盘后, action: 固定价格交易, can_cancel: False} return {period: 非交易时段, action: 委托暂存}使用建议将该函数集成到QMT的策略框架中根据返回的period和action字段调整交易行为特别注意can_cancel字段对撤单逻辑的控制5. 常见错误与避坑指南在实际操作中我们观察到新手最容易在以下方面犯错错误1忽视集合竞价的撤单时间窗误以为9:25前都能自由撤单解决方案在QMT中设置9:19自动检查并清理试验性订单错误2混淆科创板和主板的交易规则在15:00后尝试交易非科创板股票解决方案在代码中严格区分股票类型错误3低估非交易时段订单的影响夜间下的单次日意外成交解决方案在策略中添加明确的有效期控制# 订单有效期控制示例 order_params { symbol: 600000.SH, price: 10.50, amount: 100, valid_until: today # 当日有效 }在实际使用QMT进行自动化交易时我们发现最实用的技巧是在每个交易时段切换点设置检查点例如在14:56:30自动检查未成交订单避免它们被动进入收盘竞价阶段。

更多文章