🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

ptrade 接口 get_market_detail 中的 trade_time_rule 字段代表什么?

ptrade | 发布时间: 2026/6/4
以下内容由 EasyQuant 生成。

问题描述

返回的trade_time_rule字段值为0、1等整数,分别代表什么交易时间规则?

/

解决方案

在 ptrade 量化交易平台中,使用 get_market_detail(finance_mic) 接口可以获取指定市场的详细信息,返回的 DataFrame 中包含一个名为 trade_time_rule 的字段。关于该字段的具体含义,以下是详细的解析:

1. 字段基本说明

  • 字段名称trade_time_rule
  • 数据类型numpy.int64(在 DataFrame 中通常显示为整数)
  • 基本含义:该字段用于标识对应产品或市场所遵循的交易时间规则编号

2. 具体数值代表的规则

根据 ptrade 官方 API 文档的示例,对于上证指数(000001)等 A 股标准标的,其 trade_time_rule 的返回值为 0

遗憾的是,ptrade 官方文档中并没有提供一份完整的 trade_time_rule 整数值与具体交易时间段的映射对照表。

不过,根据量化平台的通用设计逻辑,我们可以得出以下推论:

  • 规则 0:通常代表 A股标准交易时间,即交易日的 09:30-11:3013:00-15:00(包含盘前集合竞价等标准流程)。
  • 其他规则(如 1, 2 等):可能代表其他特定市场的交易时间。例如:
    • 期货市场:包含夜盘交易时间(如 21:00-23:00 或次日凌晨)。
    • 港股通市场:遵循香港股市的交易时间(如 09:30-12:00, 13:00-16:00)。
    • 科创板/创业板盘后交易:包含 15:05-15:30 的盘后固定价格交易阶段。

3. 如何自行探索规则映射

由于文档未详细列出,建议您在策略的 before_trading_start 或研究环境中,通过遍历不同类型的市场来观察其对应的 trade_time_rule 值:

def before_trading_start(context, data):
    # 获取市场列表
    market_list = get_market_list()
    
    # 遍历几个典型市场,查看其时间规则
    test_mics = ['XSHG', 'XSGE', 'XHKG-SS'] # 上交所, 上期所, 沪港通
    for mic in test_mics:
        detail = get_market_detail(mic)
        if detail is not None and not detail.empty:
            # 打印该市场第一个产品的交易时间规则
            rule = detail.iloc[0]['trade_time_rule']
            log.info(f"市场 {mic} 的交易时间规则编号为: {rule}")

4. 总结与建议

trade_time_rule 是底层柜台或行情系统用来区分不同交易时段的内部编码。在绝大多数普通的 A 股股票/ETF 策略中,您不需要直接使用这个字段,因为 ptrade 引擎的 handle_datarun_daily 已经自动为您处理了标准交易时间的触发。

如果您正在编写涉及**跨市场(如期货夜盘、港股通)**的复杂策略,且必须精确知道该整数代表的具体时间段,建议直接联系您开户券商的 ptrade 技术支持,获取该券商当前环境下的完整时间规则映射表。