3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant 聚宽平台上,您可以使用 get_factor_kanban_values 函数来获取因子看板上的因子回测表现数据。该函数位于 jqfactor 库中。
以下是详细的使用说明和代码示例:
get_factor_kanban_values
# 导入函数库
from jqfactor import get_factor_kanban_values
import pandas as pd
# 获取因子看板数据
# 示例:获取沪深300成分股中,近三个月,纯多头组合模型下的质量和基础类因子的表现
df = get_factor_kanban_values(
universe='hs300', # 股票池:沪深300
bt_cycle='month_3', # 测试周期:近三个月
model='long_only', # 组合构建模型:纯多头组合
category=['quality', 'basics'], # 因子分类:质量类和基础类
skip_paused=False, # 是否过滤涨停及停牌股
commision_slippage=0 # 手续费及滑点设置:无
)
# 打印结果的前几行
print(df.head())
# 查看具体的列名,了解包含哪些指标(如IC均值、夏普比率等)
print(df.columns)
'hs300': 沪深300'zz500': 中证500'zz800': 中证800'zz1000': 中证1000'zzqz': 中证全指'month_3': 近三个月'year_1': 近一年'year_3': 近三年'year_10': 近十年'long_only': 纯多头组合(关注分位数收益,如一分位和五分位)'long_short': 多空组合(关注多空对冲后的收益)'quality'(质量), 'basics'(基础), 'emotion'(情绪), 'growth'(成长), 'risk'(风险), 'pershare'(每股), 'style'(风格), 'technical'(技术), 'momentum'(动量)。True (过滤) 或 False (不过滤)。0: 无1: 3‱佣金 + 1‰印花税 + 无滑点2: 3‱佣金 + 1‰印花税 + 1‰滑点返回一个 pandas.DataFrame,根据 model 的不同,返回的列会有所区别:
当 model='long_only' (纯多头) 时,主要包含:
ic_mean: IC均值ir: IR值annualized_return_1q / annualized_return_5q: 一分位/五分位年化收益率sharpe_1q / sharpe_5q: 一分位/五分位夏普比率max_drawdown_1q / max_drawdown_5q: 最大回撤turnover_ratio_1q / turnover_ratio_5q: 换手率当 model='long_short' (多空) 时,主要包含:
ic_mean: IC均值ir: IR值annualized_return_ls: 多空组合年化收益率sharpe_ls: 多空组合夏普比率max_drawdown_ls: 多空组合最大回撤Q: get_factor_kanban_values 函数返回的数据是实时的吗?
A: 不是完全实时的。数据的更新日期由 date 列标识,因子的收益需要下一交易日才可得到,因此实际数据的时间通常比 date 晚一天(T日收盘后的因子收益需要T+1的收盘价才可得出,数据需要在T+2日凌晨计算后才可得到)。
Q: 如何查看因子看板支持的所有因子分类?
A: 在调用函数时,category 参数支持的列表包括:['quality', 'basics', 'emotion', 'growth', 'risk', 'pershare', 'style', 'technical', 'momentum']。您可以根据需要传入包含这些字符串的列表。
Q: 多空组合(long_short)和纯多头组合(long_only)在返回数据上有什么主要区别?
A: long_only 模式会分别返回第一分位数(1q)和第五分位数(5q)的收益、夏普比率和回撤等数据,便于观察因子在头部和尾部的表现区分度;而 long_short 模式返回的是多空对冲(如做多五分位、做空一分位)后的组合表现数据(后缀为 _ls)。