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

PTrade 接口对比:get_trend_data 与 get_price 的核心区别与应用

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

问题描述



Title: PTrade 接口对比:get_trend_data 与 get_price 的核心区别与应用

Question: ptrade 中 get_trend_data 和 get_price 在获取竞价数据时有什么区别?

解决方案

PTrade 接口对比:get_trend_data 与 get_price 的核心区别与应用

在 PTrade 量化交易平台中,get_trend_dataget_price 都是用于获取历史行情数据的重要接口,但它们的设计定位、数据维度以及应用场景有着本质的区别。特别是在处理集合竞价期间的数据时,两者的表现完全不同。


一、 核心区别对比

维度 get_trend_data (集中竞价数据接口) get_price (历史K线数据接口)
定位 专门用于获取集中竞价期间(如早盘集合竞价 09:15 - 09:25)的细分数据。 用于获取连续交易期的标准历史K线行情(日线、分钟线、周线等)。
数据粒度 竞价期间的快照级/分时级趋势数据。 标准K线周期(1m, 5m, 1d 等)的开高低收(OHLC)数据。
停牌处理 停牌或无竞价数据时返回空。 停牌时使用停牌前的数据填充,成交量记为 0。
返回格式 统一返回 dict 格式,Key 为股票代码,Value 包含时间戳、价格、成交量等。 根据入参不同,可返回 DataFramePaneldict 格式。
典型场景 集合竞价追涨停、开盘爆量突破策略、早盘异动监控。 趋势跟踪(如双均线)、多因子选股、历史回测数据准备。

二、 接口参数与返回格式详解

1. get_trend_data (集中竞价数据)

  • 接口定义get_trend_data(date=None, stocks=None, market=None)
  • 核心特点:专门针对竞价时段。如果不传参数,默认返回当日 XSHE (深交所) 和 XSHG (上交所) 所有代码的数据。
  • 返回字段
    • time_stamp: 时间戳
    • hq_px: 价格
    • wavg_px: 加权价格
    • business_amount: 总成交量
    • business_balance: 总成交额

2. get_price (标准历史K线)

  • 接口定义get_price(security, start_date=None, end_date=None, frequency='1d', fields=None, fq=None, count=None, is_dict=False)
  • 核心特点:无法获取 09:25 之前的集合竞价分笔趋势,只能获取 09:30 开盘后的标准K线(日K线中的 open 价格通常为集合竞价产生的开盘价,但无法提供竞价过程中的量价趋势)。

三、 集合竞价策略应用示例

如果您想编写一个集合竞价追涨停开盘爆量的策略,必须使用 get_trend_dataget_snapshot 来获取即时竞价数据,而不能依赖 get_price(因为 get_price 不支持盘前实时竞价趋势的细分获取)。

示例:利用 get_trend_data 获取竞价数据

def initialize(context):
    g.security = '600570.SS'  # 恒生电子
    set_universe(g.security)
    # 每天 9:26 分(集合竞价结束,连续竞价开始前)运行评估函数
    run_daily(context, check_auction, time='9:26')

def check_auction(context):
    # 获取当日集合竞价期间的数据
    trend_data = get_trend_data(stocks=g.security)
    
    if g.security in trend_data:
        security_data = trend_data[g.security]
        log.info(f"{g.security} 集合竞价数据: {security_data}")
        
        # 提取竞价结束时的成交量和价格
        if len(security_data) > 0:
            last_auction = security_data[-1]  # 获取竞价最后一笔
            auction_price = last_auction['hq_px']
            auction_volume = last_auction['business_amount']
            
            log.info(f"集合竞价最终价格: {auction_price}, 成交量: {auction_volume}")
            
            # 结合您的策略逻辑进行报单...

四、 总结建议

  1. 做盘前/开盘即时交易:首选 get_trend_data 获取竞价趋势,或使用 get_snapshot 获取 9:25 的静态快照(包含涨跌停价、委买委卖队列)。
  2. 做常规技术指标分析(如 MACD, KDJ, 均线):必须使用 get_priceget_history 获取连续的 OHLC 历史K线数据。