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

如何在 joinquant 中查询分地区宏观经济与行业产值数据?

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

问题描述

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

Title: joinquant 宏观经济分析:使用 macro.run_query 查询行业产值数据

Question: 如何在 joinquant 研究或策略模块中查询分地区的宏观经济与行业产值数据?

解决方案

在 joinquant 中查询分地区宏观经济与行业产值数据

在 JoinQuant(聚宽)量化交易平台中,可以通过 macro.run_query 接口查询丰富的宏观经济数据,包括分地区农林牧渔业总产值等行业数据。

1. 核心 API 介绍

使用 macro.run_query 需要先导入 jqdata 库,并结合 sqlalchemyquery 语句构建查询条件。

  • 函数签名macro.run_query(query_object)
  • 参数query_object - 通过 query(...) 构建的 Query 对象。
  • 返回值pandas.DataFrame,行对应数据库记录,列对应查询字段。
  • 限制:为了防止返回数据量过大,每次调用最多返回 4000 行数据,且不支持多表联合查询。

2. 代码示例

示例 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:查询特定年份(如2014年)的分地区农林牧渔业总产值表(年度)

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)

3. 注意事项

  1. 数据限制:单次查询最大限制为 4000 行,若超过限制需通过 filter(如按年份、区域过滤)或分页处理。
  2. 单表查询macro.run_query 不支持跨表联查(Join 操作)。
  3. 环境支持:可在聚宽的“研究”环境和“策略回测/模拟”中正常调用。