今天我们开始学习小果因子分析系统的第一个内容,怎么样对全市场的可转债进行因子分析,检验因子分析,因子的效果,是不是值得做选股交易,后面会涉及到更复杂的因子分析,比如多因子分析,非线下因子分析,非线性多因子分析,还有我们常见的非数值类型的因子分析,最简单的例子就是金叉,死叉,感觉又回到了大学金融工程的课堂,上一个文章我们介绍了因子分析的原理算法研究--什么是股票因子分析原理分析,下面我们利用全市场可转债的的MACD因子分析,来检验MACD这个因子是不是有效果的,打开分析系统,算法研究--怎么样全市场可转债因子分析算法研究,https://mp.weixin.qq.com/s/UHBRiURlyAQeoM7Lgettnw?scene=1&click_id=15

分析框架我写了1000多行的代码,分析的内容还是很全面的

第一步读取全市场可转债的代码,调整为qmt可以识别的格式,数据利用qmt的

第二步利用指数的时间长度,建立数据表的框架,这样可以把不同上市的标的数据合在一个表,没有的数据利用none填充就可以

第三步生成因子数据价格数据,注意数据的时间格式要一样,读取历史数据,计算因子合并因子数据

把数据转成分析系统可以识别的因子数据框架,2个索引数据
factor_series = factor_df.stack()
factor_series.index.names = ['date', 'asset']
print(factor_series)

对因子数据继续分组,设置因子分析的参数,导入因子分析框架

对因子数据分组,处理因子标签

第四步开始因子分析,启动分析框架

下面我就截图分析的内容,指标方便参考因子分析的原理











>>> 分层收益绩效 (未来1D日) <<<
日均收益 (bps) 年化收益 (%) 波动率 (年化) 夏普比率 最大回撤 (%) 卡玛比率 胜率 (%) \
1.0 3.8299 10.1303 21.6363 0.4461 -25.3737 0.3992 51.8898
2.0 5.3086 14.3096 14.0490 0.9522 -14.8582 0.9631 53.6220
3.0 4.0799 10.8260 12.1789 0.8442 -19.3124 0.5606 53.5433
4.0 4.3084 11.4658 11.1815 0.9710 -18.6742 0.6140 55.1969
5.0 4.2800 11.3861 10.7341 1.0048 -16.1773 0.7038 54.7244
6.0 3.9451 10.4505 10.6873 0.9302 -19.3975 0.5388 53.4646
7.0 3.0747 8.0551 10.9213 0.7095 -22.8983 0.3518 52.2047
8.0 3.5072 9.2387 11.9798 0.7377 -23.3432 0.3958 52.3622
9.0 0.1229 0.3101 13.7954 0.0224 -41.1866 0.0075 51.9685
10.0 -4.0875 -9.7896 20.7225 -0.4971 -66.0735 -0.1482 48.7402
最大单日收益 (bps) 最小单日收益 (bps)
1.0 519.0975 -1059.7116
2.0 425.0273 -631.6201
3.0 340.8297 -502.6342
4.0 290.7695 -400.5401
5.0 287.5467 -455.8497
6.0 350.2365 -464.4760
7.0 511.0979 -443.0226
8.0 425.8704 -534.9824
9.0 482.5497 -621.7107
10.0 673.6289 -611.9344
>>> 分层收益绩效 (未来1D日) <<<
日均收益 (bps) 年化收益 (%) 波动率 (年化) 夏普比率 最大回撤 (%) 卡玛比率 胜率 (%) \
1.0 3.8299 10.1303 21.6363 0.4461 -25.3737 0.3992 51.8898
2.0 5.3086 14.3096 14.0490 0.9522 -14.8582 0.9631 53.6220
3.0 4.0799 10.8260 12.1789 0.8442 -19.3124 0.5606 53.5433
4.0 4.3084 11.4658 11.1815 0.9710 -18.6742 0.6140 55.1969
5.0 4.2800 11.3861 10.7341 1.0048 -16.1773 0.7038 54.7244
6.0 3.9451 10.4505 10.6873 0.9302 -19.3975 0.5388 53.4646
7.0 3.0747 8.0551 10.9213 0.7095 -22.8983 0.3518 52.2047
8.0 3.5072 9.2387 11.9798 0.7377 -23.3432 0.3958 52.3622
9.0 0.1229 0.3101 13.7954 0.0224 -41.1866 0.0075 51.9685
10.0 -4.0875 -9.7896 20.7225 -0.4971 -66.0735 -0.1482 48.7402
最大单日收益 (bps) 最小单日收益 (bps)
1.0 519.0975 -1059.7116
2.0 425.0273 -631.6201
3.0 340.8297 -502.6342
4.0 290.7695 -400.5401
5.0 287.5467 -455.8497
6.0 350.2365 -464.4760
7.0 511.0979 -443.0226
8.0 425.8704 -534.9824
9.0 482.5497 -621.7107
10.0 673.6289 -611.9344
>>> 多空组合 (Q10.0 - Q1.0) 绩效 <<<
年化收益: -18.0938%
年化波动: 18.9429%
夏普比率: -0.9552
最大回撤: -75.6687%
胜率: 44.96%






