def get_factor_kanban_values(universe=None, bt_cycle=None, category=None, model='long_only', **kwargs):
    """获取因子面板数据
    Args:
        universe: 股票池
            'hs300': 沪深300
            'zz500': 中证500
            'zz800': 中证800
            'zz1000': 中证1000
            'zzqz': 中证全指
        bt_cycle: 测试周期
            'month_3':近三个月
            'year_1': 近一年
            'year_3': 近三年
            'year_10': 近十年
        category: 分类
            'basics': 基础类
            'quality': 质量类
            'pershare': 每股类
            'emotion': 情绪类
            'growth': 成长类
            'risk': 风险类
            'barra': 风险因子 - 风格因子
            'technical': 技术类
            'momentum': 动量类
            'style_pro': 新风格因子
        model: 组合构建模型
            'long_only': 纯多头组合
            'long_short': 多空组合
        **kwargs: 其他约束条件详见
            https://www.joinquant.com/help/api/help?name=api#get_factor_kanban_values

    """
    if model not in ('long_only', 'long_short'):
        raise ValueError("model 的值应为 'long_only', 'long_short' 中的一个")
    return JQDataClient.instance().get_factor_kanban_values(
            universe=universe,
            bt_cycle=bt_cycle,
            category=category,
            model=model,
            **kwargs
        )
获取因子面板数据
Args:
universe: 股票池
'hs300': 沪深300
'zz500': 中证500
'zz800': 中证800
'zz1000': 中证1000
'zzqz': 中证全指
bt_cycle: 测试周期
'month_3':近三个月
'year_1': 近一年
'year_3': 近三年
'year_10': 近十年
category: 分类
'basics': 基础类
'quality': 质量类
'pershare': 每股类
'emotion': 情绪类
'growth': 成长类
'risk': 风险类
'barra': 风险因子 - 风格因子
'technical': 技术类
'momentum': 动量类
'style_pro': 新风格因子
model: 组合构建模型
'long_only': 纯多头组合
'long_short': 多空组合
**kwargs: 其他约束条件详见
https://www.joinquant.com/help/api/help?name=api#get_factor_kanban_values
jqdatasdk/api.py