admin管理员组

文章数量:1032979

讯投 QMT 使用小技巧:判断当前时段是交易/非交易/竞价/盘后等时间段

A股的交易时间段

A股的交易时段分为开盘集合竞价、连续竞价(早盘、午盘)和收盘集合竞价三个阶段,具体时间如下:

1. 交易日安排

  • 周一至周五(法定节假日除外)
  • 不交易:周末(周六、周日)和法定节假日(如春节、国庆节等)。

2. 交易时段明细

时段

时间

备注

开盘集合竞价

9:15 - 9:25

- 9:15-9:20:可申报或撤单。- 9:20-9:25:可申报,不可撤单。

早盘连续竞价

9:30 - 11:30

正常交易时段,可自由买卖。

午间休市

11:30 - 13:00

不接受委托,未成交的订单仍有效。

午盘连续竞价

13:00 - 14:57

正常交易时段。

收盘集合竞价

14:57 - 15:00

可申报,不可撤单,以最大成交量撮合收盘价。


3. 其他规则

  • 科创板(688开头) & 创业板(300开头)
    • 新增盘后固定价格交易(15:05-15:30),按当日收盘价成交(需手动挂单)。
  • 大宗交易
    • 通常为15:00-15:30,需满足最低交易数量或金额门槛。

注意事项

  • 非交易时段(如夜间)的委托单会被暂存,次日9:15进入系统。
  • 集合竞价的成交价格遵循“最大成交量”原则,所有交易按同一价格成交。

QMT中的函数判断

以下是一个 Python 函数,用于判断当前时间属于 A 股的哪个交易时段(包括科创板和创业板的盘后交易),如果不是交易时段则返回 “非交易时段”

代码语言:javascript代码运行次数:0运行复制
import datetime

def get_a_share_trading_period():
    now = datetime.datetime.now()
    current_time = now.time()
    weekday = now.weekday()  # 0-4 是周一到周五

    # 检查是否为交易日(周一至周五,非节假日)
    if weekday >= 5:  # 周六、周日
        return "非交易时段(周末休市)"

    # 定义交易时段
    trading_periods = [
        {"name": "开盘集合竞价", "start": "09:15:00", "end": "09:25:00", "can_cancel": True},
        {"name": "早盘连续竞价", "start": "09:30:00", "end": "11:30:00", "can_cancel": True},
        {"name": "午间休市", "start": "11:30:00", "end": "13:00:00", "can_cancel": False},
        {"name": "午盘连续竞价", "start": "13:00:00", "end": "14:57:00", "can_cancel": True},
        {"name": "收盘集合竞价", "start": "14:57:00", "end": "15:00:00", "can_cancel": False},
    ]

    # 科创板和创业板的盘后交易(15:05-15:30)
    kechuang_cyb_period = {"name": "科创/创业板盘后交易", "start": "15:05:00", "end": "15:30:00", "can_cancel": False}

    # 检查当前是否在交易时段
    for period in trading_periods:
        start_time = datetime.datetime.strptime(period["start"], "%H:%M:%S").time()
        end_time = datetime.datetime.strptime(period["end"], "%H:%M:%S").time()
        if start_time <= current_time <= end_time:
            return f"{period['name']}(可撤单: {'是' if period['can_cancel'] else '否'})"

    # 检查是否在科创/创业板盘后交易时段
    kechuang_start = datetime.datetime.strptime(kechuang_cyb_period["start"], "%H:%M:%S").time()
    kechuang_end = datetime.datetime.strptime(kechuang_cyb_period["end"], "%H:%M:%S").time()
    if kechuang_start <= current_time <= kechuang_end:
        return f"{kechuang_cyb_period['name']}(按收盘价交易,不可撤单)"

    # 不在任何交易时段
    return "非交易时段"

# 测试
print(get_a_share_trading_period())
输出示例
  • 如果当前时间是 09:20:00,返回: 开盘集合竞价(可撤单: 是)
  • 如果当前时间是 12:30:00,返回: 午间休市(可撤单: 否)
  • 如果当前时间是 15:15:00,返回: 科创/创业板盘后交易(按收盘价交易,不可撤单)
  • 如果当前时间是 16:00:00 或周末,返回: 非交易时段
功能说明
  1. 判断交易日:仅周一到周五有效,周末返回非交易时段。
  2. 标准交易时段:包括集合竞价、连续竞价和收盘竞价。
  3. 科创/创业板盘后交易:15:05-15:30 额外判断。
  4. 撤单规则:集合竞价部分时段不可撤单(如 9:20-9:25)。

如果需要进一步扩展(如节假日判断),当天是不是交易日,请阅读我们提供的另外一个讯投qmt使用小技巧: 如何判断今天是不是交易日 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-02,如有侵权请联系 cloudcommunity@tencent 删除技巧datetimetime测试函数