教程的使用只是框架的冰山一角,模型开发结合了我多年的金融工程经验改进,不懂的问我就可以,加我备注入群可以加入量化研究群

量化福利,找我开户专业的量化支持

总结分析MACD不是一个很有效果的指标,需要结合其他的因子分析,生成的分析结果报告
>>> Fama-MacBeth 回归 (因子溢价) <<<
Fama-MacBeth 因子溢价 (1D): 常数项=0.000255, 因子系数=-0.000147
解释: 因子值每增加1单位,未来1D日收益变化 -1.47 bps
------------------------------------------------------------
【1】信息系数 IC 均值(预测方向准确率)
IC = 因子值与未来收益的相关系数,范围 [-1, 1]。正值表示因子越大未来收益越高。
当前 IC 均值 = -0.0362
🔄 评价:负相关,因子值越大未来收益越低(可反向使用)。
------------------------------------------------------------
【2】ICIR(信息比率,IC均值 / IC标准差)
衡量因子预测的稳定性,越高说明每次预测的可靠性越一致。
当前 ICIR = -0.1919
❌ 评价:较差(<0.2),因子预测忽高忽低,不靠谱。
------------------------------------------------------------
【3】多空组合夏普比率(做多因子最大组,做空最小组)
衡量因子区分好坏股票后,多空对冲策略的风险调整收益。夏普 > 1 优秀。
当前多空夏普 = -0.9552
❌ 较低(<0.5),直接交易该因子意义不大。
------------------------------------------------------------
【4】平均换手率(每日因子分组中股票变动比例)
换手率越低,交易成本越低,策略越容易实现。
当前平均换手率 = 0.8686(每日约 86.9% 的股票换出)
❌ 高换手(>60%),频繁交易会严重侵蚀收益。
------------------------------------------------------------
【5】因子自相关系数(一阶自相关,衡量因子值的稳定性)
数值越高,因子变化越慢,选股逻辑越连贯。
当前因子自相关 = 0.9544
✅ 高稳定性(>0.8),适合低频策略。
------------------------------------------------------------
【6】Fama-MacBeth 因子溢价(单位因子值带来的日度超额收益)
当前因子溢价 = -1.47 bps
❌ 溢价为负,因子反向有效(可取负值使用)。
------------------------------------------------------------
【7】分组收益单调性检验(Spearman秩相关)
检验因子值越大,收益是否越高(单调递增)。相关系数接近1表示单调性好。
Spearman相关系数 = -0.7697,p值 = 0.0092
🔄 单调性反向(递减),可考虑取负因子值。
------------------------------------------------------------
【8】极端值分析(因子值最高10% vs 最低10%)
比较极端组的平均收益,考察因子两端是否有明显区分。
最高10%因子值平均收益: -1.06 bps
最低10%因子值平均收益: 11.97 bps
极端多空收益差: -13.03 bps
❌ 极端组差异小,因子对极端值不敏感。
------------------------------------------------------------
【9】月度IC稳定性(月度IC均值的标准差)
标准差越小,因子在不同月份的表现越稳定。
月度IC均值的标准差 = 0.0382
✅ 非常稳定,月度IC均值波动小。
------------------------------------------------------------
【10】多空组合最大回撤持续期
最长的连续亏损天数,反映策略的“痛苦期”。
最长回撤持续期 = 1226 个交易日
❌ 回撤期过长,策略可能长时间失效。
------------------------------------------------------------
【11】分层收益夏普比率对比(最高组 vs 最低组)
因子值最高组夏普比率: -0.4971
因子值最低组夏普比率: 0.4461
⚠️ 两组夏普差异不大,因子分层效果不明显。
------------------------------------------------------------
【12】因子值分布特征(偏度、峰度)
偏度接近0表示对称,峰度接近3表示正态分布。极端偏离可能影响分组稳定性。
偏度 = -4.6156,峰度 = 472.3833
⚠️ 偏度较大,可能存在极端值影响。
⚠️ 峰度过高,因子值集中,可能降低区分度。
------------------------------------------------------------
【13】最新20日IC趋势(滚动均值变化)
正值表示近期因子预测能力在增强,负值表示衰减。
最近20日IC均值变化: 0.0705
✅ 近期IC上升,因子表现改善。
------------------------------------------------------------
【14】多空组合卡玛比率(年化收益 / 最大回撤)
原理:衡量单位回撤风险带来的年化收益,数值越大越好。
当前卡玛比率 = -0.2391
❌ 较差(<0.5),回撤过大或收益不足。
------------------------------------------------------------
【15】多空组合回撤修复天数
原理:从最大回撤谷底回到前高所需的天数,越短越好。
当前修复天数 = nan 个交易日
❌ 修复极慢,可能策略失效期过长。
------------------------------------------------------------
【16】多空组合月度胜率
原理:每月正收益的比例,衡量策略月度表现的稳定性。
当前月度胜率 = 32.81%
❌ 胜率低于50%,策略不稳定。
------------------------------------------------------------
【17】多空组合与市场收益相关性
原理:衡量因子策略是否与市场走势相关,低相关有分散化价值。
当前相关系数 = -0.1095 (p=0.0001)
✅ 低相关,可作为市场中性策略。
------------------------------------------------------------
【18】IC序列的偏度与峰度
原理:偏度≠0表示IC分布不对称,峰度>3表示有厚尾风险。
偏度 = -0.0505,峰度 = 0.4441
⚠️ IC分布异常,可能存在极端预测值。
------------------------------------------------------------
【19】IC序列的自相关(滞后1天)
原理:衡量今日IC与明日IC的关系,高自相关表示预测能力持续。
当前IC自相关 = -0.0048
❌ IC自相关低,因子效果容易反转。
------------------------------------------------------------
【20】IC的滚动波动率(20天)
原理:IC波动越小,因子越稳定。
近期IC波动率 = 0.2912
❌ 高波动,因子预测忽强忽弱。
------------------------------------------------------------
【21】因子值极端值比例(超出±3σ)
原理:极端值过多可能导致分组不稳定。
当前极端值比例 = 1.33%
⚠️ 存在一定极端值,建议缩尾处理。
------------------------------------------------------------
【22】因子值滚动标准差的稳定性
原理:因子截面离散度的变化程度,变化越小越稳定。
滚动标准差的标准差 = 0.2587
⚠️ 离散度变化大,因子区分能力时强时弱。
------------------------------------------------------------
【23】分组换手率的稳定性(各分位组换手率差异)
原理:各组换手率差异小,说明因子在不同分位组间切换频率一致。
换手率组间标准差 = 0.3210
⚠️ 不同组换手差异大,可能在某些组过度交易。
------------------------------------------------------------
【24】分组收益中位数差异(最高组 vs 最低组)
原理:中位数差异比均值更稳健,反映典型收益差。
中位数收益差 = -9.85 bps
❌ 中位数差异小,因子效果可能由极端值驱动。
------------------------------------------------------------
【25】分组收益t检验(最高组与最低组)
原理:检验最高/最低组收益是否显著异于零。
最高组 p值 = 0.2647,最低组 p值 = 0.3168
❌ 最高组收益不显著异于零。
❌ 最低组收益不显著异于零。
------------------------------------------------------------
【26】各组最大回撤深度对比
原理:各组自身的最大回撤,反映极端风险。
最小组 (Q1.0) 最大回撤: -25.37%
最大组 (Q10.0) 最大回撤: -66.07%
⚠️ 最大组回撤更大,高因子值股票风险也更高。
------------------------------------------------------------
【27】最高组连续盈利/亏损天数
原理:反映策略的持续赚钱能力和风险暴露时长。
最长连续盈利天数: 9 天
最长连续亏损天数: 9 天
⚠️ 存在较长连续亏损期,需做好风控。
------------------------------------------------------------
【28】综合评级与最终建议
📊 因子综合评分 (越高越好): -1.47 / 40
各维度评分明细(括号内为满分):
IC均值 (-0.0362) → -3.62/10
ICIR (-0.1919) → -0.19/5
多空夏普 (-0.9552) → -0.96/5
换手率惩罚 (0.8686) → 0.00/5
因子自相关 (0.9544) → 4.77/5
因子溢价 (bps) (-1.47) → -1.47/5
📝 因子诊断总结
综合评级: D (较差)
操作建议: 不建议单独使用,请重新审视因子定义或数据。
💡 针对性优化建议:
- IC波动大,可尝试对因子值进行平滑或使用滚动分位数。
- 换手率过高,可延长调仓周期(如5日或10日)或使用衰减权重。
- 极端组区分度低,可对因子值进行极值处理(如缩尾或标准化)。
- 单调性弱,可尝试非线性变换(如取对数或平方)。
|