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

JoinQuant 平台如何获取宏观经济数据?(CPI/GDP 等指标查询指南)

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

问题描述

请根据以下 SEO 主题生成完整页面内容:

Title: joinquant 宏观数据分析:使用 macro.run_query 获取经济指标

Question: joinquant 中如何查询 CPI、GDP 等宏观经济数据?

解决方案

JoinQuant 宏观数据分析:使用 macro.run_query 获取经济指标

在 JoinQuant(聚宽)量化交易平台中,可以通过 macro.run_query 函数查询全方位的宏观经济数据(如 GDP、CPI、工业产值等),为量化择时与资产配置提供宏观基本面支持。


一、基本语法与使用流程

获取宏观经济数据需要导入 jqdata 模块,并配合 query 对象构建查询表达式。

from jqdata import *

# 1. 构建 query 对象,指定宏观数据表及筛选条件
q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR
    ).filter(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR.stat_year == '2014')

# 2. 执行宏观数据查询
df = macro.run_query(q)

# 3. 查看结果
print(df.head())

二、核心参数与返回值

  • 参数 query_object:一个 sqlalchemy.orm.query.Query 对象,通过 query() 函数创建,传入需要查询的宏观数据表及条件(如 filterorder_bylimit 等)。
  • 返回值:返回一个 pandas.DataFrame,每行对应一条查询记录,列索引对应所查询的数据库字段。

三、代码示例:查询宏观经济表

示例 1:限制返回行数查询

from jqdata import *

# 查询分地区农林牧渔业总产值表(季度累计) 的前 10 条数据
q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_QUARTER).limit(10)
df = macro.run_query(q)
print(df)

示例 2:按年份过滤查询

from jqdata import *

# 查询 2014 年的分地区农林牧渔业总产值表(年度)
q = query(macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR).filter(
    macro.MAC_INDUSTRY_AREA_AGR_OUTPUT_VALUE_YEAR.stat_year == '2014'
)
df = macro.run_query(q)
print(df)

四、注意事项

  1. 单次返回行数限制:为了防止返回数据量过大导致内存溢出,macro.run_query 每次最多返回 4000 行数据。
  2. 禁止连表查询:不支持同时查询多张宏观数据表(即不能跨表进行 Join 操作)。
  3. 详细字段查询:不同宏观指标对应不同的表名与字段名,具体请参考 JoinQuant 官方数据字典中的“宏观经济数据”章节。