📑 本页目录(点开跳转)
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 的收益 = 它对每个因子的"敏感度"× 那个因子当期的表现,再加上解释不了的部分。
- $f_k$:第 k 个因子(比如"市值因子""动量因子")
- $\beta_{ik}$:这只股票对该因子的暴露程度
- $\epsilon_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 章建模方法与策略 | 本章是它的业务背景 |
✅ 检查点
- 量化交易的两个核心组成是什么?
- 为什么说"策略必然失效"?最根本的原因是哪个?
- 多因子模型的公式在数学上是什么?残差 ε 代表什么?
- 「动量」和「反转」互相矛盾,这说明了什么?对特征工程有什么启发?
- 竞赛里那 130 个匿名特征最可能是什么?这对特征工程策略有什么含义?
- 金融赛题最大的验证坑是什么?为什么需要 embargo?
- 为什么金融任务的 AUC 0.52 可能就是可用信号?
- 自己回测时,最容易产生幻觉的一步是什么?
👀 答案
- 选股(挑出符合预期的标的)+ 策略(什么条件触发买卖)。
- 因为①市场结构在变 ②用的人多了超额收益被抹平(最根本)③规则公开后套利空间消失。所以量化没有"通用最优解",美股有效的换到 A 股可能无效。
- 就是线性回归:r = α + Σβ·f + ε。ε 是所有因子都解释不了的部分,也就是你要预测的"超额收益"。
- 说明同一个特征在不同时间窗口上可能有相反的信号(短期常反转,中期常动量)。启发:给多个窗口的滚动特征(3日/7日/30日)几乎总是值得的。
- 130 个已经算好的因子/信号。含义:主办方的量化团队已经做过特征工程了,再造复杂衍生特征收益有限——更有价值的是时间维度聚合、特征交互、和正确的验证策略。
- 用随机 KFold——等于用未来预测过去,严重泄漏,CV 虚高 LB 崩。需要 embargo 是因为收益标签是用"未来一段时间"算的,紧挨着的训练/验证样本含有重叠信息。
- 因为金融数据信噪比极低——市场本来就接近有效,微弱的优势叠加上规模就是钱。别拿图像任务的期望值衡量。
- 忘了加手续费和滑点。很多"回测赚翻了"的策略加上交易成本就变亏损——这是回测和实盘差距的主要来源,本质上和"离线好线上崩"是同一类问题。
🛑 可以停在这里
⚡ 走神救援
量化 = 把投资经验翻译成程序,两件事:选股 + 策略。⭐策略必然失效(最根本原因是用的人多了超额收益被抹平)→ 所以量化没有通用最优解,这是 NFL 在金融的版本。⭐多因子模型 = 线性回归换了个名字:r = α + Σβ·f + ε,ε 就是你要预测的超额收益。因子类型:价值/规模/动量/反转/质量/波动/宏观/流动性——⚠️动量和反转矛盾是因为时间尺度不同(短期反转、中期动量),所以给多个窗口的滚动特征几乎总是值得的。竞赛解读:⭐130 个匿名特征≈130 个已算好的因子,主办方已经做过特征工程了 → 再造复杂衍生特征收益有限,该把力气花在时间聚合、特征交互和验证策略上。⚠️最大的坑是验证:随机 KFold = 用未来预测过去,必须按时间切 + 留 embargo 空档期(因为标签是用未来一段时间算的,紧邻样本信息重叠);金融信噪比极低,AUC 0.52 可能就是可用信号。NLP 能切入的是文本信息差(事件抽取比粗粒度情感分析有用)。自己回测时⭐最大的幻觉是忘了加手续费和滑点——很多"回测赚翻"的策略加上成本就亏。