🏠 总目录📚 本教程 15 · 量化交易与多因子模型
📑 本页目录(点开跳转)

15 · 量化交易背景与多因子模型

25 分钟 | 🎁 背景章,但看懂它,金融类赛题的特征才不再是天书


🎯 一句话

金融赛题给你 130 个匿名特征让你预测收益,你会觉得毫无头绪。 但如果你知道「多因子模型」是什么,就会明白:那 130 个特征不是随机数,它们大概率是 130 个「因子」——每一个都在回答"这只股票在某个维度上表现如何"。


💰 一、量化交易到底在干什么

   传统交易:人看盘、看新闻、凭经验下单
   量化交易:把「什么情况下该买卖」写成程序,让机器执行

   核心两件事:
   ① 选股 —— 从几千只股票里挑出符合预期的
   ② 策略 —— 什么条件触发买、什么条件触发卖

💡 人话量化交易 = 把投资经验翻译成 if-else 和数学公式。

三个和你直觉不同的地方

维度 说明
机器的信息是"窄"的 金融环境的信息量巨大(政策、新闻、汇率、情绪),但能数字化喂给模型的只是一小部分
它是反人性的 低买高卖听起来简单,但真做起来要在所有人恐慌时买入——程序没有情绪,这是它的优势
非结构化信息最难 政府报告、时政新闻、社交媒体评价——这些恰恰是 NLP 能切入的地方(见第七节)

🔄 二、策略的生命周期(理解这个才懂赛题的性质)

   想法 → 回测验证 → 线上运行 → 【策略失效】→ 想新的
                                      ↑
                              ⭐ 注意这一步是【必然】的

为什么策略必然失效

原因 说明
市场结构变了 制度、参与者构成、流动性都在变
用的人多了 一个策略被广泛使用后,它的超额收益就被抹平了——这是最根本的原因
规则被公开 论文发表、公开分享后,套利空间迅速消失

🔑 这解释了一件对竞赛很重要的事量化领域没有"通用最优解"——美股有效的策略换到 A 股可能完全无效。 🔗 这就是《数学原理》第 11 章 NFL 在金融领域的版本: 算法的"专长"是守恒的,而且这里的"问题分布"还在主动变化。

💡 另一个推论:顶级量化公司(Two Sigma、Jane Street 等)内部策略迭代极快—— 不是因为他们喜欢折腾,而是不迭代就会被市场淘汰


📐 三、多因子模型:这一章的核心

核心思想(一句话)

一只股票的收益,可以拆解成若干个「因子」的加权和。

$$r_i = \alpha_i + \sum_{k=1}^{K} \beta_{ik} \cdot f_k + \epsilon_i$$

💡 人话翻译

股票 i 的收益 = 它对每个因子的"敏感度"× 那个因子当期的表现,再加上解释不了的部分。

🔗 看出来了吗:这本质上就是《机器学习基础》第 3 章线性回归。 只是在金融领域它有个专门的名字叫"多因子模型"。 如果你学过线性回归,这就是同一个东西换了个名字。

常见的因子类型

类别 例子 直觉
价值 市盈率 PE、市净率 PB "便宜的股票会涨回来"
规模 市值 "小公司增长空间大"
动量 过去 N 天涨幅 "涨的还会涨"(趋势)
反转 过去 N 天跌幅 "跌多了会反弹"(和动量矛盾,时间尺度不同)⭐
质量 利润率、ROE、负债率 "好公司值得溢价"
波动 历史波动率 "低波动股票风险调整后收益更好"
宏观 利率、汇率、大盘指数 系统性风险
流动性 成交量、换手率 "买卖容易程度也影响定价"

⚠️ 注意「动量」和「反转」互相矛盾——这不是错误。 短期(几天)常见反转,中期(几个月)常见动量。 这提醒你一件事:同一个特征在不同时间窗口上可能有相反的信号, 所以竞赛里给多个窗口的滚动特征(3日/7日/30日)几乎总是值得的。


🏁 四、竞赛场景下怎么理解这些匿名特征