讯投 QMT 使用小技巧:判断当前时段是交易/非交易/竞价/盘后等时间段

A股的交易时间段

A股的交易时段分为开盘集合竞价、连续竞价(早盘、午盘)和收盘集合竞价三个阶段,具体时间如下:

1. 交易日安排

  • 周一至周五(法定节假日除外)
  • 不交易:周末(周六、周日)和法定节假日(如春节、国庆节等)。

2. 交易时段明细

时段

时间

备注

开盘集合竞价

9:15 - 9:25

- 9:15-9:20:可申报或撤单。- 9:20-9:25:可申报,不可撤单。

早盘连续竞价

9:30 - 11:30

正常交易时段,可自由买卖。

午间休市

11:30 - 13:00

不接受委托,未成交的订单仍有效。

午盘连续竞价

13:00 - 14:57

正常交易时段。

收盘集合竞价

14:57 - 15:00

可申报,不可撤单,以最大成交量撮合收盘价。


3. 其他规则

  • 科创板(688开头) & 创业板(300开头)
    • 新增盘后固定价格交易(15:05-15:30),按当日收盘价成交(需手动挂单)。
  • 大宗交易
    • 通常为15:00-15:30,需满足最低交易数量或金额门槛。

注意事项

  • 非交易时段(如夜间)的委托单会被暂存,次日9:15进入系统。
  • 集合竞价的成交价格遵循“最大成交量”原则,所有交易按同一价格成交。

QMT中的函数判断

以下是一个 Python 函数,用于判断当前时间属于 A 股的哪个交易时段(包括科创板和创业板的盘后交易),如果不是交易时段则返回 “非交易时段”

代码语言:javascript代码运行次数:0运行复制
import datetime

def get_a_share_trading_period():
    now = datetime.datetime.now()
    current_time = now.time()
    weekday = now.weekday()  # 0-4 是周一到周五

    # 检查是否为交易日(周一至周五,非节假日)
    if weekday >= 5:  # 周六、周日
        return "非交易时段(周末休市)"

    # 定义交易时段
    trading_periods = [
        {"name": "开盘集合竞价", "start": "09:15:00", "end": "09:25:00", "can_cancel": True},
        {"name": "早盘连续竞价", "start": "09:30:00", "end": "11:30:00", "can_cancel": True},
        {"name": "午间休市", "start": "11:30:00", "end": "13:00:00", "can_cancel": False},
        {"name": "午盘连续竞价", "start": "13:00:00", "end": "14:57:00", "can_cancel": True},
        {"name": "收盘集合竞价", "start": "14:57:00", "end": "15:00:00", "can_cancel": False},
    ]

    # 科创板和创业板的盘后交易(15:05-15:30)
    kechuang_cyb_period = {"name": "科创/创业板盘后交易", "start": "15:05:00", "end": "15:30:00", "can_cancel": False}

    # 检查当前是否在交易时段
    for period in trading_periods:
        start_time = datetime.datetime.strptime(period["start"], "%H:%M:%S").time()
        end_time = datetime.datetime.strptime(period["end"], "%H:%M:%S").time()
        if start_time <= current_time <= end_time:
            return f"{period['name']}(可撤单: {'是' if period['can_cancel'] else '否'})"

    # 检查是否在科创/创业板盘后交易时段
    kechuang_start = datetime.datetime.strptime(kechuang_cyb_period["start"], "%H:%M:%S").time()
    kechuang_end = datetime.datetime.strptime(kechuang_cyb_period["end"], "%H:%M:%S").time()
    if kechuang_start <= current_time <= kechuang_end:
        return f"{kechuang_cyb_period['name']}(按收盘价交易,不可撤单)"

    # 不在任何交易时段
    return "非交易时段"

# 测试
print(get_a_share_trading_period())
输出示例
  • 如果当前时间是 09:20:00,返回: 开盘集合竞价(可撤单: 是)
  • 如果当前时间是 12:30:00,返回: 午间休市(可撤单: 否)
  • 如果当前时间是 15:15:00,返回: 科创/创业板盘后交易(按收盘价交易,不可撤单)
  • 如果当前时间是 16:00:00 或周末,返回: 非交易时段
功能说明
  1. 判断交易日:仅周一到周五有效,周末返回非交易时段。
  2. 标准交易时段:包括集合竞价、连续竞价和收盘竞价。
  3. 科创/创业板盘后交易:15:05-15:30 额外判断。
  4. 撤单规则:集合竞价部分时段不可撤单(如 9:20-9:25)。

如果需要进一步扩展(如节假日判断),当天是不是交易日,请阅读我们提供的另外一个讯投qmt使用小技巧: 如何判断今天是不是交易日 。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-02,如有侵权请联系 cloudcommunity@tencent 删除技巧datetimetime测试函数

本文标签: 讯投 QMT 使用小技巧判断当前时段是交易非交易竞价盘后等时间段