← 返回预习计划
Module 06

Module 06: Machine Learning in Finance

金融时间序列、LSTM/Transformer、因子模型、回测框架与过拟合陷阱

上一模块思考题参考

Q: 机器学习模型是否有可能通过学习大量合约代码和已知漏洞,发现静态规则遗漏的新型漏洞? 可能但有限。ML 模型(如图神经网络分析控制流图)已经能检测部分已知漏洞的变体,准确率在某些类别上超过规则引擎。但局限明显:训练数据中没有的全新攻击模式难以覆盖,且模型无法理解合约的业务语义——一个在代码层面”正常”但在业务逻辑上有漏洞的合约,ML 很难识别。

Q: 能否通过分析历史攻击交易的特征,训练模型实时检测正在发生的攻击? 已有团队在做(如 Forta Network)。通过监控 mempool 和链上交易的异常模式(大额闪电贷、异常合约调用序列、突发流动性变化)可以触发警报。最大挑战是延迟——攻击往往在一个区块内完成,检测到时可能已经晚了。实际价值更多在于事后分析和预防同类攻击。

Q: NLP 模型能否帮助审计员更快地理解合约意图、标注可疑代码段? 可以作为辅助工具。LLM 能总结合约功能、标注常见反模式、生成代码注释,帮审计员快速建立对合约的整体理解。但关键判断仍依赖人类——合约的业务意图、权限设计是否合理、经济模型是否有漏洞,这些需要领域知识和推理能力。ML 缩短审计时间,但不替代审计员。

开篇:机器学习与金融的交汇

金融行业是机器学习最早也最深入的应用领域之一。从高频交易的微秒级决策,到信用风险评估的违约概率预测,再到反洗钱系统的异常行为检测——ML 渗透到了金融的几乎每个环节。

对区块链和金融科技从业者来说,理解这些方法的价值在于:DeFi 协议本质上是金融系统,链上数据分析需要时间序列建模能力,智能合约的风控需要异常检测。传统金融 ML 的方法论直接适用于 Web3 场景。

本模块覆盖:金融时间序列特性、传统与深度学习预测模型、量化策略基础、NLP 情绪分析,以及区块链特有的 ML 应用。


金融时间序列基础

金融数据与典型 ML 数据集有本质区别。几个核心特性:

非平稳性(Non-stationarity):股票价格序列的统计特性(均值、方差)随时间变化。一个在 2020 年有效的模型到 2023 年可能完全失效。用 ADF(Augmented Dickey-Fuller)检验判断序列是否平稳——p 值小于 0.05 通常拒绝”存在单位根”的零假设,即认为序列平稳。实际操作中常对价格取对数收益率(log returns)来获得近似平稳的序列。

自相关(Autocorrelation):收益率本身的自相关通常很弱(有效市场假说的体现),但收益率的平方或绝对值却表现出显著的自相关——这就是波动率聚集。

波动率聚集(Volatility Clustering):大波动倾向于跟着大波动,小波动跟着小波动。2008 年金融危机期间的高波动持续了数月。这个特性直接催生了 GARCH 族模型。

低信噪比:金融市场的信号极弱。学术研究中 Sharpe ratio 超过 2 的策略已经非常优秀,但从 ML 角度看,这意味着噪声远大于信号。过拟合是金融 ML 最大的敌人。


传统模型

ARIMA

ARIMA(AutoRegressive Integrated Moving Average)是时间序列预测的经典起点。三个参数 (p, d, q):

  • p:自回归阶数,用过去 p 个值预测当前值
  • d:差分次数,消除非平稳性(价格序列通常 d=1)
  • q:移动平均阶数,用过去 q 个预测误差修正

用 yfinance 获取数据并拟合 ARIMA 的基本流程:

import yfinance as yf
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.tsa.stattools import adfuller

# 获取数据
data = yf.download("AAPL", start="2022-01-01", end="2024-01-01")
close = data["Close"].dropna()

# ADF 检验
result = adfuller(close)
print(f"ADF Statistic: {result[0]:.4f}, p-value: {result[1]:.4f}")

# 对数收益率
log_returns = close.pct_change().dropna()

# 拟合 ARIMA(5,0,2) — 收益率序列通常不需要差分
model = ARIMA(log_returns, order=(5, 0, 2))
fitted = model.fit()
print(fitted.summary())

# 预测未来 5 天
forecast = fitted.forecast(steps=5)
print(forecast)

ARIMA 适合建立 baseline,但它假设线性关系,无法捕捉复杂的非线性模式。

GARCH

GARCH(Generalized Autoregressive Conditional Heteroscedasticity)专门建模波动率。GARCH(1,1) 是最常用的变体——用前一期的残差平方和前一期的条件方差来预测当前波动率。

核心用途:期权定价(波动率是期权价值的关键输入)、风险管理(VaR 计算)、仓位管理(高波动时减仓)。


深度学习方法

LSTM / GRU

LSTM(Long Short-Term Memory)通过门控机制解决了普通 RNN 的梯度消失问题,能捕捉较长时间窗口的依赖关系。GRU 是简化版本,参数更少,训练更快,效果通常相当。

在金融序列预测中,LSTM 的典型输入是过去 N 天的多维特征(价格、成交量、技术指标),输出是未来收益率或方向。

Transformer

Transformer 的自注意力机制天然适合处理序列数据,且支持并行计算。金融领域的变体包括 Temporal Fusion Transformer(TFT)和 Informer,后者专门针对长序列预测优化了注意力机制的计算复杂度。

