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

PTrade 集合竞价实战:如何使用 get_trend_data 获取早盘数据预判开盘强度

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: PTrade 集合竞价实战:获取 get_trend_data 数据预判开盘强度

Question: 如何利用 PTrade 的 get_trend_data 获取早盘集合竞价期间的价格与成交量数据?

解决方案

PTrade 集合竞价实战:获取 get_trend_data 数据预判开盘强度

在量化交易中,早盘集合竞价(09:15 - 09:25)包含着市场主力资金的重要信号。利用 PTrade 平台的 get_trend_data 接口,投资者可以在开盘前快速获取集中竞价期间的代码数据,预判个股的开盘强度并制定相应的交易策略。


1. get_trend_data 函数 API 说明

get_trend_data 用于获取集中竞价期间的代码数据。可以在研究、回测以及交易模块中使用。

接口定义与参数

get_trend_data(date=None, stocks=None, market=None)
  • date (str): 查询日期,格式为 'YYYYMMDD'(如 '20230308')。交易/回测场景默认当前交易日。
  • stocks (str/list[str]): 股票代码或代码列表(如 '600570.SS'['600570.SS', '000001.SZ'])。
  • market (str/list[str]): 市场类型(如 'XSHG''XSHE')。
  • 注意: stocksmarket 不能同时入参。若都不传,默认返回当日上海与深圳市场所有代码的数据。

返回数据结构

返回一个 dict 对象,Key 为股票代码,Value 为包含集合竞价数据的字典,常用字段包括:

  • time_stamp: 时间戳 (int)
  • hq_px: 竞价价格 (float)
  • wavg_px: 加权价格 (float)
  • business_amount: 总成交量 (int)
  • business_balance: 总成交额 (int)
  • amount: 持仓量 (int)

2. 预判开盘强度的实战代码示例

结合 run_daily 定时任务,在早盘 09:23 - 09:25 之间获取竞价数据,对比前一交易日收盘价或涨停价,可以评估开盘强度并下单:

def initialize(context):
    # 设置监控的目标股票
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 每天 09:24 分运行早盘竞价分析函数
    run_daily(context, check_auction_strength, time='09:24')

def check_auction_strength(context):
    stock = g.security
    
    # 1. 获取集合竞价数据
    trend_data = get_trend_data(stocks=stock)
    if not trend_data or stock not in trend_data:
        log.warning(f"未获取到 {stock} 的集合竞价数据")
        return
        
    auction_price = trend_data[stock].get('hq_px', 0)
    auction_volume = trend_data[stock].get('business_amount', 0)
    
    # 2. 获取行情快照(包含昨收盘价和涨停价信息)
    snapshot = get_snapshot(stock)
    if not snapshot or stock not in snapshot:
        return
        
    preclose_px = snapshot[stock]['preclose_px']
    up_limit = snapshot[stock]['up_px']
    
    # 3. 计算竞价涨幅
    if preclose_px > 0:
        pct_change = (auction_price - preclose_px) / preclose_px * 100
        log.info(f"{stock} 集合竞价价格: {auction_price}, 竞价成交量: {auction_volume}, 竞价涨幅: {pct_change:.2f}%")
        
        # 4. 判定开盘强度并执行策略(示例:高开大于 2% 且成交量放大时买入)
        if pct_change >= 2.0 and auction_price < up_limit:
            log.info(f"{stock} 表现强劲,以涨停价或限价挂单买入")
            order(stock, 100, limit_price=up_limit)

def handle_data(context, data):
    pass

3. 注意事项

  1. 运行时间点控制: 09:15-09:20 允许撤单,数据波动较大;09:20-09:25 不允许撤单,此时的 get_trend_data 真实度最高。建议在 09:23~09:25 之间进行数据调取与决策。
  2. 异常处理: 获取在线数据时,建议添加对返回结果非空的校验处理(如 if stock in trend_data:),确保策略运行稳健。