3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,get_trend_data 和 get_price 都是用于获取历史行情数据的重要接口,但它们的设计定位、数据维度以及应用场景有着本质的区别。特别是在处理集合竞价期间的数据时,两者的表现完全不同。
| 维度 | get_trend_data (集中竞价数据接口) |
get_price (历史K线数据接口) |
|---|---|---|
| 定位 | 专门用于获取集中竞价期间(如早盘集合竞价 09:15 - 09:25)的细分数据。 | 用于获取连续交易期的标准历史K线行情(日线、分钟线、周线等)。 |
| 数据粒度 | 竞价期间的快照级/分时级趋势数据。 | 标准K线周期(1m, 5m, 1d 等)的开高低收(OHLC)数据。 |
| 停牌处理 | 停牌或无竞价数据时返回空。 | 停牌时使用停牌前的数据填充,成交量记为 0。 |
| 返回格式 | 统一返回 dict 格式,Key 为股票代码,Value 包含时间戳、价格、成交量等。 |
根据入参不同,可返回 DataFrame、Panel 或 dict 格式。 |
| 典型场景 | 集合竞价追涨停、开盘爆量突破策略、早盘异动监控。 | 趋势跟踪(如双均线)、多因子选股、历史回测数据准备。 |
get_trend_data(date=None, stocks=None, market=None)XSHE (深交所) 和 XSHG (上交所) 所有代码的数据。time_stamp: 时间戳hq_px: 价格wavg_px: 加权价格business_amount: 总成交量business_balance: 总成交额get_price(security, start_date=None, end_date=None, frequency='1d', fields=None, fq=None, count=None, is_dict=False)open 价格通常为集合竞价产生的开盘价,但无法提供竞价过程中的量价趋势)。如果您想编写一个集合竞价追涨停或开盘爆量的策略,必须使用 get_trend_data 或 get_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}")
# 结合您的策略逻辑进行报单...
get_trend_data 获取竞价趋势,或使用 get_snapshot 获取 9:25 的静态快照(包含涨跌停价、委买委卖队列)。get_price 或 get_history 获取连续的 OHLC 历史K线数据。