数据 - DataTypes 介绍
DataTypes 是 jh_quant.data 的数据类型枚举。每个成员代表一种可以通过 JHData.get_data() 获取的数据。
0.3.0 文档优先介绍 TuShare A 股相关数据类型。AkShare 数据类型仍然兼容,但在研究、回测、因子和交易示例中会优先使用 TuShare。
命名规则
from jh_quant.data import DataTypes
DataTypes.TS_DAILY_QFQ # 枚举名,Python 代码中使用DataTypes.TS_DAILY_QFQ.value # "ts_daily_qfq",底层数据类型标识常见前缀:
| 前缀 | 含义 |
|---|---|
TS_ | TuShare 风格数据类型 |
AK_ | AkShare 风格兼容数据类型 |
JH_ | JiuHuang 自有数据类型 |
TuShare A 股行情
| DataType | 说明 | 常用参数 |
|---|---|---|
TS_DAILY | A 股日线行情,未复权 | ts_code, start, end |
TS_DAILY_QFQ | A 股日线行情,前复权 | ts_code, start, end |
TS_DAILY_HFQ | A 股日线行情,后复权 | ts_code, start, end |
TS_MONTHLY | A 股月线行情,未复权 | ts_code, start, end |
TS_MONTHLY_QFQ | A 股月线行情,前复权 | ts_code, start, end |
TS_MONTHLY_HFQ | A 股月线行情,后复权 | ts_code, start, end |
TS_DAILY_BASIC | A 股每日指标,含市值、换手率等 | ts_code, start, end |
TS_ADJ_FACTOR | 复权因子 | ts_code, start, end |
回测推荐使用:
df = jh.get_data( DataTypes.TS_DAILY_QFQ, ts_code="000001.SZ", start="2025-01-01", end="2025-12-10",)因子月频计算推荐使用:
df = jh.get_data( DataTypes.TS_MONTHLY_QFQ, ts_code="000001.SZ", start="2020-01-01", end="2025-12-31",)TuShare A 股基础资料
| DataType | 说明 | 常用参数 |
|---|---|---|
TS_STOCK_BASIC | 股票基础信息,含代码、名称、上市日期等 | ts_code 或空参数 |
TS_TRADE_CAL | 交易日历 | start, end, exchange |
TS_DAILY_INFO | 交易所股票交易统计 | start, end |
示例:
stock_basic = jh.get_data(DataTypes.TS_STOCK_BASIC)trade_cal = jh.get_data( DataTypes.TS_TRADE_CAL, start="2025-01-01", end="2025-12-31",)TuShare A 股财务数据
| DataType | 说明 | 常用参数 |
|---|---|---|
TS_INCOME | 利润表 | ts_code, start, end |
TS_BALANCESHEET | 资产负债表 | ts_code, start, end |
TS_CASHFLOW | 现金流量表 | ts_code, start, end |
TS_FINA_INDICATOR | 财务指标 | ts_code, start, end |
财务数据用于因子计算时,需要特别关注公告日:
ann_datejh_quant.factors 会使用 ann_date <= return_date 做 as-of 匹配,避免 look-ahead bias。
示例:
income = jh.get_data( DataTypes.TS_INCOME, ts_code="000001.SZ", start="2024-01-01", end="2025-12-31",)AkShare 数据类型
AkShare 风格数据类型仍然可以使用,名称通常以 AK_ 开头。例如:
df = jh.get_data( DataTypes.AK_STOCK_ZH_A_HIST_QFQ, symbol="000001", start="2025-01-01", end="2025-12-10",)但在 0.3.0 文档中,回测、因子和交易示例会优先使用 TuShare 数据类型。AkShare 更适合作为兼容迁移或实时行情补充。
查看完整支持的数据类型
由于 DataTypes 支持的数据很多,文档不再逐项罗列全部类型。你可以用下面代码查看完整列表:
from jh_quant.data import DataTypes
for dt in DataTypes: print(f"{dt.name} = {dt.value}")只查看 TuShare 类型:
for dt in DataTypes: if dt.name.startswith("TS_"): print(f"{dt.name} = {dt.value}")按关键词过滤:
keyword = "DAILY"
for dt in DataTypes: if keyword in dt.name: print(f"{dt.name} = {dt.value}")如果你不确定某个数据类型的入参和返回字段,可以结合 JHData.get_data() 的返回结果查看:
df = jh.get_data(DataTypes.TS_DAILY_QFQ, ts_code="000001.SZ")
print(df.code_col)print(df.date_col)print(df.code_date_col)print(df.columns)