- 功能描述:获取Tushare因子库里各因子的数值
- 返回限量:单次请求最大返回6000行
- 接口权限:独立权限,需单独开通
- 说明:
- 本接口是基于daily的时间序列数值;
- 因子值由
ts_code、factor_name和trade_date三个字段确定唯一记录,由于返回行数的限定,至少传递两个参数才能够完整获取参数所限定的所有因子值; - 不同因子的数值量纲不同,在使用时需注意因子的具体含义和适用范围;
输入参数:
| 名称 | 类型 | 必选 | 描述 |
|---|---|---|---|
| ts_code | str | N | 股票代码 |
| factor_name | str | N | 因子名称(基于因子列表的名称) |
| trade_date | str | N | 交易日期:YYYYMMDD格式 |
| start_date | str | N | 开始日期:YYYYMMDD格式 |
| end_date | str | N | 结束日期:YYYYMMDD格式 |
ts_code和factor_name至少要输入一个参数;
输出参数:
| 名称 | 类型 | 默认显示 | 描述 |
|---|---|---|---|
| factor_name | str | Y | 因子名称 |
| ts_code | str | Y | 证券代码 |
| trade_date | str | Y | 交易日期,格式YYYYMMDD |
| factor_value | float | Y | 因子值 |
示例:
示例1:获取某支股票某个交易日所有的因子值
传递ts_code参数可指定特定股票,传递trade_date参数可指定特定交易日。
这里20260901浦发银行的因子有192行,因子库列表接口目前指示因子数量为232个(2026/09/02运行结果),由此可见并不是所有的股票各个因子有值;
import tushare as ts
pro = ts.pro_api()
df = pro.factor_value(ts_code='600000.SH', trade_date='20260901')
df
输出结果:
factor_name ts_code trade_date factor_value
0 alpha101_14 600000.SH 20260901 -3.016901e-01
1 alpha101_38 600000.SH 20260901 -8.213578e-01
2 sigma_1320d_000001 600000.SH 20260901 1.121016e-02
3 amount_ma_20d 600000.SH 20260901 6.362222e+08
4 alpha101_101 600000.SH 20260901 8.429119e-01
... ... ... ... ...
187 alpha101_1 600000.SH 20260901 -3.281504e-02
188 alpha101_9 600000.SH 20260901 -1.900000e-01
189 bias_turn_21d_252d 600000.SH 20260901 -1.939240e-01
190 return_252d 600000.SH 20260901 -2.821329e-01
191 alpha101_35 600000.SH 20260901 0.000000e+00
192 rows × 4 columns
示例2:获取某支股票某个因子所有历史值
通过传递ts_code和factor_name组合可获取某支股票某个因子所有历史值。
df = pro.factor_value(ts_code='600000.SH', factor_name='MACD')
df
输出结果:
factor_name ts_code trade_date factor_value
0 MACD 600000.SH 20100104 0.000000
1 MACD 600000.SH 20100105 0.078848
2 MACD 600000.SH 20100106 -0.083021
3 MACD 600000.SH 20100107 -0.411731
4 MACD 600000.SH 20100108 -0.481885
... ... ... ... ...
4042 MACD 600000.SH 20260826 -1.019095
4043 MACD 600000.SH 20260827 -1.040388
4044 MACD 600000.SH 20260828 -1.194412
4045 MACD 600000.SH 20260831 -0.891341
4046 MACD 600000.SH 20260901 -0.249090
4047 rows × 4 columns
示例3:获取某个交易日某个因子所有股票的值
通过传递trade_date和factor_name可获取某个交易日某个因子所有股票的值,这种场景可用于对不同股票进行横向对比。
df = pro.factor_value(trade_date='20260901', factor_name='MACD')
df
输出结果:
factor_name ts_code trade_date factor_value
0 MACD 000001.SZ 20260901 9.061484
1 MACD 600201.SH 20260901 -3.388144
2 MACD 000002.SZ 20260901 -0.558980
3 MACD 600202.SH 20260901 0.124472
4 MACD 000006.SZ 20260901 0.541549
... ... ... ... ...
5548 MACD 600195.SH 20260901 0.010409
5549 MACD 600196.SH 20260901 -5.574448
5550 MACD 600197.SH 20260901 -0.539697
5551 MACD 600198.SH 20260901 0.278474
5552 MACD 600199.SH 20260901 -0.435533
5553 rows × 4 columns
示例4:获取某个交易日所有股票因子值,并进行透视分析
因子值由ts_code、factor_name和trade_date三个字段确定唯一记录,且仅传递任意一个参数均不能够将该参数限定的记录完整查询并获取到。上述三个示例演示了这三个参数两两组合获取数据。本示例演示如何依据因子列表循环迭代获取某一交易日所有股票的所有因子值,并将结果合并成一个大的DataFrame,最后对这个DataFrame进行透视分析。
import pandas as pd
lst_factors = pro.factor_list()
lst_factor_values = []
for factor in lst_factors['factor_name']:
df = pro.factor_value(factor_name=factor, trade_date='20260901')
lst_factor_values.append(df)
df_combined = pd.concat(lst_factor_values, ignore_index=True)
df_pivoted = df_combined.pivot(index='ts_code', columns='factor_name', values='factor_value').reset_index()
df_pivoted
输出结果:
factor_name ts_code MACD adjusted_sharpe_750d alpha101_1 alpha101_10 alpha101_101 alpha101_11 alpha101_12 alpha101_13 alpha101_14 ... volume_alpha_300d_000001 volume_alpha_300d_000300 volume_beta_120d_000300 yoy_net_asset yoy_net_profit yoy_ocf yoy_revenue yoy_roa yoy_roe yoy_total_asset
0 000001.SZ 9.061484 10363.309559 -0.032815 0.216937 0.771704 0.751078 -0.20 -0.377838 0.249763 ... 0.002886 0.002116 0.677587 0.761905 -0.004877 0.795504 -0.063262 0.587284 0.545215 0.511492
1 000002.SZ -0.558980 -5825.507539 -0.032815 0.505045 0.659341 1.499649 0.02 -0.175495 -0.580189 ... 0.008843 0.008242 1.155166 0.031746 0.748704 NaN -0.379559 0.898608 0.905057 0.034476
2 000006.SZ 0.541549 781.026677 0.276894 0.496757 0.766284 0.347328 0.02 -0.639099 -0.180354 ... 0.005221 0.005293 0.183762 0.307061 -0.965812 NaN -0.793852 0.180211 0.190825 0.485042
3 000007.SZ 2.652965 2486.584822 -0.032815 0.562342 0.221402 0.161407 0.00 -0.759099 0.203621 ... 0.006872 0.006491 0.839228 0.333881 -1.094127 NaN 0.145048 0.155756 0.164693 0.383802
4 000008.SZ 0.504163 841.563706 -0.032815 0.483784 0.588235 0.873699 -0.03 -0.222523 0.325086 ... NaN NaN NaN 0.051450 0.426663 NaN 0.006928 0.856847 0.877985 0.051259
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
5548 920978.BJ -0.218878 NaN -0.032815 0.161261 0.351262 0.291066 -0.28 -0.067748 -0.242891 ... 0.002462 0.002109 0.571580 0.855683 0.066839 NaN 0.299364 0.557562 0.553111 0.790770
5549 920981.BJ 1.105317 270.097142 0.430754 0.576216 -0.260980 0.375780 0.01 -0.708108 -0.062644 ... 0.011334 0.011076 0.533789 0.453932 1.031041 NaN 0.373963 0.844808 0.878737 0.876687
5550 920982.BJ -6.294590 926.663269 0.500000 0.009189 0.499888 0.299269 -2.53 -0.296216 -0.591400 ... 0.005954 0.005663 0.304068 0.862981 -0.338755 0.492325 -0.112385 0.332205 0.344050 0.839292
5551 920985.BJ 0.028715 201.156243 -0.032815 0.252072 0.580913 0.593308 -0.16 -0.627387 -0.717185 ... 0.007263 0.007072 0.995508 0.021529 -6.412283 NaN -0.707610 0.030098 0.015040 0.363736
5552 920992.BJ 0.006789 324.404670 -0.032815 0.796757 0.725953 0.290438 -0.40 -0.382883 -0.588990 ... 0.000450 0.000297 0.806843 0.500274 -0.043741 0.895833 0.052419 0.565463 0.561760 0.474644
5553 rows × 223 columns
说明:
factor_value是Tushare因子库的核心数据接口,用于获取Tushare因子库中各因子的具体数值。该接口与factor_list(因子列表接口)配合使用——factor_list提供因子的元数据信息(名称、分类、算法逻辑),factor_value则提供具体的因子数值。