🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

JoinQuant聚宽平台使用get_price获取多只股票最新价的详细指南

joinquant | 发布时间: 2026/6/2
以下内容由 EasyQuant 生成。

问题描述

如何用get_price获取多只股票的最新价?

解决方案

在JoinQuant(聚宽)量化平台中,get_price 是获取历史行情数据最常用的 API 之一。要获取多只股票的最新价,可以通过传入股票代码列表,并设置 count=1 来实现。

核心代码示例

# 假设我们要获取平安银行和万科A的最新收盘价
stock_list = ['000001.XSHE', '000002.XSHE']

# 获取最新价(前复权)
df = get_price(stock_list, count=1, end_date=context.current_dt, frequency='1m', fields=['close'], panel=False)

# 打印结果
print(df)

关键参数解析

  1. security: 传入一个包含多只股票代码的列表(如 ['000001.XSHE', '000002.XSHE'])。
  2. count=1: 表示获取截止 end_date 前的最后 1 个单位时间的数据,即最新数据。
  3. frequency='1m': 使用分钟线(1m)可以获取到日内最新的价格。如果使用 daily(或 1d),在盘中获取的可能是昨日的收盘价。
  4. fields=['close']: 指定只获取收盘价字段,减少数据传输量,提升运行速度。
  5. panel=False: 非常重要! 在 pandas 0.25 版之后,Panel 结构已被移除。获取多标的数据时,强烈建议设置 panel=False,此时函数将返回一个等效的 DataFrame,行索引为时间,列索引为股票代码,方便直接按列名读取对应股票的价格。

进阶技巧:使用 get_current_data()

虽然 get_price 可以获取最新价,但在回测或模拟交易的 handle_data 或定时运行函数中,如果仅仅是为了获取当前时刻的最新价、涨跌停价或停牌状态,更推荐使用专用的 get_current_data() 函数,它的执行效率更高,且专为获取当前截面数据设计:

def handle_data(context, data):
    current_data = get_current_data()
    price_pingan = current_data['000001.XSHE'].last_price
    price_wanke = current_data['000002.XSHE'].last_price
    print(f"平安银行最新价: {price_pingan}, 万科A最新价: {price_wanke}")

总结:在研究环境中或需要获取历史切片时,使用 get_price(..., count=1, panel=False) 是最佳选择;而在策略交易盘中实时获取最新价时,优先使用 get_current_data()