今天做一下专题,因子的分析,检验因子的有有效性怎么样,以前的文章解释了因子分析的框架流程算法研究--怎么样全市场可转债因子分析算法研究
做一个专题检验alpha001到alpha191的全部因子,给因子的原理,技术方式等,先看一下因子的原理,下面是原始的计算公式

该因子旨在捕捉成交量变化与价格走势之间的背离关系。其核心逻辑是:当成交量的相对排名与价格涨跌幅的相对排名在短期内呈现负相关时,往往预示着价格趋势可能逆转

核心解读:为什么是“-1”?
经典量价配合:通常认为,价格上涨时放量是健康的,即“价涨量增”,此时量能变化排名与价格变化排名呈正相关。但公式前乘以 -1,会使这种情况下的因子值为负数。
信号与交易:因此,这个因子不看多经典的量价配合,反而关注反常情况:
因子值为正:意味着过去6天出现了“量价背离”。常见情景是价格上涨但成交量萎缩(价升量缩),或价格下跌但成交量放大(价跌量增)。前者通常被视为上涨乏力的看跌信号,后者则是恐慌性抛售的潜在见底信号。
因子值为负:表示量价关系正常。价格涨跌得到成交量的配合,趋势健康,但因子策略可能选择暂时回避或采取相反操作。
原理图

在实际量化交易中,这个因子通常用于横截面选股或构建多空组合。
运用方式信号生成:每日计算全市场所有股票的因子值。
排序分组:按因子值从大到小排序。因子值越大,代表量价背离(特别是“缩量上涨”)的特征越明显。
构建组合:多头(买入):做多因子值最大的一组。赌的是这些“价量背离”的股票价格会回落。
空头(卖出/融券):做空因子值最小的一组。这些股票量价配合良好,但策略赌其动量可能反转或暂时休整。
风险控制:此因子为纯量价因子,未考虑市值、行业等因素。在实际使用前,通常会对其进行行业中性化或市值中性化处理,以剔除其他风格的影响。
核心逻辑说明这个策略本质上是逆向投资,站在了“趋势跟随”的对立面。它试图捕捉市场短期内的非理性波动:当价格在没有成交量支持的情况下盲目上涨(缩量上涨),我们认为这种上涨是脆弱的,倾向于做空。当价格在巨大成交量中大幅下跌(放量下跌),我们认为市场可能过度恐慌,倾向于做多。
上面大概清楚了因子的思路,下面我利用全市场的etf数据来做这个因子分析,自己开发的因子分析系统,etf标的数据比较合适,比如可转债多,数据全面一点,
先读取全部的etf标的

可以计算分析的公式参考
def alpha001(data, dependencies=['closePrice','openPrice','turnoverVol'], max_window=7):
# (-1*CORR(RANK(DELTA(LOG(VOLUME),1)),RANK(((CLOSE-OPEN)/OPEN)),6)
rank_sizenl = np.log(data['turnoverVol']).diff(1).rank(axis=0, pct=True)
rank_ret = (data['closePrice'] / data['openPrice']) .rank(axis=0, pct=True)
rel = rank_sizenl.rolling(window=6,min_periods=6).corr(rank_ret) * (-1)
return rel
生成全部因子数据

设置分组参数

开始因子分析

分组分析

ic分析



IC 衰减分析

换手率分析


分组累积超额收益




因子的分析显示这个因子的有效性有待提升,毕竟是单因子毕竟局限,限制的因素很多,需要结合其他因子优化多因子分析
不懂的问我就可以,加我备注入群可以加入量化群

开户,需要的找我就可以,专业的量化技术支持服务

