halo 的技术博客

返回

十年前,量化研究员的核心工具是 Excel 和 MATLAB;五年前是 Python 的 pandas 和 sklearn;今天,机器学习已经深入量化交易的每个环节——从 alpha 挖掘、组合优化、到风险管理,ML 不是在“辅助”量化,而是在重新定义它的边界。这篇文章梳理一下 ML 在量化领域落地的真实图景,以及作为从业者你需要掌握的技能栈。

从因子挖掘说起:ML 改变了什么#

传统量化靠手工因子:研究员根据经济学直觉或市场经验,设计出 PE、PB、动量、波动率这类因子,跑回归验证有效性。这条路已经被研究得很透了,easy alpha 越来越难找。

ML 介入后,核心变化是从“人工设计特征”转向“机器学习特征”。最典型的应用是遗传编程(GP)和强化学习(RL)做因子自动生成:让算法在大规模候选空间里搜索有效组合,不依赖人的先验假设。这条路在一些新兴市场(如商品期货、加密货币)上效果尤其显著。

另一条路是深度学习特征提取:用 CNN 处理价格图表的时序模式,用 Transformer 建模多因子之间的交叉影响,甚至用图神经网络(GNN)刻画股票之间的产业链关系。这类方法在高频数据和另类数据(卫星图像、供应链数据)上有独特优势。

机器学习在量化因子挖掘中的应用

组合优化:ML 找到了比均值方差更好的解#

传统现代投资组合理论(MPT)的核心是均值-方差优化,但实践中存在几个致命缺陷:参数敏感(输入的预期收益微调会导致权重剧变)、不考虑交易成本、对估计误差极度脆弱。

ML 在这里做了几件事。第一,用鲁棒优化(Robust Optimization)和贝叶斯方法给参数不确定性建模,不把估计值当真值用。第二,用强化学习直接学习最优仓位分配,把交易成本和流动性约束内嵌进 reward function。第三,用模仿学习从有经验的投资经理的历史操作中提炼决策模式。

这些方法在实盘中未必完胜传统组合优化,但它们的风险控制边界更清晰——这是机构资金最看重的。

智能风控:实时、动态、多维度#

风控是量化策略的生命线。传统风控模型依赖静态阈值(如单一 VaR、历史波动率),对黑天鹅事件反应迟钝。ML 时代,风控正在变得实时化、动态化、端到端

一个前沿方向是用变分自编码器(VAE)隔离森林做异常检测:模型学习正常市场状态,一旦某个组合的重建误差突然放大,立刻触发风控警报。这比传统统计检验对新型风险的敏感度更高。

另一个方向是多维度风险建模:把市场风险、信用风险、流动性风险、操作风险用一个统一的 ML 模型整合,而不是各自独立建模。这样能捕捉到不同风险之间的尾部相关性——这是传统方法最难处理的。

量化风控系统架构图

技术栈:从 Python 到 GPU#

如果你想进入这个领域,技术栈是绕不开的话题。基础层:Python 是必须的,numpy、pandas、polars 是数据处理标配,sklearn、statsmodels 是统计建模基座。进阶层:深度学习用 PyTorch 或 JAX(机构里 JAX 越来越常见,因为它的 autodiff 更快);时序建模用 darts、 gluonTS 或直接上 Transformer。工程层:回测引擎是核心工具,backtrader、zipline、vectorbt 各有优劣,大机构一般自建;因子库有 WorldQuant Alpha/101 等公开基准。

最后,数据是量化 ML 的燃料:价格数据、另类数据(消费数据、航运数据、社交情绪)都需要干净的 pipeline。数据质量往往比模型花哨程度更重要。

写给想入行的你#

ML 在量化领域的现状是:工具越来越强大,但 alpha 越来越稀缺。原因很简单——信息流通速度越来越快,市场的有效性在提升。任何你能想到的简单规律,很快就会被套利掉。

所以真正的护城河不是某个模型架构,而是数据获取能力、特征工程深度、以及对市场微观结构的理解。ML 是杠杆,放大的是你已有的认知优势,而不是无中生有创造优势。

对于在校生或想转行的工程师,我的建议是:先掌握扎实的统计基础和 Python 工程能力,再逐步接触 ML 模型;期间多读经典研报(Citadel、Two Sigma、国内幻方、明汯的公开材料),理解真实市场的运行逻辑。技术可以速成,市场sense 需要时间沉淀。

这条路不简单,但确实值得——因为在这个行业里,正确认知的复利效应比任何模型都强大。

机器学习正在重塑量化交易:从因子挖掘到智能风控
https://blog.halo26812.eu.org/blog/machine-learning-in-quantitative-trading
Author halo
Published at 2026年8月1日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