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

ptrade 调用 get_market_detail() 报错“市场代码不存在”?finance_mic 参数获取指南

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

问题描述

调用get_market_detail()时报错“市场代码不存在”,finance_mic参数应该从哪里获取?

/

解决方案

在 ptrade 量化平台中,调用 get_market_detail(finance_mic) 时如果遇到“市场代码不存在”的报错,通常是因为传入了错误的 finance_mic(市场编码)。

finance_mic 参数的获取方法

finance_mic 参数必须get_market_list() 接口的返回结果中获取。

get_market_list() 接口会返回当前平台支持的所有市场列表,其返回的 DataFrame 中包含 finance_mic(市场编码)和 finance_name(市场名称)两个字段。

解决步骤与代码示例

步骤 1:调用 get_market_list() 查看所有支持的市场编码。
步骤 2:从返回的列表中找到你需要的市场对应的 finance_mic
步骤 3:将正确的 finance_mic 传入 get_market_detail()

def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def before_trading_start(context, data):
    # 1. 获取并打印所有市场列表,查找正确的 finance_mic
    market_list_df = get_market_list()
    log.info("当前支持的市场列表:\n%s" % market_list_df)
    
    # 假设通过打印发现上海证券交易所的 finance_mic 是 'XSHG'
    # 2. 使用正确的 finance_mic 获取市场详情
    try:
        sh_market_detail = get_market_detail('XSHG')
        log.info("上海证券交易所详细信息:\n%s" % sh_market_detail)
    except Exception as e:
        log.error("获取市场详情失败:%s" % e)

def handle_data(context, data):
    pass

⚠️ 重要注意事项

根据 ptrade API 文档规定,get_market_list()get_market_detail() 这两个接口仅限在 before_trading_start(盘前)和 after_trading_end(盘后)事件中使用。如果在 handle_datatick_data 等盘中函数中调用,可能会导致获取失败或报错。