当前位置: 首页 > news >正文

量化因子投资——多因子模型Excel构建

选股的本质就是"多维度体检"——价值因子看估值,质量因子看盈利,动量因子看趋势,低波动因子看风险。不要把鸡蛋放在一个篮子里,也不要只看一个指标。让数据说话,而不是让感觉说话。

一、量化因子投资的核心逻辑

1.1 什么是因子?

因子是解释股票收益差异的变量。

通俗解释

因子就像体检指标——血压、血糖、胆固醇,每个指标反映身体的一个方面。

常见因子类型

因子类型代表指标逻辑
价值因子PE、PB、股息率便宜有好货
质量因子ROE、毛利率、盈利稳定性好公司值得溢价
动量因子过去1-12个月收益趋势延续
低波动因子波动率、Beta低风险高收益悖论
规模因子市值小盘溢价

1.2 多因子模型的优势

单一因子的局限

  • 价值因子:可能选到价值陷阱
  • 动量因子:可能追高被套
  • 质量因子:可能错过反转机会

多因子的优势

  • 分散单一因子的风险
  • 捕捉不同市场环境的机会
  • 提高策略稳健性

二、常见因子计算

2.1 价值因子

PE(市盈率)

=股价 / 每股收益

PB(市净率)

=股价 / 每股净资产

股息率

=每股股息 / 股价

价值得分

// PE、PB越低越好,股息率越高越好 // 标准化后加权 =(-PE_Z - PB_Z + 股息率_Z) / 3

2.2 质量因子

ROE

=净利润 / 净资产

毛利率

=(营业收入 - 营业成本) / 营业收入

盈利稳定性

// 过去5年ROE的标准差倒数 =1 / STDEV(ROE_5年)

质量得分

=(ROE_Z + 毛利率_Z + 稳定性_Z) / 3

2.3 动量因子

20日动量

=(当前价 - 20日前价格) / 20日前价格

60日动量

=(当前价 - 60日前价格) / 60日前价格

动量得分

=(动量20_Z + 动量60_Z) / 2

2.4 低波动因子

波动率

// 20日收益率标准差年化 =STDEV(日收益率_20日) * SQRT(252)

Beta

=COVAR(股票收益, 市场收益) / VAR(市场收益)

低波动得分

// 波动率和Beta越低越好 =(-波动率_Z - Beta_Z) / 2

三、多因子打分模型

3.1 数据标准化

Z-score标准化

=(原始值 - AVERAGE(所有股票该因子)) / STDEV(所有股票该因子)

为什么标准化

  • 不同因子量纲不同
  • 消除量纲影响,可比可加

3.2 因子权重设计

等权重

总得分 = (价值_Z + 质量_Z + 动量_Z + 低波动_Z) / 4

自定义权重

// 根据市场环境调整 总得分 = 价值_Z*0.3 + 质量_Z*0.3 + 动量_Z*0.2 + 低波动_Z*0.2

IC加权(高级):

根据因子历史IC(信息系数)动态调整权重。

3.3 Excel实现多因子模型

数据表结构

股票代码PEPBROE毛利率动量20波动率价值_Z质量_Z动量_Z低波_Z总得分
60051928825%92%15%20%-0.51.20.8-0.30.30

计算步骤

  1. 获取所有股票的原始因子值
  2. 对每个因子计算Z-score
  3. 按权重加权求和
  4. 排名,选前N只

四、因子有效性检验

4.1 IC分析

IC(Information Coefficient)

因子得分与未来收益的相关性。

Excel计算

=CORREL(本期因子得分, 下期收益率)

判断标准

  • IC > 0.03:有效
  • IC > 0.05:优秀
  • IC < 0:反向因子

4.2 分层回测

方法

  1. 按因子得分将股票分为5组(Q1-Q5)
  2. 每组等权重构建组合
  3. 持有期(如1个月)后调仓
  4. 比较各组收益

Excel实现

// 分组(假设100只股票,每组20只) =IF(RANK(总得分)<=20, "Q1", IF(RANK(总得分)<=40, "Q2", IF(RANK(总得分)<=60, "Q3", IF(RANK(总得分)<=80, "Q4", "Q5"))))

理想结果

Q1(最高分组)收益 > Q2 > Q3 > Q4 > Q5(最低分组)

4.3 单调性检验

目的

检验因子是否具有单调性——得分越高,收益越高。

方法

计算各组平均收益,看是否单调递增。


五、多因子选股策略回测

5.1 策略设计

策略规则

  1. 每月初计算所有股票因子得分
  2. 选取得分最高的20只股票
  3. 等权重配置
  4. 持有1个月,下月调仓

5.2 Excel回测框架

步骤1:准备历史数据

每月各股票的因子值和次月收益。

步骤2:计算每月信号

// 按总得分排名 =RANK(总得分, 所有股票总得分) // 选前20 =IF(排名<=20, "买入", "")

步骤3:计算组合收益

// 买入股票的次月平均收益 =AVERAGEIF(信号列, "买入", 次月收益列)

步骤4:计算累计收益

// 累计净值 =上月净值 * (1 + 本月组合收益)

