单因子分析回答一个核心问题:这个因子有没有预测力。系统自动计算 IC、分位组收益、换手率等指标并输出完整报告。
新建任务:五组参数详解
新建任务弹窗分两个页签:基础参数 与 因子参数。基础参数按作用分为五组——前两组决定"检验谁、指标怎么算",后三组决定"拿什么数据算、哪些样本算数、截面怎么切"。
![]()
因子与区间(检验对象)
| 参数 | 含义与影响 |
|---|---|
| 任务名称 | 必填,同一因子多组参数对照时用于区分 |
| 绑定因子 | 可跨文件切换,便于在相同区间与品种下横向比较不同因子 |
| 因子类 | 读取因子文件元信息(类名 + 逻辑说明),决定分组方向:因子值最高组为多头、最低组为空头 |
| 开始 / 结束日期 | 决定样本长度。区间过短则有效截面不足(估算见下文),结论不稳 |
| 采样频率 | 决定"一步"的物理长度(分钟 / 日 / 周)。持有期、执行延迟都按它计步,不是自然日 |
| 品种池 | 决定截面宽度。宽度不足会触发最少有效资产数下调,IC 的统计功效随之下降 |
评估设置(指标怎么算)
| 参数 | 默认 | 理论含义 |
|---|---|---|
| 持有期 Horizons | 1,5,20 |
因子值对未来第几步收益的解释力。h>1 时相邻截面收益区间重叠,朴素 t 值会虚高 |
| 分位组数 | 5(2–20) | 把截面按因子值等分,用于检验分层单调性。组数越多每组越薄,对品种数要求越高 |
| 截面最少有效资产数 | 留空 = 组数 × 5 | 截面有效资产低于该值的整段剔除,避免小样本相关产生虚假 IC |
| IC 计算方法 | Rank IC(Spearman) | 用排名算相关,抗极端值;切换 Pearson 用原始值,受量纲与异常值影响 |
| 组合加权方式 | 等权 | 组内简单平均;市值加权目前不可用 |
| 分箱方式 | 等频(每组资产数相同) | 等频保证各组样本量可比;等距按取值区间切,分布偏斜时会出现人数悬殊的组 |
数据设置(输入什么行情)
- 复权方式:默认不复权。复权口径改变整条价格序列,动量、波动等一切基于价格的因子值随之改变,收益口径也一并改变——跨除权日必须前后一致;
- 价格字段:决定传给
compute的value取开盘价 / 最高价 / 最低价 / 收盘价 / 成交量,默认收盘价。只影响因子输入,前向收益固定用收盘价计算,所以用成交量算的量价因子,IC 仍是对收盘价收益做的检验。
执行与数据有效性(哪些样本算数)
- 执行延迟:默认 1 步。t 时点算出的因子下一步才成交,因此平台 IC 通常低于"当步成交"的乐观估计,这是贴近实盘的口径;
- 数据陈旧容差:默认
3d,按日历时长计。因子值或价格过期超过该时长即视为缺失,而不是拿旧值凑数。日线下 3d 可跨周末;分钟级任务应调小,否则停牌个股会拿几天后的价格当平仓价,收益失真。
分组设置(截面再切分)
- 分组字段:按类别型协变量(如行业)把每个截面拆成多个子截面分别检验,用于确认因子不是只在某一行业有效;留空即不分组;
- 组内分箱:在分组内部再做分位切分,检验组内是否仍有区分度;
- 组内最少有效资产数:留空 = 分位组数。某截面某组有效资产少于该值,该组整体不参与,防止单个标的代表一组;
- 正负值分开分组:因子值正负含义不同时(如净流入 / 净流出)先按符号切开再各自分组,避免正负混在一组互相抵消。
预处理步骤
按列表顺序依次执行,顺序不同结果也不同;不添加任何步骤即直接分析原始因子。
| 步骤 | 参数 | 作用与适用 |
|---|---|---|
MAD 去极值 winsorize_mad |
MAD 倍数 k,默认 3 | 以中位数 ± k×MAD 截断两端极值,对厚尾分布比标准差稳健,几乎总要勾 |
| 分位数去极值 | 1% / 99% | 按分位截断,与 MAD 去极值二选一 |
截面标准化 zscore |
标准差自由度,默认 0 | 每截面减均值除标准差,消除量纲与水平差异;某截面标准差为 0 时输出全 0 |
| 秩归一化 | — | 只保留排序信息,分布怪异或并列值多时替代标准化 |
协变量声明
中性化、分组分析、市值加权、成本容量等都要用到"因子以外、每只标的每个时点的属性"(行业、市值、成交额、是否可交易)。真实行情默认不带,未声明时界面显示"未声明协变量",依赖它的分析与分组会直接报错。
预处理与分组都依赖协变量,真实行情暂无协变量来源时,界面会提示"历史中性化步骤保留显示,请主动移除后再修改计算配置""不能新增分组,请选择不分组后再修改"——沿用的旧配置若含中性化或分组,必须先移除才能运行。
样本量怎么估算
有效截面数决定"能不能出结果":
N = 网格点数(区间 × 频率)− 因子预热期数 − 执行延迟(默认 1)− 持有期 h
例如日线 250 个交易日、因子回看窗口 14、持有期 20:N ≈ 250 − 14 − 1 − 20 = 215 个截面,足够稳定;而 5 天 × 1 小时 = 20 根 K 线的任务,扣完可能只剩几个截面甚至为 0。结论的可信度由 N 和品种数共同决定,样本不足时指标再好看也只是噪声。
其他选项
勾选"生成 HTML 报告"额外输出官方 tear sheet(约 4.7 MB,可离线查看),不勾选只在前端渲染图表;"因子参数"页签由绑定文件动态决定参数个数(如 RSI 的 Window = 14、Center = 50),改动直接影响因子取值,建议先定品种与区间,再用它做参数敏感性对比。
任务管理
- 顶部"单任务 / 多因子 / 运行历史"三个页签;任务列表展示名称、状态、因子类、标的数量、频率、Horizons、分位组、IC 均值、完成时间与操作;
- 点击记录右侧绿色三角运行任务;其他操作有重跑、编辑参数、查看日志、删除。
分析结果(任务详情)
任务完成后点击任务名称进入详情页。页面自上而下是四层:结论横幅(系统直接给判断)→ KPI 区(可切换持有期)→ 七个页签 → 各页签下的明细。前两层回答"这个因子有没有用",后五层回答"数据可不可靠、结论从哪来、能不能赚钱"。
![]()
结论横幅
标题直接给判断,并把依据的数值与口径一起写出来,如"有预测力但不稳定:持有期 1 的 Rank IC 均值 +0.0877,ICIR +0.09"。判定口径:
| 判定 | 阈值 | ||||
|---|---|---|---|---|---|
| 较强 | IC 均值 ≥ 0.03 且 | ICIR | ≥ 0.5 | ||
| 有一定预测力 | IC 均值 | ≥ 0.02 且 | ICIR | ≥ 0.3 | |
| 不稳定 | IC 均值达标但 ICIR 明显偏低 |
右侧"下一步建议"是可点击的跳转入口(IC 显著性检验、信号半衰期),点一下直接进入深度分析对应模块——这两项恰好回答"结论是否可信、信号能撑多久"。横幅底部注明:不同频率与标的池下结论可能变化,需结合深度分析确认,不构成投资建议。
KPI 区
顶部可在 1 步 / 5 步 / 20 步之间切换持有期,切换后整页指标同步刷新。
| 指标 | 定义 | 判读 | ||
|---|---|---|---|---|
| IC 均值 | 全部有效截面 Rank IC 的平均 | 方向与强度。A 股日频经验值: | IC | 0.02~0.03 算有点用,0.05 以上算强 |
| ICIR | IC 均值 ÷ IC 标准差 | 稳定性。0.3 以上较稳、0.5 以上很稳;跨持有期比较看它,不看 t 值 | ||
| IC>0 占比 | IC 为正的截面占比 | 50% 附近说明方向不稳;反向因子应明显低于 50% | ||
| 有效截面 | 参与统计的截面数 | 远少于网格数时去诊断页查被剔除原因 | ||
| 主持有期补充指标 | 固定 h=1 的多空累计与平均换手 | 跨持有期切换时保留一个基准口径 |
七个页签详解
页签一:图表
由两张主图、一张多持有期汇总表和四张补充图组成:
- IC 时序(h=1):逐期 Rank IC 柱 + 20 期滚动均值线 + 均值线。看方向是否长期在同一侧、有没有阶段性失效;样本不足 20 期时滚动均值参考意义有限,以柱和指标卡为准;
- 各分位组平均收益(h=1):G1(因子值最低组)到 Gn(最高组)的单期平均收益柱。有效因子应呈单调阶梯——G1 最差、Gn 最好(或反向因子完全颠倒)。注意柱高是"平均单期收益",不是累计收益;
- 各持有期收益汇总表:把 h=1/5/20 的 IC 均值、ICIR、IC>0 占比、有效截面、多空累计收益、平均换手并列。同一因子在不同持有期上的强度差异本身就是信息,用来判断它是短周期信号还是长周期信号;
- 补充图表(可展开):IC 分布(直方图)、分位组累计收益、多空累计收益、分位组换手率、因子秩自相关。
读图时三种"看起来像故障"的现象,其实是数学必然:
| 现象 | 原因 |
|---|---|
| IC 分布只在 ±1 两处有柱 | 截面只有 2 个标的时,秩相关只能取 +1 或 −1,直方图必然两峰;标的数 ≥ 5 才会出现连续分布 |
| 只画出 G1、G2,多空累计显示"暂无数据" | 分 5 组要求每截面至少 5 个有效标的;2 个标的填不满,多空组合凑不齐就不计算。属保护逻辑 |
| 因子秩自相关在 ±1 之间跳变 | 2 个标的时两期排名要么完全一致(+1)要么完全颠倒(−1);3 个以上标的才会出现中间值 |
页签二:IC 汇总
左右两块"完整统计":左侧是当前持有期的 IC 均值、ICIR、t 值、IC>0 占比、有效截面;右侧是主口径补充指标(多空夏普、多空累计、平均换手)。下方多持有期对比表:持有期、IC 均值、IC 标准差、ICIR、t 值、IC>0 占比、有效截面、重叠步数。
"重叠步数"是这张表的重点:h>1 时相邻截面的前向收益共享同一段行情,序列自相关使朴素 t 值系统性偏高(h=5、h=20 的 t 值旁会标 ⚠)。所以跨持有期比较显著性,以深度分析里带 Newey-West 修正的 IC 显著性检验为准。
页签三:诊断
先确认数据没问题,再谈因子好坏。四块内容:
| 区块 | 内容 | 判读 |
|---|---|---|
| 数据概况 | 分析时点数、标的数、数据单元数(时点 × 标的)、因子缺失比例、因子陈旧或中断、因子尚未产生、价格缺失比例、各持有期未来收益缺失比例 | 陈旧/中断高→查因子代码或数据源;尚未产生高→回看窗口太长或标的上线太晚;未来收益缺失集中在尾部属正常 |
| 样本与剔除 | 每截面最少有效资产数、可分组的截面数、各持有期有效截面数与因样本不足被剔除的截面数 | 有效截面远小于网格数,说明门槛未满足,不代表因子无效 |
| 统计口径提醒 | 各持有期的持有期重叠步数 | 重叠步数 = 持有期;>1 时 t 值偏高 |
| 对齐报告 | 网格/资产/单元数、因子损失、价格缺失、各 horizon 前向收益缺失、重叠与显著性警告 | 这是库的对齐报告原文,用来核对"数据漏斗"具体扣在哪一步 |
![]()
页签四:预处理
按实际执行顺序列出每步的落地情况:步骤编号与模块名(如 #0 winsorize_mad、#1 zscore)、参数(k=3、ddof=0)、统计摘要(裁剪数 n_clipped、零 MAD 跳过数 n_skipped_zero_mad、原始均值、有效截面与有效数值占比、中位数与 MAD)。下方柱状图按截面展示处理比例,可展开原始值逐条核对;只绘制非零区间,全部为 0 时仅给文字说明。
判读:n_skipped_zero_mad > 0 说明部分截面 MAD 为 0(大量重复值或样本太少),该步在这些截面实际未生效;n_zero_variance > 0 说明截面标准差为 0,标准化会输出全 0。
页签五:分析参数
只读展示本次任务的完整配置快照,用于复现与追溯,分四块:因子身份(名称、逻辑、类名、完成时间、文件与版本)、因子自带参数、数据区间(起止、频率、数据来源、复权方式、价格字段、基准标的、标的池清单)、评估设置(持有期、执行延迟、陈旧容差、分位组数、截面最少有效资产数、分组字段、组内分箱、组内最少有效资产数)。
页签六:深度分析
左侧 17 项清单,按四类问题归组:
| 问题 | 项目("推荐"为优先项) |
|---|---|
| 是否有效 | IC 显著性检验(推荐)、样本内外稳定性(推荐)、滚动 IC、市场状态拆分、分位统计表、汇总四表 |
| 能持续多久 | 信号衰减、信号半衰期(推荐) |
| 能否赚钱 | 成本与容量(推荐)、纯多头组合、因子加权组合收益、事件研究(分位)、组合回测、组合归因 |
| 还不够 | 不含规模/风格(纯化)、Fama-MacBeth 因子收益、组内中性收益、双重排序(控制变量) |
点选某项后,右侧出现该项参数与"运行分析"按钮,结果与"本次运行日志"一并留档。两个常用项:
- IC 显著性检验:给出每个持有期的 IC 均值与 Newey-West t 值(同时给
naive_t作对照)、p 值和正比例,判断"这个因子是不是噪声"。参数两项:滞后阶数(留空由内核按重叠比例自动选,范围 0–200)、分组维度(填类别型协变量后逐组检验); - 组合回测:把分析结果转成组合净值曲线(年化、波动、Sharpe、最大回撤、Calmar、净值与回撤)。参数:建仓方式(
long_short多空 /long_only纯多 /factor因子加权)、前 N 只(仅long_only)、调仓间隔(网格步,默认 1)、单边成本(bp,默认 0)、可交易标的多变量。
![]()
页签七:日志
本次任务的运行日志(平台结构化写入):配置快照、数据下载进度、有效截面与阈值下调、各阶段耗时。
相关阅读
- • 因子编写

评论
登录后参与讨论,与站内账号体系共用。