🚀 AI 一键生成 ptrade 策略代码

PTrade API 指南:如何使用 get_market_list 和 get_market_detail 探索不同市场?

ptrade | 发布时间: 2025/12/2
以下内容由 EasyQuant 生成。

问题描述

如何查看平台都支持哪些交易市场,比如中国金融期货交易所的代码是什么?

解决方案

您可以通过 PTrade API 提供的 get_market_list() 函数来查询平台支持的所有交易市场及其对应的代码。

针对您的具体问题:中国金融期货交易所在 PTrade 平台中的市场代码为 CCFX

以下是详细的查询方法、代码示例以及常用市场代码对照表。

1. 使用代码查询支持的市场

您可以在策略的 before_trading_start 函数中调用 get_market_list(),该函数会返回一个包含市场编码(finance_mic)和市场名称(finance_name)的 DataFrame 数据。

def initialize(context):
    # 初始化函数,必须存在
    pass

def before_trading_start(context, data):
    # 获取所有支持的市场列表
    # 返回类型为 pandas.DataFrame
    market_df = get_market_list()
    
    # 打印完整的市场列表到日志
    log.info("平台支持的所有市场列表:")
    log.info(market_df)
    
    # 专门查询“中国金融期货交易所”的代码
    # 注意:需确保字符串匹配,或者直接查看完整列表
    target_market = "中国金融期货交易所"
    result = market_df[market_df['finance_name'] == target_market]
    
    if not result.empty:
        log.info("查询结果 - %s 的代码为:" % target_market)
        log.info(result)
    else:
        log.info("未找到名称为 %s 的市场" % target_market)

def handle_data(context, data):
    # 必须存在,但在本示例中不执行操作
    pass

2. 常用市场代码对照表

根据 PTrade 文档,以下是国内主要交易市场及其对应的代码(finance_mic)和证券代码后缀:

市场名称 市场代码 (finance_mic) 证券代码后缀 (用于下单/行情) 示例
上海证券交易所 XSHG .SS 600570.SS (恒生电子)
深圳证券交易所 XSHE .SZ 000001.SZ (平安银行)
中国金融期货交易所 CCFX .CCFX IF2309.CCFX (沪深300股指期货)
上海期货交易所 XSGE .XSGE AU2312.XSGE (沪金)
郑州商品交易所 XZCE .XZCE SR309.XZCE (白糖)
大连商品交易所 XDCE .XDCE M2309.XDCE (豆粕)
上海国际能源交易中心 XINE .XINE SC2310.XINE (原油)
北京证券交易所 XBSE .BJ 839725.BJ

3. 注意事项

  1. 函数调用位置get_market_list() 函数在回测和交易模式中,仅限在 before_trading_startafter_trading_end 中使用,请勿在 handle_data 中频繁调用。
  2. 代码后缀:在 PTrade 中进行 get_price(获取行情)或 order(下单)时,通常需要使用后缀简称(如 .SS, .SZ)。虽然 get_market_list 返回的是标准市场代码(如 XSHG),但在编写策略代码引用具体标的时,请务必使用文档规定的后缀格式。

Q&A

Q: 为什么我在 handle_data 中调用 get_market_list() 报错或没有反应?
A: 根据 PTrade API 文档规定,get_market_list() 仅支持在 before_trading_start(盘前)和 after_trading_end(盘后)阶段调用。handle_data 是盘中高频运行的函数,不支持调用此类静态基础信息接口。

Q: 股票代码后缀 .SS 和 .XSHG 有什么区别?
A: 在 PTrade 策略编写中,.SS 是上海市场的后缀简称,用于下单和获取行情(例如 order('600570.SS', 100))。而 XSHG 是交易所的标准市场编码(MIC),通常用于查询市场属性或在 get_positions 返回的数据结构中作为键值的一部分出现。建议在编写策略逻辑时统一使用简称(.SS, .SZ)。

Q: 如何查看某个市场具体的交易时间规则?
A: 您可以使用 get_market_detail(finance_mic) 函数。例如,调用 get_market_detail('CCFX') 可以获取中国金融期货交易所的详细信息,其中包括时间规则代码。