金融赛题的典型样子(如 Jane Street、Optiver 这类):

   给你:feature_0, feature_1, ..., feature_129   ← 全是匿名的
        weight, date_id, ts_id
   预测:resp(未来某段时间的收益)

四条能帮你建立直觉的解读

观察 合理推测
130 个特征 ≈ 130 个因子 每个 feature 很可能是一个已经算好的因子/信号
特征 0 常常特殊 可能是方向编码(买/卖)或某个基础标识
看不到仓位和盈亏 你只能基于给定特征判断"这笔交易该不该做"
resp 用的是未来收益 符合量化的预测逻辑——目标就是预测未来,不是拟合过去

🔑 最重要的一条实践含义既然特征本身已经是因子了,那"再造一堆复杂衍生特征"的收益往往有限—— 主办方的量化团队已经做过这一步了。 更有价值的方向是:时间维度的聚合、特征之间的交互、以及正确的验证策略。

⚠️ 金融赛题最大的坑:验证策略

   ❌ 随机 KFold  → 用未来预测过去 → 【严重泄漏】,CV 虚高,LB 崩

   ✅ 必须按时间切分:
      · TimeSeriesSplit / Purged K-Fold
      · 训练集和验证集之间留【空档期】(embargo) ⭐
        因为收益是"未来一段时间"算的,紧挨着的样本有重叠信息

🔗 这是《机器学习基础》第 5 章数据泄漏在金融场景的最狠版本。 金融赛题里 CV 和 LB 对不上,十次里有八次是验证切分的问题。

💡 另外两个金融特有的现实

现实 含义
信噪比极低 AUC 0.52 在金融里可能就是可用信号了。别拿图像任务的期望值来衡量
样本权重不均 赛题常给 weight 字段——权重为 0 的样本不计分,但可能仍含训练信息

📰 五、外部信息:NLP 能切进来的地方

   量化的本质是【打信息差】:
   谁能更快、更准地把信息变成信号,谁就占优

   而最大的一块未被充分数字化的信息,是【文本】
信息源 可提取的信号
公司公告 / 财报 业绩变动、重大事项、措辞的微妙变化
新闻舆情 高管变动、合作签约、负面事件
社交媒体 / 论坛 散户情绪、话题热度
研报 分析师评级变化

💡 一个历史案例:Kaggle 曾有过用新闻预测股价的比赛(Two Sigma 主办), 数据集后来被下架了。但那个思路一直是真实产业里的主流方向之一。

⚠️ 但别高估文本信号

   · 新闻【发布时】市场往往已经反应过了 → 时效性要求极高
   · 情感分析的粒度太粗("正面/负面"对交易几乎没用)
   · 需要的是【结构化的事件抽取】:谁、做了什么、影响多大

🧰 六、想自己动手玩的话

用途 工具
拿数据 Baostock、Tushare(A 股历史行情、财务数据)
回测平台 JoinQuant(聚宽)、BigQuant——支持 Python 写策略并回测
本地回测框架 Backtrader、vectorbt

建议的上手路径

   ① 用 Tushare 拉一只股票 5 年的日线数据
   ② 算两个最简单的因子:20日动量、市盈率
   ③ 做一个最笨的策略:因子排名前 20% 就买
   ④ 回测,看收益曲线
   ⑤ ⭐ 然后把手续费和滑点加上,再看一遍

🔑 第 ⑤ 步是整个练习的重点很多"回测赚翻了"的策略,加上交易成本后就变成亏损。 这是量化新手最普遍的幻觉,也是"回测和实盘差距"的主要来源之一。 🔗 精神上和《机器学习基础》第 5 章的 "离线好线上崩"完全一致——评估环境和真实环境的差异


🔀 七、和 NLP / CV 的交叉

方向 做什么
NLP 新闻/公告的事件抽取、情感与主题建模、研报观点提取
CV K 线形态识别(把价格序列画成图再用 CNN)、卫星图像判断经济活动
多模态 结构化行情 + 文本情绪 + 图表形态的联合建模

💡 对你的实际含义做金融量化竞赛,不代表你只能学时间序列。 你在 第 6 章文本分类第 7 章命名实体识别 学的东西,在这里都有用武之地。


