3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,调用 get_market_detail(finance_mic) 接口可以获取指定市场的详细信息。该接口返回一个 pandas.DataFrame 对象,其中包含了您提到的四个核心字段。以下是它们的具体含义及使用方法:
prod_code (产品代码)
str)。例如,上证指数的代码为 '000001'。get_price、get_history)或交易接口(如 order)的基础参数。prod_name (产品名称)
str)。例如,'000001' 对应的名称为 '上证指数'。hq_type_code (类型代码)
str)。例如,'MRI' 通常代表某种特定的指数或市场分类。trade_time_rule (时间规则)
numpy.int64)。例如,0 可能代表标准的 A 股交易时间(9:30-11:30, 13:00-15:00)。run_daily)的触发时间,避免在非交易时段请求行情或下单。这些信息通常在策略的初始化阶段(initialize)或盘前准备阶段(before_trading_start)使用,用于动态构建股票池或进行市场环境的校验。
以下示例展示了如何在盘前获取上海证券交易所(XSHG)的市场详情,并筛选出特定的指数代码:
def initialize(context):
# 初始化时设置一个默认标的
g.security = '600570.SS'
set_universe(g.security)
def before_trading_start(context, data):
# 获取上海证券交易所(市场编码为 'XSHG')的详细信息
# 注意:该接口仅限在 before_trading_start 和 after_trading_end 中使用
market_detail_df = get_market_detail('XSHG')
if market_detail_df is not None and not market_detail_df.empty:
# 打印前几行数据查看结构
log.info("上海市场详细信息前3行:\n%s" % market_detail_df.head(3))
# 示例:筛选出类型代码为 'MRI' 的所有产品代码
mri_products = market_detail_df[market_detail_df['hq_type_code'] == 'MRI']
# 提取产品代码和名称,转换为字典方便后续使用
mri_dict = dict(zip(mri_products['prod_code'], mri_products['prod_name']))
log.info("筛选出的 MRI 类型产品:\n%s" % mri_dict)
# 假设我们需要监控上证指数(000001),可以先检查其是否存在于该市场中
if '000001' in mri_dict:
log.info("成功找到标的:%s" % mri_dict['000001'])
# 后续可以结合 get_history 获取该指数的行情数据作为大盘参考
def handle_data(context, data):
pass
通过 get_market_detail 获取的这四个字段,能够帮助量化开发者全面了解特定市场内的标的构成。合理利用 hq_type_code 进行分类筛选,利用 prod_code 进行行情订阅,结合 trade_time_rule 规避时间错位风险,是编写健壮的跨品种/跨市场策略的重要基础。