很多人问我:“想做量化,该学什么?”
这是个好问题,但答案取决于你想走哪条路。量化领域其实有三条泾渭分明又紧密协作的职业线:量化研究员、量化交易员和量化开发者(金融工程师)。
今天专门讲金融工程师(Quant Developer / Financial Engineer)——这个岗位在招聘市场上薪资最高、需求最稳定,但也是最被外界误解的。

金融工程师到底做什么?#
一个金融工程师不是写回测框架的,也不是跑策略的。金融工程师的核心工作是:把数学模型变成可运行的、低延迟的、生产级别的交易系统。
-
量化研究员说:“我用随机波动率模型给期权定价”
-
金融工程师说:“这个模型需要实时计算希腊字母,延迟不能超过 5 微秒,我来写 CUDA kernel”
-
量化研究员说:“这个因子需要每天更新一次”
-
金融工程师说:“好,我把数据管道改成增量更新,从 T+1 缩减到 T+0.5,再加数据质量自动校验”
-
量化研究员说:“我的回测策略年化 30%”
-
金融工程师说:“你的回测用了未来数据,这是我把数据对齐修正后的真实业绩——年化 15%,最大回撤 35%”
看出区别了吗?金融工程师在数学和软件之间建桥。
技能 1:编程——不只是会写 Python#
是的,Python 是必备。但你还需要更多。
Python(研究+原型层)#
- NumPy / Pandas / SciPy:数据处理、矩阵运算
- Statsmodels / scikit-learn:统计推断和机器学习
- 异步编程(asyncio):处理实时行情推送
- Cython / Numba:给关键路径加速
C++(生产层)#
高频交易和期权做市商的核心交易引擎几乎全是 C++。这不是”可选项”——是 Quant Dev 的核心竞争力。
- 模板元编程、智能指针、RAII
- 多线程和锁无关数据结构
- SIMD 指令集优化
- 低延迟网络编程(kernel bypass, DPDK)
其他语言#
- Rust:越来越流行,内存安全 + 无 GC + C 级性能。Jump Trading 和 Citadel 都在用
- Julia:学术界在推,速度接近 C、语法像 Python。适合数值计算密集的原型
- SQL:别小看——金融数据几乎都在关系数据库里,复杂的 JOIN 和窗口函数是日常
技能 2:数学与统计——知道模型”为什么不成立”#
金融工程师不需要像研究员那样发明新定价模型,但必须深刻理解现有模型——不是”会用公式”,而是”知道公式的假设,知道什么时候假设不成立”。
必备基础#
- 随机微积分:伊藤引理、测度变换——这是衍生品定价的地基
- 时间序列分析:ARIMA、GARCH 族、协整——策略开发的基础语言
- 线性代数:矩阵分解(SVD、Cholesky、特征值)、稀疏求解——协方差估计、风险管理的计算核心
- 优化理论:凸优化、拉格朗日对偶、随机梯度下降——组合优化和模型训练的骨架
关键的”第二层知识”#
光会做 MLE(最大似然估计)是基础。金融工程师必须理解:
- 估计误差 vs 模型误差:样本协方差矩阵在 N/T 接近 1 时会严重失真,需要用 shrinkage 或 random matrix theory 去噪
- 数值稳定性:矩阵求逆在条件数很大时结果完全不可靠。为什么用 Cholesky 分解而不是直接 numpy.linalg.inv()?因为你遇到的通常是正定矩阵
- 蒙特卡洛的收敛性:不是跑 100 万次就”准”了。方差缩减技术(对偶变量、控制变量、重要性抽样)才能把计算时间砍一半
技能 3:系统设计——代码要能跑在生产环境#
这是最被业界低估的技能,也是区分”好的金融工程师”和”能做研究的金融工程师”的分水岭。
数据管道#
一个实盘策略需要处理:
- 实时行情(Tick 级,每天几十 GB)
- 历史行情(PB 级,需要 OLAP 引擎)
- 基本面/另类数据(非结构化,需要 ETL 管道)
- 公司行为(送股、拆股、派息——数据需要实时调整)
你必须设计端到端的数据管道:从数据源到清洗到存储到消费,每一层都有延迟和可靠性的 trade-off。
回测引擎#
市面上的开源回测框架(如 Backtrader、Zipline)对零售场景够用,对机构量化不够——它们不处理高频数据的事件驱动仿真、不精确模拟订单簿、不模拟市场冲击。
金融工程师通常需要自建回测引擎,至少需要:
- Event-driven 架构(行情事件 → 信号计算 → 订单生成 → 成交模拟)
- 支持多资产、多周期、多策略并行回测
- 准确的交易成本模型(佣金+印花税+滑点+市场冲击)
风险控制系统#
生产系统中的风险控制不是”事后看一下 VaR”,而是事前 + 实时:
- 事前:下单前检查仓位上限、杠杆上限、集中度上限、净敞口上限
- 实时:每秒计算 Delta/Gamma/Vega 敞口,希腊字母超限立即报警/平仓
- 事后:日终做 P&L 归因、TCA(交易成本分析)

技能 4:金融知识——不是”知道就行”,是”能翻译成代码”#
金融工程师不需要会做自营交易决策,但必须把交易员的语言翻译成代码:
| 交易员说的 | 金融工程师理解 |
|---|---|
| ”这个期权太贵了” | 隐含波动率 > 已实现波动率,有做空 gamma 的机会 |
| ”市场流动性不好” | 订单簿深度不足,市价单会产生显著滑点 |
| ”帮我调大风险预算” | 修改组合优化中的波动率上限约束,从 15% 升到 20% |
| “跨期套利” | 远月合约与近月合约的價差偏离统计区间,用协整或卡尔曼滤波计算对冲比率 |
| ”希腊字母中性” | Delta/Gamma/Vega 敞口归零,需要解一组联立方程来找对冲比例 |
这种”翻译能力”是金融工程师的核心价值。你不需要发明新的交易想法,但你必须理解每一个交易想法背后的数学模型和实现成本。
技能 5:DevOps 和基础设施#
现代量化团队不再手动部署策略。一套完整的 CI/CD 管道必须覆盖:
- 代码审查:每个策略上线前必须经过至少 2 位开发者的 review
- 自动化测试:单元测试(每个组件)+ 集成测试(端到端)+ 回归测试(改代码后回测结果不能变)
- 灰度发布:新策略先在 1% 的资金上跑一周,没问题再逐步增加
- 监控告警:P&L 异常、延迟飙升、数据断流——这些都是秒级告警
- 灾备切换:主数据中心故障时,备用数据中心 30 秒内接管
总结#
金融工程师的技能栈是一个”T 字型”结构:
- 纵向深度:C++和系统设计是你的”尖刀”——这是你和普通程序员的本质区别
- 横向广度:数学、金融、DevOps 是你和研究员、交易员沟通的语言
如果你现在是程序员想转金融工程师,最快路径是:
- 学好 C++(不是”会写”是”能写出生产级代码”)
- 读 Hull《期权、期货及其他衍生产品》+ Shreve《金融随机分析》
- 用 Python 实现一个事件驱动的回测引擎(自建,不用框架)
- 拿真实市场数据跑通,发现回测中所有”早知道”的坑
这条路不短,但走通了,你就从”会用工具的人”变成了”造工具的人”。