3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,get_history、data(事件函数参数)和 get_snapshot 是获取行情数据的三种主要方式。它们在数据类型、时间维度、适用场景和返回内容上有着显著的差异。以下是详细的对比解析:
get_history:获取历史 K 线数据count 数量和 frequency 频率)。pandas.DataFrame 或 dict。# 获取过去5天的日线收盘价
df = get_history(5, '1d', 'close', '600570.SS')
data 参数:获取当前运行周期的 K 线切片数据data 是 handle_data(context, data) 等事件触发函数中传入的参数。它代表了当前策略运行周期的最新数据切片。SecurityUnitData 对象,包含 open, close, high, low, volume, price(最新价)等属性。def handle_data(context, data):
# 获取当前周期的最新价
current_price = data['600570.SS']['close']
get_snapshot:获取实时行情快照(Tick 级别)bid_grp, offer_grp)、最新成交价(last_px)、涨跌停价(up_px, down_px)、交易状态(trade_status)、委比、量比等极其丰富的 Tick 级别字段。trade_status 或对比 last_px 与 up_px)、获取最实时的撮合价格。# 获取实时快照
snapshot = get_snapshot('600570.SS')
last_price = snapshot['600570.SS']['last_px']
bid_1_price = snapshot['600570.SS']['bid_grp'][1][0] # 买一价
| 特性 | get_history |
data (参数) |
get_snapshot |
|---|---|---|---|
| 数据性质 | 历史 K 线序列 | 当前周期的 K 线切片 | 实时盘口快照 (Tick) |
| 时间维度 | 过去 N 个周期 | 当前 1 个周期 | 当前瞬间 |
| 主要字段 | OHLCV 等 | OHLCV、price 等 | 买卖五档、最新价、涨跌停价、交易状态等 |
| 返回类型 | DataFrame / dict | dict (含 SecurityUnitData) | dict |
| 适用模块 | 研究、回测、交易 | 回测、交易 (事件函数内) | 仅交易模块 |
| 典型用途 | 计算均线、技术指标 | 获取当前周期最新价判断信号 | 盘口分析、涨跌停判断、精细化下单 |
get_snapshot 获取盘口数据,只能依赖 data 或 get_history 获取 K 线数据。before_trading_start),get_snapshot 返回的数据中大部分字段(如成交量、最新价)可能为 0,因为此时尚未产生连续竞价交易。data 参数的数据是引擎直接推送的,访问速度极快;而 get_history 和 get_snapshot 需要向底层请求数据,频繁调用需注意性能和流控。