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

JoinQuant量化平台如何获取周线和月线数据?(get_price与get_bars详解)

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

问题描述

get_price是否可以获取周,月度的数据?

解决方案

在 JoinQuant(聚宽)量化平台中,get_price 函数本身并不直接支持标准的日历周线('1w')或月线('1M')数据

根据官方 API 文档说明,get_pricefrequency 参数支持 'Xd'(X天)和 'Xm'(X分钟),例如 '5d' 代表 5 天的滑动窗口合成数据,但这与我们通常理解的按自然周或自然月划分的 K 线不同。

官方文档明确指出:“获取频率非一天或者非一分钟的数据,请使用 get_bars。”

如何正确获取周线和月线数据?

要获取标准的周线和月线数据,您应该使用 get_bars 函数。get_barsunit 参数完美支持标准周线('1w')和月线('1M')。

1. 获取周线数据示例

使用 unit='1w' 可以获取标准的周 K 线数据:

from jqdata import *
import datetime

# 取得距离 2018-01-05 最近五周(不包括这一周)的不复权周线数据
weekly_data = get_bars('600507.XSHG', 
                       count=5, 
                       unit='1w', 
                       fields=('date', 'open', 'high', 'low', 'close'),
                       include_now=False, 
                       end_dt='2018-01-05', 
                       fq_ref_date=None)
print(weekly_data)

2. 获取月线数据示例

使用 unit='1M' 可以获取标准的月 K 线数据:

from jqdata import *
import datetime

# 取得最近五个月(不包括这一月)的前复权月线数据
now = datetime.datetime.now().date()
monthly_data = get_bars('600507.XSHG', 
                        count=5, 
                        unit='1M', 
                        fields=('date', 'open', 'high', 'low', 'close'),
                        include_now=False, 
                        end_dt='2018-01-05', 
                        fq_ref_date=now)
print(monthly_data)

总结与建议

  • get_price:适用于获取日线('1d'/'daily')和分钟线('1m'/'minute')数据,或者简单的滑动窗口天数(如 '5d')。
  • get_bars:是获取多周期 K 线(特别是标准周线 '1w'、月线 '1M' 以及非标准分钟线如 '5m''15m')的最佳选择,且其 K 线分割方式与主流股票软件一致。