Jikipedia
概念笔记

聚宽行情与财务数据获取 API

聚宽取数分两族:行情(data / attributehistory / history / getcurrentdata / getprice)与财务/基本面(getfundamentals)。五条行情 API 在「能否研究环境用、当期还是历史、单股还是多股、能否跳停牌」上互不相同,选错是新手最常见的困惑。

量化聚宽行情数据attribute_historyhistoryget_fundamentals

一句话

行情数据:data[代码].close 只在 handle_data 取当期单股;attribute_history 取历史单股多字段(可跳停牌);history 取历史多股但只能同一字段(不可跳停牌);get_current_data 看停牌/涨跌停;get_price 研究与策略都能用、任意区间。财务/市值数据用 get_fundamentals 链式查询。

当前理解

行情对象 SecurityUnitData 的字段

open / close / low / high(开收低高)、volume / money(量/额)、factor(前复权因子)、high_limit / low_limit(涨跌停价)、price(段内均价)、pre_close(前收)、paused(是否停牌)。策略里取用:data[代码].closedata[代码].mavg(20, 'close')(20 日收盘均价)。

行情取数五方式对比(第 3 篇)

API环境时间范围覆盖跳停牌
直接读 data仅策略(handle_data 内)仅当期单股、多字段 + 额外属性(vwap/returns/isnan/security 等)
attribute_history仅策略当前前 n 单位单股、多字段可选
history仅策略当前前 n 单位多股、但只同一字段不能
get_current_data仅策略仅当期多股多字段(停牌/涨跌停/开盘价)
get_price策略 + 研究任意区间多股多字段不能

财务与市值:get_fundamentals

  • 链式:query(字段…).filter(条件…).order_by(排序…).limit(数量),末尾 date='YYYY-MM-DD' 指定截面日期。
  • 字段按表分层:valuation.code/market_cap/pe_ratio(市值表:代码/市值/动态市盈率)、income.total_operation_revenue(利润表:营业总收入)等。
  • 示例:市值 > 1000 且 PE < 10 且营收 > 2e10,按市值降序取 100(第 3 篇)。
  • 在因子 API 里,财务依赖可带报告期后缀 _1_7(前 N 季度),做 TTM(第 8 篇)。

跟谁配合

  • 周期函数里取数喂给指标(data/attribute_history → ma5);跨股票用 history;研究/批量用 get_price 与 get_fundamentals;因子研究用 calc_factors(jq-factor-api)。

来源

常见混淆

  • history vs attribute_history:history 是多股票但只能取同一个字段、不能跳停牌;attribute_history 是单股票可取多字段、可跳停牌。名字相反(attribute 反而是单股),别凭名字猜。
  • get_price vs 其它:唯一能在研究环境用、可取任意历史区间的接口;策略内若只为「过去 n 天」用 attribute_history 更常规。
  • get_fundamentals 是截面:带 date 取的是那个日期「当时能看到」的基本面快照,不是最新值也不是实时值。
  • 财务字段的会计含义:valuation/income 等表字段来自财报口径(如利润表的营业总收入),这些数字的含义与质量(权责发生制、可持续 vs 一次性)见 利润表(读懂一段时间赚了多少钱)
  • 复权口径set_option('use_real_price', True) 开动态复权(用真实价格),factor 是前复权因子——算收益率前先想清楚复权口径。
  • mavg 的 'close'data[代码].mavg(20,'close') 第二个参数是字段名。

开放问题

  • [需要验证] get_price 的完整参数(教程只说「较难、会单独讲」却没展开;量化课堂/官方文档补)。
  • [需要验证] 官方字段全集与 API 版本差异(2015–2017 教程语境)。

更新 2026-09-06

检索知识库

按标题、类型或正文检索