01学完这一课,你能做到什么
假设今天有24只股票。你不是先盯着某一只股票猜涨跌,而是把它们的、波动率、、等特征变成数字,再在同一天给它们排队。接着检验:排在前面的股票,未来一段时间是否更容易得到更高收益。
学完这一课,你应该能:
- 把价格、波动、动能和量能变成可比较的;
- 用、和五分组检验判断因子是否有信息;
- 用人工权重把多个因子合成分数,再按Top N月末调仓;
- 理解小增强、网格适配筛选和排名的差别;
- 检查标签成熟、未来数据泄漏、、成本和等风险。
因子是把股票特征变成可比较数字的方法。因子有关系,不代表它单独就能赚钱;还要看关系是否稳定、交易是否可执行。
- 1数据同一时点可用信息
- 2因子把特征变成数字
- 3检验IC和五分组
- 4打分统一方向和权重
- 5调仓Top N等权持有
一句话记住多因子先问有没有关系,再谈怎么加权。
02把观察转成可计算的特征
先看几个常用因子。
动量描述价格过去走了多远。20日动量可以写成:
20日动量 = 当前收盘价 ÷ 20个交易日前收盘价 − 1
假设20个交易日前是50元,现在是59.5元:59.5 ÷ 50 − 1 = 19%。这是接近20%的上涨,不表示未来还会继续涨。
相对波幅可以用除以收盘价:
相对波幅 = ATR ÷ 收盘价
假设ATR是2元、收盘价是50元:2 ÷ 50 = 4%。这样不同价格水平的股票才更容易比较。
RSI常用14期,用来描述近期上涨和下跌力量的相对状态。30和70可以作为观察阈值,但不是买卖保证。
MACD及其柱状变化,用来描述趋势和动能变化。柱子减弱可以提示观察,但不能直接推出下跌已经结束。
ADX描述趋势强度,方向要另外判断。量比把当天成交量和过去20日均量比较,再结合价格上涨或下跌区分放量和缩量。放量也不自动等于利好。
价格水平也可以作为输入,但低股价不等于低估值,不能把名义价格和、混在一起。TA-Lib 能辅助计算许多指标,比如 158 项技术指标和 61 种 形态,具体数量以你安装的版本文档为准。
每个因子都要记录公式、窗口、可用时间和缺失值处理方式。只有定义清楚,别人才能复算同一列数字。
动量
过去涨跌幅和趋势变化。
波动率
价格波动相对自身价格有多大。
RSI / ADX
超买超卖和趋势强弱。
量比
成交量相对近期均量的变化。
一句话记住每个因子都要写清公式、窗口和可用时间。
03先检验因子有没有信息
在同一天t,先取股票池里每只股票的因子值X,再计算它们未来20个交易日的收益Y。X只能用t时已经知道的信息;Y是事后标签,不能在t时提前参与选股。
把X和Y分别排序,再计算排名相关性,就是Spearman相关,也常叫Rank IC。它关注名次,而不是原始数值大小。
IC = 因子排名与未来收益排名的Spearman相关
假设某次截面的Rank IC是0.08:这个数字高于0,表示样本中因子值较高的股票,未来收益排名倾向更高。若是−0.08,则低因子值可能对应更高未来收益,可以考虑反向使用。IC接近0只说明当前样本、周期和检验方法下单调关系较弱,不代表所有非线性关系都不存在。
对多个日期重复计算,可以得到IC时间序列。ICIR常写成:
ICIR = 各期IC的平均值 ÷ 各期IC的标准差
假设6个月的IC平均值是0.06,标准差是0.12:0.06 ÷ 0.12 = 0.5。这表示平均关系相对于自身波动的比值,不是收益率。
常用的经验观察线包括|IC|大于0.05,以及ICIR约0.3—0.5或更高。它们受频率、样本、标签期限和估计方法影响,不能直接当成交易合格线。20日标签重叠时,各期IC还可能互相相关,表面稳定性要进一步检查。
再把每个截面按因子从低到高分成Q1到Q5,比较各组后续收益。如果收益大体单调变化,才更支持单调关系。若Q3反而最好、Q5变差,可能是U形关系或极端值对应风险,不能只凭总体IC说“越大越好”。
低波案例中,波动率与未来20日收益的负相关更明显,20日动量和14日RSI接近零;这只是特定样本的观察。混合股票和会改变样本分布,低波和红利也要分别定义。
整体排名关系
先看高低排序与未来收益排序是否同向。
分组形状
再看收益是否单调,能否发现极端值和非线性。
一句话记住IC 看关系,分组看形状,稳定性还要跨时间。
多因子选股对照实验
在 24 只合成股票、6 次月末调仓中,比较低波、八因子 Top 10、Top 5 和小市值增强:IC、分层、集中度和排雷。
斯皮尔曼 IC -0.52%,ICIR -3.19。 六个调仓月的 IC 为 -0.40,-0.54,-0.28,-0.47,-0.74,-0.70。用真实波幅除以价格。它是反向因子:排名看谁更稳,不看谁更跳。固定样本上的负相关,不是承诺低波红利永远有效。
波动率、动量、RSI、ADX、量比、价格和 MACD 柱先在截面上排名,再按固定权重加总。每月等权持有 10 只。教学里它是集中和分散之间的平衡点。
04用人工权重建立第一版组合
人工模型先把20日和60日动量、波动率、RSI、、量能、价格、MACD等因子在同一股票池内排名。然后统一方向:符合策略的方向都变成“分数越高越好”,再乘权重相加。
方向必须由任务和检验支持。趋势筛选可能偏好较强动量,网格筛选反而可能偏好接近中性的动量。材料没有完整八因子权重表,所以不能补写不存在的参数。
每月末重新计算分数,取Top N,按等资金权重持有。假设账户有10万元、选5只:
每只目标资金 = 100000 ÷ 5 = 20000元
等资金不是每只买相同股数。实际数量还要按可交易单位取整,剩余现金保留。换仓时要先检查已有,不能因为股票再次入选就无条件重复买入。
示例比较过Top 5、Top 10和Top 20。某次样本中Top 5收益较高但回撤较大,Top 10相对均衡,曾出现约12%的;过度分散也可能稀释信号。这只说明该样本的取舍,不能推出Top 10永远最好。
比较时还要看行业集中度、、费用和不同时间段表现。月度调仓可能降低摩擦,却也可能错过变化;频率要和信号能持续多久相匹配。
一句话记住Top N 是集中度选择,不是收益保证。
05小市值轮动:增强不等于每项都更好
市场、市值和价值可以用来理解三因子思想。SMB表示小盘相对大盘的收益差。低PE的例子只是在说明价值偏好,不能直接当成经典三因子里账面市值比的精确定义。
基础做法是在月末按市值排序,挑出较小的一组。增强版可以先选约50只小市值候选,再过滤极端波动、弱动量和明显风险标的,最后按小市值、动量、低波三个方向一致的分数加权。
假设三项已经被转换成同一尺度,权重是市值50%、动量30%、低波20%,那么组合分数为:
增强分数 = 50% × 市值得分 + 30% × 动量得分 + 20% × 低波得分
假设三项得分分别为0.8、0.6、0.7:0.5×0.8 + 0.3×0.6 + 0.2×0.7 = 0.72。先统一尺度很重要,不能把原始市值、收益率和ATR直接相加。
小市值效应会随阶段增强或衰减,不保证未来成立。小市值策略要过滤ST、退市风险和不足,并使用当时真实可选的股票池。今天仍上市的股票不能代表历史上全部可选股票,这就是幸存者偏差风险。
某个Top 10增强版本曾报告2024—2025年总收益约15%、年化约8%、夏普约1.2、月度63.6%,Top 20可能更好。由于缺少完整日期、手续费、股票池和收益算法,这些数字只保留作案例,不当作复核后的结果。
一句话记住增强版先统一尺度,再检查样本和生存偏差。
06如果目标是网格,因子也要服务于区间
如果你要运行网格,直接寻找未来收益最高的股票不一定合适。可以研究低ADX、适中波动、接近中性的RSI、接近零的20日动量、足够换手率,以及存在可用等条件。
例如用:
RSI偏离度 = |RSI − 50|
假设RSI是56:|56 − 50| = 6。偏离度越小,越接近中性;但“越接近50越好”仍然只是需要检验的假设。价格长期平直可能没有足够净价差,RSI长期低位也可能意味着持续下跌。
用:
动量偏离度 = |20日动量|
假设20日动量是−3%:|−3%| = 3%。偏离度越小,说明近期趋势偏离越小,但仍要检查波动、流动性和中枢是否成立。
流程是:全市场计算因子→按网格适配条件排名→选Top N→检查中枢是否成立及宽度是否足够→分配资金→运行网格。没有中枢或区间太窄,就不强行交易。筛选越严格,交易可能越少、回撤可能越小,但收益和现金利用率也可能下降。
一句话记住选股目标不同,因子的好方向也可能相反。
07用机器学习替换人工权重
人工权重容易解释,但不一定适合所有市场。机器学习把因子作为X,把未来20日收益作为Y,训练一个预测器,再对候选股票输出预测收益并排序选Top 10。预测值只能用于排序,不能理解成未来必定得到的收益。
示例使用13个特征,包含5、10、20、60日动量、波幅、趋势、价格位置以及交叉特征。明确提到的交叉特征包括“动量×波动率”和“ADX×RSI”。交叉特征的作用是描述:同样的动量,在不同波动环境下可能意义不同。高动量加高波可能代表剧烈波动,高动量加低波可能代表更平缓的上涨,最终仍要由数据检验。
LightGBM、XGBoost和随机森林等树模型适合表格特征,也能学习非线性和条件组合。哪种模型更准、更快,取决于数据、参数和实现。约19万样本是约6000只标的、31个月数据量级的教学估算,CPU可以作为起点;是否使用GPU要按实际安装版本和参数核对。
滚动训练的正确顺序是:用过去12个月训练,预测下一个月;预测完成后窗口向前滚动。比如用过去数据预测2024年1月,再预测后续月份,一直滚动到2025年12月。未来20日收益要等20日结束后才成熟,训练截止日必须排除尚未完成的标签。
训练集用于学习参数,验证集用于选配置,测试集用于评估此前没有参与选择的时间段。标准化、缺失值填补和特征筛选也只能用训练期拟合。把滚动预测串成结果后,才能计算组合业绩。
某次展示中的机器学习组合收益约37%,以及波动率重要性较高、动量×波动率重要性约排第五,都是缺少原数据和参数的案例数字。模型重要性说明模型怎样使用输入,不说明因果,也不直接说明方向。相关因子还可能分摊或替代重要性。
- 1过去12个月训练模型,标签必须成熟
- 2下一个月只做样本外预测
- 3向前滚动加入已成熟的新数据
- 4串接结果最后评估组合表现
一句话记住未来标签成熟后,才能进入过去的训练集。
08把回测补成可执行的交易实验
模型分数高,不代表订单一定能成交。要分别记录信号、委托和成交,并把手续费、、税费、可用现金、可卖持仓、暂停交易和无法成交写进规则。
A股涨跌幅规则会随板块、风险状态和日期变化,不能把所有股票统一写成10%。日线价格触及涨停,也不能仅凭这一点确定盘中排队成交;保守的不成交假设要写明。会影响买入后能否当天卖出。
网格还要增加合约乘数、、到期换月、强平和流动性模型。格距变宽和资金倍增不是一回事。即使用1、2、4、8等安排,资金倍增也会迅速放大风险,不能把它当成避免爆仓的方法。
网格份额可以前轻后重、前重后轻,或者参考斐波那契间隔。后置仓位可能让资金长期闲置,前置仓位会更早承担下跌风险。只看最终收益,无法比较两种资金路径。任何规则改变都应视为新策略,重新记录实验。
常见失败还包括数据质量差、因子失效、和泄漏。不要把多个实验里最好的股票、参数和时间段拼成一条不存在的策略。
一句话记住信号、委托、成交和成本要分开记录。
09扩展研究:先提出能验证的问题
宏观、政策和科技发展可能影响股票池和长期方向,短期事件又可能和技术信号互动。政策支持不等于相关行业随后一定上涨。正确做法是先写出可验证假设,再找当时能够获得的数据。
研究可以从经典策略、券商因子研究和机器学习论文开始。检索论文时,不要只看收益图,还要查看任务定义、标签、数据切分、和代码是否可复现。数据平台的接口和权限会变化,使用前要核对当前能力。
总体上,先确定选股目标和持有期限,再决定采用震荡、趋势或混合策略。多个策略并行研究时,要写清共同资金和共同风险。名字不同,不等于风险已经充分分散。
一句话记住先写可验证假设,再选择因子和模型。
10动手验收:从三列因子开始
先选一个明确的历史股票池,生成至少动量、波幅和RSI三列因子,并记录公式、窗口和数据可用时间。
接着计算未来20日标签,按日期计算Rank IC,画出五分组后续收益。保留无效、负相关和非单调结果,不要只留下漂亮的曲线。
用预先声明的人工权重做月度Top 5、Top 10和Top 20组合,按等资金配置,比较净收益、回撤、换手、行业集中度和持有基准。再分别测试小市值原版、50%/30%/20%增强版以及网格适配股票池。
数据足够后,使用12个月训练、下一月测试的滚动模型,检查标签成熟、数据泄漏、幸存者偏差、模型复杂度和样本外稳定性。交付物应包括因子字典、时间切分表、选股名单、调仓成交日志、费用模型和失败记录。
没有完整程序或数据时,只能完成设计与小样本验证,并明确“没有复现案例回测”。不要把案例百分比写成自己的实测报告。
一句话记住保留失败记录,才能知道策略哪里不可靠。
4 道小题
全部答对,这一课就算真正读懂了。答错了会告诉你为什么。
这一课,浓缩成一张卡
学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。
先定义因子和可用时间,再看IC、分组、滚动样本外结果,最后评估成本和成交约束。
- IC不等于收益保证
- Top N 是集中度选择
- 标签成熟才能训练
记住这 5 句话
- 01因子把股票特征变成可比较数字,公式、窗口和可用时间必须写清。
- 02Rank IC看排名关系,ICIR看跨期稳定性,Q1—Q5分组帮助发现非线性。
- 03人工多因子模型要统一方向和尺度,再按Top N等资金月末调仓。
- 04小市值增强要过滤风险和幸存者偏差,增强不保证收益或回撤都更好。
- 05机器学习必须按时间滚动、等待标签成熟,并把成交约束、成本和失败记录纳入回测。
完成这一课
读完讲义、动手做一次实验、答对小题,这一课就算学完了。
- 读完讲义
- 完成一次多因子选股对照实验
- 通过随堂自测
实验数据AI+金融投资训练营教学样本。固定合成 24 只匿名样本、6 个月末截面。按收盘打分、当月等权持有到下一截面,并计入佣金、印花税和滑点。波动率与未来 20 日收益在本课样本里负相关;20 日动量关系不稳定;RSI 接近无关。打分前先去掉垃圾样本。
固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。