5.3 绩效评估

指标计算方法
年化收益(期末净值/期初净值)^(12/月数) - 1
年化波动STDEV(月收益) * SQRT(12)
夏普比率(年化收益 - 无风险收益) / 年化波动
最大回撤峰值到谷底最大跌幅
胜率盈利月份 / 总月份

六、因子迭代优化

6.1 因子失效识别

信号

  • IC持续下降
  • 分层回测单调性消失
  • 策略收益下滑

应对

  • 降低该因子权重
  • 替换为新因子
  • 增加因子数量

6.2 因子组合优化

相关性分析

=CORREL(因子1, 因子2)

原则

  • 选相关性低的因子组合
  • 避免信息重叠

6.3 动态权重调整

方法1:滚动IC加权

// 用过去12个月IC作为权重 权重 = 该因子12月平均IC / SUM(所有因子12月平均IC)

方法2:市场环境判断

  • 牛市:增加动量因子权重
  • 熊市:增加价值、低波动因子权重
  • 震荡市:增加质量因子权重

七、总结与行动清单

7.1 核心要点

因子类型代表指标适用环境
价值PE、PB熊市、震荡市
质量ROE、毛利率长期持有
动量20日/60日收益牛市
低波动波动率、Beta熊市、保守

7.2 下一步行动

  1. 今天就做:选择3-5个因子,计算你关注股票的因子值
  2. 本周完成:构建简单的多因子打分模型,选出前10名
  3. 本月目标:进行分层回测,验证因子有效性

7.3 一个提醒

多因子不是万能的

  • 因子会失效,需要持续监控
  • 历史表现不代表未来
  • 过度优化会导致过度拟合

建议

  • 从简单因子开始
  • 定期检验因子有效性
  • 保持谦逊,持续迭代

量化因子是科学投资的基础,但市场永远有不理性的部分。


标签:多因子模型 | 量化因子 | 价值投资 | 动量策略 | 因子投资 | 因子检验 | IC分析

字数:约2900字

推荐阅读

  • 上一篇:《期权策略分析——希腊字母与盈亏图Excel绘制》
  • 下一篇:《机器学习入门——用Python+Excel实现简单预测》
http://www.cnnetsun.cn/news/2693164.html

相关文章:

  • 如何构建专业的《缺氧》存档编辑器:Oni-Duplicity技术架构深度解析
  • 别再只盯着下载了!GLC_FCS30数据背后的‘连续变化检测’技术,到底强在哪?
  • 实测对比:YOLOv8n与YOLOv8m在Jetson Orin Nano上的训练速度与显存占用(附解决Killed进程方法)
  • 实战指南:如何高效使用Google OR-Tools优化引擎解决复杂业务问题
  • 告别死记硬背:用Python可视化带你理解lp空间和Lebesgue空间的几何
  • 终极解锁:3分钟让联想笔记本释放隐藏性能
  • Sora 2医学动画提示词工程白皮书:17类高危解剖结构专属Prompt模板(含脑干/冠脉/胎盘三级安全校验机制)
  • 如何用PyPortfolioOpt的Black-Litterman模型实现智能资产配置?终极指南
  • 如何5步快速完成Hackintosh配置:OpCore Simplify终极自动化指南
  • 5分钟快速上手:抖音批量下载工具让你轻松保存喜欢的视频
  • 运维实战全套总结 + 实战教程(MySQL 主从 + LVS+Keepalived 高可用)
  • DIY可拆卸电机转盘:齿轮传动与PWM调速的工程实践
  • 基于NE555的红外遥控干扰器:从原理到实战制作
  • 反洗钱平台-技术栈全景图
  • 基于ESP8266与MQTT的智能家居安防蜂鸣器反馈系统实现
  • 如何为Windows桌面添加复古翻页时钟:FlipIt终极指南
  • 热插拔机械键盘DIY指南:从PCB检测到轴体调校全流程解析
  • VERSES AI基于主动推理的AGI新范式:挑战OpenAI并呼吁行业协作
  • 解密PyMobileDevice3:用Python掌控iOS设备的终极武器
  • 题解:AtCoder AT_awc0080_e Paint Drop
  • “聚焦法则”——把所有资源钉在一个窄点上,击穿后形成复利
  • Streamlit(十八)- API 参考文档(十一)- 页面导航组件
  • SpikingJelly泊松编码实战:从图像处理到SNN模型输入的完整数据流水线
  • 智能垃圾桶项目成本大揭秘:从零到量产,SG90舵机、SW-18010P震动传感器到底怎么选最划算?
  • 用于自动维护一个 C# 源码文件(AutoVersion.cs)
  • CANoe自动化测试进阶:巧用setPreTrigger和setPostTrigger,让你的CPAL脚本精准捕获‘事发瞬间’的数据
  • 医疗边缘AI硬件加速:CMOS ASIC、FPGA与忆阻器技术解析与应用
  • 告别‘元素不可见’:Selenium+Pytest处理shadow-root的完整避坑指南
  • 新能源电站电能质量数据采集解决方案
  • java matches Java匹配上瘾?这编程语言让你从菜鸟秒变大神