🔗 和站里其他章节怎么对上

⭐ 下面这些不是前置要求——读过哪些就从哪些接上,没读过的顺着链接去补也来得及。

站里的这一章 在这里对应什么
ML 基础第 3 章线性模型 多因子模型就是线性回归,换了个名字
ML 基础第 5 章数据泄漏 金融赛题里最狠的版本——必须按时间切分 + embargo
数学原理第 11 章 NFL 策略必然失效:没有通用最优,且问题分布还在主动变化
第 1 章特征工程 滚动窗口聚合在这里是主力
第 14 章建模方法与策略 本章是它的业务背景

✅ 检查点

  1. 量化交易的两个核心组成是什么?
  2. 为什么说"策略必然失效"?最根本的原因是哪个?
  3. 多因子模型的公式在数学上是什么?残差 ε 代表什么?
  4. 「动量」和「反转」互相矛盾,这说明了什么?对特征工程有什么启发?
  5. 竞赛里那 130 个匿名特征最可能是什么?这对特征工程策略有什么含义?
  6. 金融赛题最大的验证坑是什么?为什么需要 embargo?
  7. 为什么金融任务的 AUC 0.52 可能就是可用信号?
  8. 自己回测时,最容易产生幻觉的一步是什么?
👀 答案
  1. 选股(挑出符合预期的标的)+ 策略(什么条件触发买卖)。
  2. 因为①市场结构在变 ②用的人多了超额收益被抹平(最根本)③规则公开后套利空间消失。所以量化没有"通用最优解",美股有效的换到 A 股可能无效。
  3. 就是线性回归:r = α + Σβ·f + ε。ε 是所有因子都解释不了的部分,也就是你要预测的"超额收益"
  4. 说明同一个特征在不同时间窗口上可能有相反的信号(短期常反转,中期常动量)。启发:给多个窗口的滚动特征(3日/7日/30日)几乎总是值得的
  5. 130 个已经算好的因子/信号。含义:主办方的量化团队已经做过特征工程了,再造复杂衍生特征收益有限——更有价值的是时间维度聚合、特征交互、和正确的验证策略。
  6. 用随机 KFold——等于用未来预测过去,严重泄漏,CV 虚高 LB 崩。需要 embargo 是因为收益标签是用"未来一段时间"算的,紧挨着的训练/验证样本含有重叠信息
  7. 因为金融数据信噪比极低——市场本来就接近有效,微弱的优势叠加上规模就是钱。别拿图像任务的期望值衡量
  8. 忘了加手续费和滑点。很多"回测赚翻了"的策略加上交易成本就变亏损——这是回测和实盘差距的主要来源,本质上和"离线好线上崩"是同一类问题。

🛑 可以停在这里

走神救援

量化 = 把投资经验翻译成程序,两件事:选股 + 策略。⭐策略必然失效(最根本原因是用的人多了超额收益被抹平)→ 所以量化没有通用最优解,这是 NFL 在金融的版本。⭐多因子模型 = 线性回归换了个名字:r = α + Σβ·f + ε,ε 就是你要预测的超额收益。因子类型:价值/规模/动量/反转/质量/波动/宏观/流动性——⚠️动量和反转矛盾是因为时间尺度不同(短期反转、中期动量),所以给多个窗口的滚动特征几乎总是值得的。竞赛解读:⭐130 个匿名特征≈130 个已算好的因子,主办方已经做过特征工程了 → 再造复杂衍生特征收益有限,该把力气花在时间聚合、特征交互和验证策略上。⚠️最大的坑是验证:随机 KFold = 用未来预测过去,必须按时间切 + 留 embargo 空档期(因为标签是用未来一段时间算的,紧邻样本信息重叠);金融信噪比极低,AUC 0.52 可能就是可用信号。NLP 能切入的是文本信息差(事件抽取比粗粒度情感分析有用)。自己回测时⭐最大的幻觉是忘了加手续费和滑点——很多"回测赚翻"的策略加上成本就亏

打卡记录保存在你的浏览器里,首页能看到总进度