>>> Fama-MacBeth 回归 (因子溢价) <<<
Fama-MacBeth 因子溢价 (1D): 常数项=0.000164, 因子系数=-0.000200
解释: 因子值每增加1单位,未来1D日收益变化 -2.00 bps
------------------------------------------------------------
【1】信息系数 IC 均值(预测方向准确率)
IC = 因子值与未来收益的相关系数,范围 [-1, 1]。正值表示因子越大未来收益越高。
当前 IC 均值 = 0.0034
❌ 评价:微弱(<0.01),实际预测价值很低。
------------------------------------------------------------
【2】ICIR(信息比率,IC均值 / IC标准差)
衡量因子预测的稳定性,越高说明每次预测的可靠性越一致。
当前 ICIR = 0.0269
❌ 评价:较差(<0.2),因子预测忽高忽低,不靠谱。
------------------------------------------------------------
【3】多空组合夏普比率(做多因子最大组,做空最小组)
衡量因子区分好坏股票后,多空对冲策略的风险调整收益。夏普 > 1 优秀。
当前多空夏普 = -0.6934
❌ 较低(<0.5),直接交易该因子意义不大。
------------------------------------------------------------
【4】平均换手率(每日因子分组中股票变动比例)
换手率越低,交易成本越低,策略越容易实现。
当前平均换手率 = 1.3576(每日约 135.8% 的股票换出)
❌ 高换手(>60%),频繁交易会严重侵蚀收益。
------------------------------------------------------------
【5】因子自相关系数(一阶自相关,衡量因子值的稳定性)
数值越高,因子变化越慢,选股逻辑越连贯。
当前因子自相关 = 0.8060
✅ 高稳定性(>0.8),适合低频策略。
------------------------------------------------------------
【6】Fama-MacBeth 因子溢价(单位因子值带来的日度超额收益)
当前因子溢价 = -2.00 bps
❌ 溢价为负,因子反向有效(可取负值使用)。
------------------------------------------------------------
【7】分组收益单调性检验(Spearman秩相关)
检验因子值越大,收益是否越高(单调递增)。相关系数接近1表示单调性好。
Spearman相关系数 = -0.9152,p值 = 0.0002
🔄 单调性反向(递减),可考虑取负因子值。
------------------------------------------------------------
【8】极端值分析(因子值最高10% vs 最低10%)
比较极端组的平均收益,考察因子两端是否有明显区分。
最高10%因子值平均收益: 3.14 bps
最低10%因子值平均收益: 4.43 bps
极端多空收益差: -1.29 bps
❌ 极端组差异小,因子对极端值不敏感。
------------------------------------------------------------
【9】月度IC稳定性(月度IC均值的标准差)
标准差越小,因子在不同月份的表现越稳定。
月度IC均值的标准差 = 0.0242
✅ 非常稳定,月度IC均值波动小。
------------------------------------------------------------
【10】多空组合最大回撤持续期
最长的连续亏损天数,反映策略的“痛苦期”。
最长回撤持续期 = 1271 个交易日
❌ 回撤期过长,策略可能长时间失效。
------------------------------------------------------------
【11】分层收益夏普比率对比(最高组 vs 最低组)
因子值最高组夏普比率: 0.0274
因子值最低组夏普比率: 0.3771
⚠️ 两组夏普差异不大,因子分层效果不明显。
------------------------------------------------------------
【12】因子值分布特征(偏度、峰度)
偏度接近0表示对称,峰度接近3表示正态分布。极端偏离可能影响分组稳定性。
偏度 = 0.1391,峰度 = -0.8738
------------------------------------------------------------
【13】最新20日IC趋势(滚动均值变化)
正值表示近期因子预测能力在增强,负值表示衰减。
最近20日IC均值变化: 0.0219
✅ 近期IC上升,因子表现改善。
------------------------------------------------------------
【14】多空组合卡玛比率(年化收益 / 最大回撤)
原理:衡量单位回撤风险带来的年化收益,数值越大越好。
当前卡玛比率 = -0.1629
❌ 较差(<0.5),回撤过大或收益不足。
------------------------------------------------------------
【15】多空组合回撤修复天数
原理:从最大回撤谷底回到前高所需的天数,越短越好。
当前修复天数 = nan 个交易日
❌ 修复极慢,可能策略失效期过长。
------------------------------------------------------------
【16】多空组合月度胜率
原理:每月正收益的比例,衡量策略月度表现的稳定性。
当前月度胜率 = 46.88%
❌ 胜率低于50%,策略不稳定。
------------------------------------------------------------
【17】多空组合与市场收益相关性
原理:衡量因子策略是否与市场走势相关,低相关有分散化价值。
当前相关系数 = 0.0007 (p=0.9786)
✅ 低相关,可作为市场中性策略。
------------------------------------------------------------
【18】IC序列的偏度与峰度
原理:偏度≠0表示IC分布不对称,峰度>3表示有厚尾风险。
偏度 = -0.0684,峰度 = 0.0342
⚠️ IC分布异常,可能存在极端预测值。
------------------------------------------------------------
【19】IC序列的自相关(滞后1天)
原理:衡量今日IC与明日IC的关系,高自相关表示预测能力持续。
当前IC自相关 = -0.0164
❌ IC自相关低,因子效果容易反转。
------------------------------------------------------------
【20】IC的滚动波动率(20天)
原理:IC波动越小,因子越稳定。
近期IC波动率 = 0.1046
⚠️ 波动中等,尚可接受。
------------------------------------------------------------
【21】因子值极端值比例(超出±3σ)
原理:极端值过多可能导致分组不稳定。
当前极端值比例 = 0.00%
✅ 极端值很少,数据质量好。
------------------------------------------------------------
【22】因子值滚动标准差的稳定性
原理:因子截面离散度的变化程度,变化越小越稳定。
滚动标准差的标准差 = 0.0116
✅ 因子离散度稳定,分组一致性高。
------------------------------------------------------------
【23】分组换手率的稳定性(各分位组换手率差异)
原理:各组换手率差异小,说明因子在不同分位组间切换频率一致。
换手率组间标准差 = 0.2988
⚠️ 不同组换手差异大,可能在某些组过度交易。
------------------------------------------------------------
【24】分组收益中位数差异(最高组 vs 最低组)
原理:中位数差异比均值更稳健,反映典型收益差。
中位数收益差 = 2.56 bps
✅ 中位数差异显著,因子稳健有效。
------------------------------------------------------------
【25】分组收益t检验(最高组与最低组)
原理:检验最高/最低组收益是否显著异于零。
最高组 p值 = 0.9508,最低组 p值 = 0.3950
❌ 最高组收益不显著异于零。
❌ 最低组收益不显著异于零。
------------------------------------------------------------
【26】各组最大回撤深度对比
原理:各组自身的最大回撤,反映极端风险。
最小组 (Q1) 最大回撤: -34.68%
最大组 (Q10) 最大回撤: -44.24%
⚠️ 最大组回撤更大,高因子值股票风险也更高。
------------------------------------------------------------
【27】最高组连续盈利/亏损天数
原理:反映策略的持续赚钱能力和风险暴露时长。
最长连续盈利天数: 10 天
最长连续亏损天数: 10 天
⚠️ 存在较长连续亏损期,需做好风控。
------------------------------------------------------------
【28】综合评级与最终建议
📊 因子综合评分 (越高越好): 1.71 / 40
各维度评分明细(括号内为满分):
IC均值 (0.0034) → 0.34/10
ICIR (0.0269) → 0.03/5
多空夏普 (-0.6934) → -0.69/5
换手率惩罚 (1.3576) → 0.00/5
因子自相关 (0.8060) → 4.03/5
因子溢价 (bps) (-2.00) → -2.00/5
📝 因子诊断总结
综合评级: D (较差)
操作建议: 不建议单独使用,请重新审视因子定义或数据。
💡 针对性优化建议:
- IC波动大,可尝试对因子值进行平滑或使用滚动分位数。
- 换手率过高,可延长调仓周期(如5日或10日)或使用衰减权重。
- 极端组区分度低,可对因子值进行极值处理(如缩尾或标准化)。
- 单调性弱,可尝试非线性变换(如取对数或平方)。>>> Fama-MacBeth 回归 (因子溢价) <<<