模型对比

维度ARIMALSTMTransformer
复杂度
数据需求少(百级样本可用)多(千级以上)很多(万级以上)
可解释性高(参数有统计含义)低(黑盒)低(黑盒)
非线性捕捉
多变量支持原生支持原生支持
训练成本秒级分钟级小时级
过拟合风险很高

实际应用中的经验:更复杂的模型不一定表现更好。金融数据的低信噪比意味着简单模型的泛化能力可能反而更强。先用 ARIMA 建立 baseline,再看深度学习能否显著超越。


因子模型与量化策略

因子投资

因子(factor)是驱动资产收益的系统性特征。经典因子:

  • 动量(Momentum):过去 12 个月涨幅大的股票未来倾向继续涨(Jegadeesh & Titman, 1993)
  • 价值(Value):低市盈率、低市净率的股票长期跑赢(Fama-French 三因子模型)
  • 质量(Quality):高 ROE、低负债率、稳定盈利的公司有超额收益
  • 低波动(Low Volatility):低波动股票的风险调整后收益反而更高

Alpha 与 Beta

Beta 是市场风险敞口——大盘涨 1%,Beta 为 1.2 的股票平均涨 1.2%。Alpha 是扣除 Beta 之后的超额收益,是量化策略追求的目标。

回测与过拟合

回测(backtesting)用历史数据验证策略。但这里有严重的陷阱:

  • 前视偏差(Look-ahead bias):使用了回测时点尚不可知的信息
  • 幸存者偏差(Survivorship bias):只用现存股票回测,忽略了已退市的
  • 过拟合:在历史数据上调参调到完美,但策略本质上在拟合噪声。López de Prado 提出 deflated Sharpe ratio 来校正多次回测带来的统计偏差

经验法则:如果一个策略需要 20 个以上的参数才能盈利,大概率是过拟合。


NLP 与情绪分析

金融文本蕴含市场情绪信号。新闻标题、财报电话会议记录、社交媒体帖子——这些非结构化数据可以转化为交易信号。

FinBERT

FinBERT 是 BERT 在金融文本上的微调版本,能将文本分类为 positive / negative / neutral。相比通用情感分析模型,它理解金融语境——“the stock dropped” 是 negative,但 “interest rates dropped” 对某些资产可能是 positive。

情绪信号的使用方式:

  • 作为多因子模型中的一个因子
  • 新闻情绪的突变作为事件驱动策略的触发器
  • 社交媒体情绪的极端值作为反向指标(散户极度乐观时往往是顶部)

注意事项:情绪信号的衰减很快,通常在消息发布后几小时内就被市场消化。高频使用要求低延迟的 NLP pipeline。


区块链特有的 ML 应用

区块链的链上数据是公开、可追溯、结构化的,天然适合 ML 分析。

链上数据分析:钱包行为聚类(识别巨鲸地址)、资金流向追踪、地址标签推断。链上数据的优势是完全透明,不存在传统金融中的信息不对称。

异常检测与反欺诈:识别 rug pull 模式(流动性突然撤出)、闪电贷攻击特征、Wash trading 检测。常用方法包括 Isolation Forest、Autoencoder 重建误差、图神经网络(GNN)分析交易图谱。

DeFi 收益预测:预测流动性池的 APY 变化、借贷协议的利率走势。特征包括 TVL 变化率、交易量、代币价格波动率等。

MEV 预测:Maximal Extractable Value(最大可提取价值)是区块链特有的概念。预测 mempool 中的套利机会、清算事件,ML 模型可以帮助搜索者(searcher)优化出价策略。这个领域竞争极其激烈,延迟以毫秒计。


推荐资源

资源类型说明
Andrew Ng - Machine Learning Specialization课程ML 基础,Coursera 免费旁听
Advances in Financial Machine Learning (López de Prado)金融 ML 的圣经,覆盖回测陷阱、特征工程、元标签
QuantConnect平台免费量化回测平台,支持 Python/C#,有丰富的数据集
yfinancePython 库免费获取雅虎财经数据,简单易用
Kaggle Financial Datasets数据集Jane Street、Two Sigma 等公司提供的竞赛数据
Machine Learning for Asset Managers (López de Prado)较短,聚焦投资组合构建中的 ML 方法
Hugging Face FinBERT模型预训练金融情感分析模型,可直接调用

思考题

  1. 链上数据完全公开透明,传统金融中的信息不对称在 DeFi 中是否还存在?如果所有人都能获取相同数据,Alpha 从何而来?
  2. 金融 ML 模型的过拟合问题在链上数据分析中是否更严重?链上数据的特殊性质(24/7 交易、高波动、协议升级导致的结构性变化)对模型设计提出了什么独特要求?
  3. 随着 AI Agent 能自主执行链上交易,DeFi 市场的参与者结构会如何变化?当大多数交易由 AI 发起时,市场效率和 MEV 格局会怎样演进?

下一步

这是预习指南的最后一个模块。六个模块覆盖了从密码学、智能合约到金融 ML 的完整知识链条。

建议的收尾动作:

  1. 回到课程总览页,确认每个模块的核心概念都理解到位
  2. 完成各模块中的练习题和代码实践
  3. 对薄弱环节重点复习——课程开始后这些基础知识会被默认已掌握

金融 ML 是一个实践性极强的领域。理论理解只是起点,真正的学习发生在处理真实数据、踩过拟合的坑、经历策略在实盘中失效的过程中。