🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

聚宽在哪可以找到单因子分析功能?如何进行因子分析?

joinquant | 发布时间: 2026/5/29
以下内容由 EasyQuant 生成。

问题描述

因子分析

聚宽在哪可以找到单因子分析功能?
我想找到聚宽哪里可以实现单因子女分析的环境,目前只找到回测的环境,不知道因子分析在哪里可以操作?

解决方案

在 JoinQuant(聚宽)平台上,单因子分析功能是在「研究环境」(即 Jupyter Notebook 环境)中进行操作的,而不是在回测环境中。

回测环境主要用于策略的逻辑验证和历史收益回测,而因子分析通常需要大量的交互式数据探索、统计计算以及丰富的图表展示,因此聚宽将专业的单因子分析工具集成在了研究环境中。

以下是详细的操作指南和代码示例:

1. 如何进入研究环境

登录聚宽官网后,在顶部导航栏找到并点击**「投资研究」「研究」**。在这里你可以创建一个新的 Python Notebook(通常是 Python 3),在这个交互式环境中,你就可以调用聚宽的因子分析 API 了。

2. 核心分析工具:analyze_factor

聚宽提供了 jqfactor 模块,其中的 analyze_factor 函数是进行单因子分析的核心工具。它可以帮你计算因子的 IC 值、分位数收益、换手率,并生成详细的分析图表(Tear Sheet)。

3. 单因子分析代码示例

在研究环境的 Notebook 单元格中,你可以通过以下两种方式进行因子分析:

方式一:使用聚宽因子库中的已有因子

如果你想分析聚宽因子库中已经计算好的因子(例如 60日偏度 Skewness60),可以直接获取因子值并传入分析函数:

# 导入需要的库
from jqfactor import analyze_factor, get_factor_values
from jqdata import get_index_stocks

# 1. 获取沪深300成分股的因子值 (pandas.DataFrame 格式)
factor_data = get_factor_values(
    securities=get_index_stocks('000300.XSHG'), 
    factors=['Skewness60'],
    start_date='2018-01-01', 
    end_date='2018-03-01'
)['Skewness60']

# 2. 执行单因子分析
far = analyze_factor(
    factor=factor_data, 
    start_date='2018-01-01', 
    end_date='2018-03-01', 
    weight_method='mktcap', # 市值加权
    industry='jq_l1',       # 聚宽一级行业
    quantiles=5,            # 分成5个分位数
    periods=(1, 5, 20),     # 调仓周期:1天、5天、20天
    max_loss=0.2
)

# 3. 生成全部分析图表
far.create_full_tear_sheet(demeaned=False, group_adjust=False)

方式二:自定义因子进行分析

如果你有自己的因子逻辑,可以继承 Factor 类来定义因子,然后直接将该类传给 analyze_factor

from jqfactor import analyze_factor, Factor

# 1. 自定义因子类:例如 5日均线因子
class MA5(Factor):
    name = 'ma5'
    max_window = 5
    dependencies = ['close']

    def calc(self, data):
        # 计算过去5天的收盘价均值
        return data['close'][-5:].mean()

# 2. 使用自定义因子类进行单因子分析
far = analyze_factor(
    factor=MA5, 
    start_date='2018-01-01', 
    end_date='2018-03-01', 
    weight_method='mktcap', 
    universe='000300.XSHG', # 股票池为沪深300
    industry='jq_l1', 
    quantiles=5, 
    periods=(1, 5, 22)
)

# 3. 打印月度 IC 表格
print(far.ic_monthly)

# 4. 绘制各分位数收益图
far.plot_quantile_returns_bar()

4. 因子分析结果包含哪些内容?

通过 far 对象(FactorAnalyzer 实例),你可以调用多种方法来展示分析结果:

  • 收益分析far.plot_quantile_returns_bar() (各分位数收益)、far.plot_cumulative_returns_by_quantile() (累积收益)。
  • IC 分析far.plot_ic_ts() (IC时间序列)、far.plot_monthly_ic_heatmap() (月度IC热力图)。
  • 换手率分析far.plot_turnover_table() (换手率统计)。
  • 一键生成报告far.create_full_tear_sheet() 会自动输出包含收益、IC、换手率等所有维度的综合图表报告。

总结:请前往聚宽的**「投资研究」**模块,新建一个 Notebook,导入 jqfactor 库,即可开启强大的单因子分析之旅。