halo 的技术博客

返回

很多人问我:“想做量化,该学什么?”

这是个好问题,但答案取决于你想走哪条路。量化领域其实有三条泾渭分明又紧密协作的职业线:量化研究员量化交易员量化开发者(金融工程师)

今天专门讲金融工程师(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 是你和研究员、交易员沟通的语言

如果你现在是程序员想转金融工程师,最快路径是:

  1. 学好 C++(不是”会写”是”能写出生产级代码”)
  2. 读 Hull《期权、期货及其他衍生产品》+ Shreve《金融随机分析》
  3. 用 Python 实现一个事件驱动的回测引擎(自建,不用框架)
  4. 拿真实市场数据跑通,发现回测中所有”早知道”的坑

这条路不短,但走通了,你就从”会用工具的人”变成了”造工具的人”。

金融工程师技能全栈图:从定价模型到生产系统的技术路线
https://blog.halo26812.eu.org/blog/financial-engineer-skills
Author halo
Published at 2026年7月19日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