很多做量化策略的朋友都会问:“指数的开盘价、收盘价能直接拿吗?”
发布时间:2026-2-6 16:35阅读:44
很多做量化策略的朋友都会问:“指数的开盘价、收盘价能直接拿吗?” 答案是 肯定的! PTrade 的 get_history 和 get_price 两个接口,就能轻松获取指数的核心行情数据,沪深 300、上证指数、行业指数都能精准查询,今天就把具体用法讲透~
核心接口
获取指数行情主要靠两个接口,一个适合“拿最近 N 条数据”,一个适合“查指定时间段数据”,按需选择即可,操作都很简单。
1、get_history 接口:快速获取最近 N 条数据 ✅
适合想快速拿到近期指数行情的场景,比如“过去 10 天的收盘价”、“过去 5 周的开盘价”,无需设置具体日期,指定数量就行。超方便!
- 核心用法 + 示例代码
- 关键参数说明
注意事项 ⚠️
- 指数代码尾缀要正确 ️:标准指数尾缀为 XBHS(如沪深 300=000300.XBHS),部分主流指数(如上证指数 000001.SS)支持 SS/SZ 尾缀,查询前需确认代码格式哦!
- 非标准数据有差异 :行业指数、概念板块等数据,是数据源按成分股规则计算的非标准交易所数据,可能和同花顺、东方财富等三方平台有细微差异,需自行评估合理性。
- 指数不可交易 ❌:获取的指数行情仅用于行情参考或策略基准,不能直接下单交易哦!
- 可设为策略基准 :通过
set_benchmark()函数,可将指数设为策略比较基准,比如用沪深 300 衡量策略收益。
指数数据怎么用?
获取指数数据后,常见用法有两种,直接套用即可:
1、作为行情参考,辅助股票交易
def initialize(context):
g.stock_code = '600570.SS' # 恒生电子
g.index_code = '000300.XBHS' # 沪深300指数
set_universe(g.stock_code)
def handle_data(context, data):
# 获取沪深300指数近5天收盘价,计算平均值
index_data = get_history(5, '1d', 'close', g.index_code)
index_avg = index_data['close'].mean()
# 获取当前指数最新价
current_index = data[g.index_code]['close']
# 逻辑:指数突破5日均值,买入股票
if current_index > index_avg and get_position(g.stock_code).amount == 0:
order_value(g.stock_code, context.portfolio.cash)
log.info(f"指数突破均值{index_avg},买入{g.stock_code}")
2、设置为策略基准,比较收益
def initialize(context):
g.stock_code = '000001.SZ' # 平安银行
set_universe(g.stock_code)
# 将上证指数(000001.SS)设为策略基准,替代默认的沪深300
set_benchmark('000001.SS')
def handle_data(context, data):
# 策略逻辑(示例:简单买入持有)
if get_position(g.stock_code).amount == 0:
order_value(g.stock_code, context.portfolio.cash)
获取指数的开盘价、收盘价,核心就是用 get_history(最近 N 条)和 get_price(指定时间段),参数简单、代码易复制。记住指数尾缀规则和非标准数据的差异,就能精准拿到所需行情,不管是辅助交易还是作为基准,都能轻松实现!
如你有更多关于QMT使用、策略开发的问题,欢迎私信交流!
温馨提示:投资有风险,选择需谨慎。
-
春节红包大战升级,腾讯元宝 vs 阿里千问——AI入口之争白热化,哪些投资主线值得关注?
2026-02-08 11:27
-
2026春节档电影定档,影视涨幅居前,传媒还能上车吗?
2026-02-08 11:27
-
春节出行热背后,哪些“交通+旅居”指数值得关注?
2026-02-08 11:27


问一问

+微信
分享该文章
