
在 2025 年,顶级机构的入门级量化总包能拿到 $300K-$500K。
金融行业对 AI/ML 的招聘同比增长了 88%。
这篇文章就是我刚走上这条路时,最希望有人直接递给我的东西——并且把路径按你应该学习的确切顺序铺好了。
这条路径就像电子游戏的层层关卡,你不能跳关。
每一个概念都建立在上一个之上。但前提是你得投入真正的努力:不是去看那些关于金融的无聊 YouTube 视频——那只是在浪费时间——而是做真实的、需要动脑的解题训练。这样,你大概可以在 18 个月内从一无所知变得有模有样。
免责声明: 非投资建议 & 请自行研究 & 市场有风险。 我的项目 - @coldvisionXYZ
忘掉你以为自己懂的交易
大多数人以为量化交易就是选股:对特斯拉有观点、预测财报、押对方向。
量化交易关乎数学。
你大部分时间处理的是统计关系、定价低效,以及结构性优势——这些优势之所以存在,是因为市场是由人运行的复杂系统,而人会犯系统性的错误。
Part I: 概率是不确定性的语言
量化金融里的一切,某种程度上都可以归结为一个问题:
胜率是多少?而且这个胜率是否对我有利?
这就是概率。如果你对概率没有深刻理解,这篇文章里其他内容都不重要。
条件式思维
大多数人按“绝对”方式思考:要么真,要么假。
量化按“条件”方式思考:在我已知信息的前提下,它有多大概率成立?
A 在给定 B 的条件下发生的概率,等于 A 和 B 同时发生的概率除以 B 发生的概率。其影响非常深远。
某只股票在 60% 的交易日上涨——这就是基准概率(base rate)。但在成交量高于平均的日子里,它有 75% 的时间上涨。
这个条件概率才是“不是瞎扯”的(NOT BS)。而那裸的 60% 是“噪声很大的瞎扯”(NOISY BS)。
贝叶斯定理
你更新后的信念等于
(如果你的假设为真,你看到这组数据的可能性) * (你的先验信念) /(在任何假设下看到这组数据的总概率)。
分母会对所有假设求和。
在实践中,你会用 Monte Carlo 采样来计算它。
但逻辑完全一样。贝叶斯就是你如何实时更新自己的确信程度。
某个模型说一只股票应该值 $50。财报出来,营收比预期高 3%。贝叶斯后验就会向上移动。更新得最快、最准确的交易员才能把钱赚到手。
期望值与方差:你最好的两位朋友
期望值代表你的“胜算/确定性”。
方差代表你的风险。
如果你的策略期望值为正,而且你能扛住方差(不被波动打爆),你大概率会赚钱。
Level 1 作业(3-4 周,每天 2 小时): 1. 阅读 Blitzstein & Hwang, Introduction to Probability(哈佛提供免费 PDF)。做完第 1-6 章的每一道题。 2. 编程 模拟 10,000 次抛硬币,用可视化方式验证大数定律。 3. 编程 2 实现一个贝叶斯更新器:输入先验和似然,输出后验。
Part II: 统计学
当你会说概率这门语言后,你还得学会听数据说话。
这就是统计学,而统计学教给你的头号教训是:“看起来像 NOT BS 的,大多数其实是 NOISY BS。”
假设检验就是你的“瞎扯探测器”。
你做了一个模型,回测年化 15%。这是真的吗?
设定 H_0: “这个策略的期望收益为 0。”
计算一个检验统计量。
计算 p-value——在 H_0 为真的情况下,得到这么好结果的概率。
但如果你随机测试 1,000 个策略,其中大约 50 个会纯靠运气出现 p-value 低于 0.05。
这就是多重比较问题。
你的修复方式是 Bonferroni 校正:用显著性阈值除以测试次数。
或者用 Benjamini-Hochberg 来控制错误发现率(false discovery rate)。
几乎每一个新手都会严重高估自己找到了多少 NOT BS。你的前 10 个策略都会是 NOISY BS。现在就接受这一点,你能省下很多钱。
用回归分解收益
线性回归 y=Xβ+ϵ 是最核心的主力工具。
在金融里,你会把策略收益对已知风险因子做回归:
截距 α 就是你的 alpha 也就是无法被已知因子解释的收益。如果在控制因子后 α 为 0,那么你的“优势”只是伪装过的市场暴露。
OLS 估计量:
最重要的数字是 α。
使用 Newey-West 标准误:金融数据存在自相关与异方差,所以默认的 OLS 标准误是错的。用它就像开车时挡风玻璃裂了还硬开。
极大似然估计(MLE)
给定来自参数为 θ 的模型的数据 x_1,…,x_n,:
令导数为 0 并求解。(不然就没戏了 gng)
在金融里,你用 MLE 来校准几乎所有模型:给波动率拟合 GARCH、估计跳跃扩散参数、把期权定价模型校准到市场报价。
它在渐近意义下是有效的:对于大样本,没有任何一致估计量能拥有更低的方差(Cramér-Rao 下界)。
当公司里有人说自己在“校准(calibrating)”模型时,他们几乎总是指 MLE。
Level 2 作业(4-5 周): 1. 阅读 Wasserman, All of Statistics,第 1-13 章。 2. 编程 用 yfinance 下载真实股票收益率。检验正态性(会失败)。用 MLE 拟合 t 分布并比较。 3. 编程 用 statsmodels 对一个股票组合做 Fama-French 三因子回归。 4. 编程 实现一个置换检验:把日期打乱 10,000 次,把打乱后的表现与真实表现比较。
import numpy as np
import cvxpy as cp
# ============================================
# Markowitz optimization with cvxpy
# ============================================
np.random.seed(42)
n_assets = 10
mu = np.random.uniform(0.04, 0.15, n_assets)
A = np.random.randn(n_assets, n_assets) * 0.1
cov = A @ A.T + np.eye(n_assets) * 0.01
w = cp.Variable(n_assets)
objective = cp.Minimize(cp.quad_form(w, cov))
constraints = [
mu @ w >= 0.08, # minimum return
cp.sum(w) == 1, # fully invested
w >= -0.1, # max 10% short
w <= 0.3 # max 30% long
]
prob = cp.Problem(objective, constraints)
prob.solve()
ret = mu @ w.value
vol = np.sqrt(w.value @ cov @ w.value)
sharpe = (ret - 0.03) / vol
print(f"Portfolio return: {ret:.4f}")
print(f"Portfolio vol: {vol:.4f}")
print(f"Sharpe ratio: {sharpe:.4f}")
print(f"Weights: {np.round(w.value, 4)}")
Part III: 线性代数
线性代数听起来很无聊。但它是驱动一切的机器:组合构建、PCA、神经网络、协方差估计、因子模型。你不可能在不熟练矩阵的情况下成为量化。
import numpy as np
from scipy.stats import norm
def black_scholes(S, K, T, r, sigma, option_type='call'):
d1 = (np.log(S/K) + (r + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
if option_type == 'call':
return S*norm.cdf(d1) - K*np.exp(-r*T)*norm.cdf(d2)
else:
return K*np.exp(-r*T)*norm.cdf(-d2) - S*norm.cdf(-d1)
def monte_carlo_option(S0, K, T, r, sigma, n_sims=500_000):
"""Price via risk-neutral simulation (drift = r, not mu)"""
Z = np.random.standard_normal(n_sims)
ST = S0 * np.exp((r - sigma**2/2)*T + sigma*np.sqrt(T)*Z)
payoffs = np.maximum(ST - K, 0)
price = np.exp(-r*T) * np.mean(payoffs)
stderr = np.exp(-r*T) * np.std(payoffs) / np.sqrt(n_sims)
return price, stderr
def greeks(S, K, T, r, sigma):
d1 = (np.log(S/K) + (r + sigma**2/2)*T) / (sigma*np.sqrt(T))
d2 = d1 - sigma*np.sqrt(T)
return {
'delta': norm.cdf(d1),
'gamma': norm.pdf(d1) / (S * sigma * np.sqrt(T)),
'theta': -(S*norm.pdf(d1)*sigma)/(2*np.sqrt(T)) - r*K*np.exp(-r*T)*norm.cdf(d2),
'vega': S * np.sqrt(T) * norm.pdf(d1),
'rho': K * T * np.exp(-r*T) * norm.cdf(d2),
}
# Verify: Monte Carlo converges to Black-Scholes
S, K, T, r, sigma = 100, 105, 1.0, 0.05, 0.2
bs = black_scholes(S, K, T, r, sigma)
mc, err = monte_carlo_option(S, K, T, r, sigma)
g = greeks(S, K, T, r, sigma)
print(f"Black-Scholes: ${bs:.4f}")
print(f"Monte Carlo: ${mc:.4f} ± {err:.4f}")
print(f"Difference: ${abs(bs - mc):.4f}\n")
for name, val in g.items():
print(f" {name:>6}: {val:.6f}")
用矩阵思考
协方差矩阵 Σ 描述了每个资产相对于其他资产的联动方式。对 500 只股票而言,Σ 是一个 500×500 的矩阵,包含 125,250 个不重复的条目。组合方差会收敛为一个单一表达式
这个二次型是 Markowitz 组合理论、风险管理以及一切的核心。
在股票宇宙里,真正重要的是特征值/特征向量
看一个 500 只股票的宇宙,前 5 个特征向量就能解释 70% 的整体方差。剩下的全是 NOISY BS。
第一次用特征分解时,你会觉得整个世界都变了。看一个 500 只股票的宇宙,前 5 个特征向量就能解释 70% 的整体方差。这就是降维,也是因子投资的基础。
Level 3 作业(4-6 周): 1. 观看 Gilbert Strang 的 MIT 18.06 线性代数课程:全部看完。没有商量余地。 2. 阅读 Strang, Introduction to Linear Algebra。做题。 3. 编程 对标普 500 收益率做 PCA 分解。画出特征值谱。识别前三个主成分。 4. 编程 从零实现 Markowitz 均值-方差优化。
import numpy as np
import matplotlib.pyplot as plt
# Law of large numbers: running average converges to true probability
np.random.seed(42)
flips = np.random.choice([0, 1], size=10000, p=[0.5, 0.5])
running_avg = np.cumsum(flips) / np.arange(1, 10001)
plt.figure(figsize=(10, 4))
plt.plot(running_avg, linewidth=0.7)
plt.axhline(y=0.5, color='r', linestyle='--', label='True probability')
plt.xlabel('Number of flips')
plt.ylabel('Running average')
plt.title('Law of Large Numbers in Action')
plt.legend()
plt.savefig('lln.png', dpi=150)
print(f"After 10,000 flips: {running_avg[-1]:.4f} (true: 0.5000)")
Part IV: 微积分与优化
微积分是变化的语言。在金融里,一切都在变:价格、波动率、相关性,整张概率分布都在每一秒重新塑形。微积分描述并利用这些变化。
导数(数学意义上的):出现在每一个神经网络的反向传播里,也出现在每一次 Greeks 计算里。
泰勒展开:
import numpy as np
from scipy import optimize, stats
# Demonstrate fat tails: MLE fit of Student-t to return data
np.random.seed(42)
# Simulate "realistic" returns (fat tails, slight positive drift)
true_df = 4
returns = stats.t.rvs(df=true_df, loc=0.0005, scale=0.015, size=1000)
def neg_log_likelihood(params, data):
df, loc, scale = params
if df <= 2 or scale <= 0:
return 1e10
return -np.sum(stats.t.logpdf(data, df=df, loc=loc, scale=scale))
result = optimize.minimize(
neg_log_likelihood, x0=[5, 0, 0.01], args=(returns,),
method='Nelder-Mead'
)
fitted_df, fitted_loc, fitted_scale = result.x
print(f"MLE degrees of freedom: {fitted_df:.2f} (true: {true_df})")
print(f"MLE location: {fitted_loc:.6f}")
print(f"MLE scale: {fitted_scale:.6f}")
# Normality test
_, p_normal = stats.normaltest(returns)
print(f"\nNormality test p-value: {p_normal:.2e}")
print(f"Reject normality? {'YES fat tails confirmed' if p_normal < 0.05 else 'NO'}")
Delta 对冲是一阶近似。
Gamma 对冲加入二阶修正。
而伊藤微积分之所以不同于普通微积分,恰恰是因为对随机过程来说,二阶泰勒项并不会消失。就 记住这一点
Level 4 作业(4-5 周): 1. 阅读 Boyd & Vandenberghe, Convex Optimization(斯坦福提供免费 PDF),第 1-5 章。 2. 编程 从零实现梯度下降。最小化 Rosenbrock 函数。 3. 编程 用 cvxpy 解一个带交易成本约束的组合优化问题。
Part V: 随机微积分
在学随机微积分之前,你只是个喜欢金融的数据科学家。
学完之后,你就是量化。你听到了吗?QUANTATIVE FINANCE EXPERT。
你会在这里学会:如何在连续时间里建模随机性、如何从第一性原理推导 Black-Scholes 方程、以及为什么万亿美元级别的衍生品市场会以那样的方式运作。
布朗运动:纯随机,被形式化
布朗运动(维纳过程)W_t 是一个连续时间随机游走:
-
W_0 = 0
-
增量 W_t - W_s ~ N(0, t - s) for t > s
-
不重叠的增量相互独立
-
路径连续,但处处不可导
一个所有后续内容都依赖的关键洞见:dW_t 的“量级”是 dt,这意味着 (dW_t)^2 = dt。听起来像技术细节,但它是量化金融里最重要的单一事实。
几何布朗运动(GBM)用于建模股票价格:
伊藤引理
在普通微积分里,df = f'(x)dx。你做泰勒展开,然后 (dx)^2 项是无穷小的高阶项,于是你把它扔掉。
但当 x 是随机过程时,(dW_t)^2 = dt 是一阶项。你不能扔。
伊藤引理:
把它应用到期权价格上,你就能得到 Black-Scholes。这条公式就是整个衍生品行业的发动机。
从零推导 Black-Scholes
拿起纸笔跟着推。
Step 1: 令 V(S,t) 为期权价格。应用伊藤引理:
Step 2: 构造一个 delta 对冲组合 Π=V−∂S/∂V⋅S。计算 dΠ:
dW_t 项会被完美抵消。该组合在局部是无风险的。
Step 3: 无风险组合必须赚取无风险利率: dΠ=rΠ dtd\Pi = r\Pi \, dt dΠ=rΠdt.
Step 4: 代入并整理:
这就是 Black-Scholes PDE。
注意发生了什么——漂移项 μ 消失了。期权价格不依赖股票的期望收益。风险偏好不重要。你可以像所有人都是风险中性那样为期权定价。第一次真正理解这一点,会让人直呼离谱。
解这个 PDE(执行价 K、到期 T 的欧式看涨)得到:
The Greeks
-
Delta Δ 是股票每变动 $1,期权变动多少。你的对冲比率。
-
Gamma Γ:delta 变化的速度。你的凸性敞口。
-
Theta Θ:时间价值衰减。对做多期权通常为负。
-
Vega V:对波动率的敏感度。衍生品赚钱的大头往往在这里。
-
Rho ρ:对利率的敏感度。
Delta 告诉你对冲比率。Gamma 告诉你多久需要重新对冲。Theta 是持有成本。Vega 是波动率交易台的饭碗。
Level 5 作业(6-8 周——最难的一关): 1. 阅读 Shreve, Stochastic Calculus for Finance II。金标准。 2. 备选 Arguin, A First Course in Stochastic Calculus(更新、更易读)。 3. 推导 对 f(S)=ln(S) 应用伊藤引理,其中 S 服从 GBM。推到 −σ^2/2。 4. 推导 用 delta 对冲论证推导完整 Black-Scholes 方程。 5. 编程 从零实现 Black-Scholes。与 Monte Carlo 比较。验证收敛性。
Polymarket
这是当下世界上最有意思的市场,而它背后的数学把本文所有东西都串起来了:概率、信息论、凸优化、整数规划。
LMSR 如何为信念定价
对数市场评分规则(LMSR)由 Robin Hanson 发明,为自动化预测市场提供动力。对 n 个结果,其成本函数是:
其中 q_i 追踪结果 i 的未平仓份额,b 是流动性参数。结果 i 的价格为:
这就是 softmax 函数——驱动每一个神经网络分类器的函数。
价格总和永远为 1,永远落在 (0,1) 内,并且永远存在,提供无限流动性。做市商的最大亏损上界为 b * ln(n)
量化职业版图
4 种原型: 量化研究员(Quant Researcher) 最顶的那类人:在 PB 级数据里找模式、建预测模型、设计算法策略。需要博士级的数学/统计/ML,或极其突出的本科能力。在 Jane Street 这类公司,QR 会用上成千上万块 GPU。
量化开发/工程师(Quant Developer/Engineer) 中间那档的强者,主要是“建造者”:交易平台、执行引擎、实时数据管道。把研究员的模型变成真正能交易的系统。需要生产级 C++/Rust/Python,以及低延迟系统能力。
量化交易员(Quant Trader) 要么是最猛的赌徒,要么是最顶的强者,主要是决策者:跑资金、管风险、实时拍板。薪酬波动最大——极端年份能到八位数。
风险量化(Risk Quant) 要么是最顶的强者,要么是经验极其老到的“企业老手”,主要是守门人:模型验证、VaR、压力测试、合规监管。职业更稳、上限更低。正在兴起的 AI/ML Quant 角色(用深度学习做信号生成)增长最快,2025 年招聘同比增长 88%。
薪酬大概是这样:
顶级(Jane Street, Citadel, HRT)
应届 $300K-$500K+ 总包
中期(3-7 年)$550K-$950K
资深(8+ 年)$1M-$3M+
明星交易员/PM $3M-$30M+
中档(Two Sigma, DE Shaw)
应届 $250K–$350K
中期(3-7 年) $350K–$625K
资深(8+ 年) $575K–$1.2M
明星交易员/PM 不知道 idk
据报道,Jane Street 在 2025 年上半年的人均薪酬为每年 $1.4 million。那是平均值,不过
面试地狱
简历筛选 -> 在线测评(Zetamac 心算——目标 50+;逻辑题) -> 电话面(概率题、下注游戏) -> Superday(连续 3-5 场面试,模拟交易、编程、白板推导)。
Jane Street 会故意出一些你一个人解不出来的题——他们测试的是你如何利用提示、如何协作。
他们最近的实习生里,超过三分之二学的是 CS;超过三分之一学的是数学。一般不要求金融知识。
头号备考资源
Xinfeng Zhou 的 Green Book(A Practical Guide to Quantitative Finance Interviews)——200+ 道真实题。
再补充 QuantGuide.io(“量化版 LeetCode”)
Brainstellar
Jane Street 的 Figgie 纸牌游戏
完整工具箱
Python 技术栈 数据:pandas, polars(Polars 在大数据集上快 10-50 倍) 数值计算:numpy, scipy ML(表格数据):xgboost, lightgbm, catboost ML(深度):pytorch 优化:cvxpy 衍生品:QuantLib(工业级,C++ 后端) 统计:statsmodels 回测:NautilusTrader 回测(更简单):backtrader, vectorbt(更容易上手) 量化研究:Microsoft Qlib(17K+ stars,AI 导向) 交易强化学习:FinRL(10K+ stars)
C++ 与 Rust 说实话我对这块啥也不懂。这是我找到的: C++ 库:QuantLib, Eigen, Boost。 Rust:RustQuant(期权定价),以及 NautilusTrader 的 Rust+Python 范式(Rust 内核提速,Python API 做研究)。
数据源 免费:yfinance, Finnhub(60 次调用/分钟), Alpha Vantage。 中档:Polygon.io($199/月,<20ms 延迟), Tiingo。 企业级:Bloomberg Terminal(约 $32K/年), Refinitiv, FactSet。 区块链:Alchemy(免费层含归档访问)。
求解器 Gurobi:最快的商业 MIP 求解器,有免费的学术许可。做组合套利必备。 Google OR-Tools:最强免费求解器。 PuLP/Pyomo:Python 建模接口。
阅读清单(按顺序)
数学
-
Blitzstein & Hwang - Introduction to Probability(哈佛提供免费 PDF)
-
Strang - Introduction to Linear Algebra + MIT 18.06 lectures
-
Wasserman - All of Statistics
-
Boyd & Vandenberghe - Convex Optimization(斯坦福提供免费 PDF)
-
Shreve - Stochastic Calculus for Finance I & II
量化金融
-
Hull - Options, Futures, and Other Derivatives
-
Natenberg - Option Volatility and Pricing
-
López de Prado - Advances in Financial Machine Learning
-
Ernest Chan - Quantitative Trading
-
Zuckerman - The Man Who Solved the Market
面试准备
-
Zhou - Practical Guide to Quantitative Finance Interviews(Green Book #1)
-
Crack -Heard on the Street
-
Joshi - Quant Job Interview Questions
竞赛
-
Jane Street Kaggle($100K 奖金)
-
WorldQuant BRAIN(100K+ 用户,为 alpha 信号付费)
-
Citadel Datathon(快速通道拿 offer)
-
Jane Street 每月谜题(难度高于面试)
我更早知道就好了的三件事
估计误差才是真正的敌人。 满 Kelly 下注、无约束 Markowitz、特征太多的 ML 模型——它们都会因为同一个原因失败:在参数估计里对 NOISY BS 过拟合。
在真实参数存在时,数学完美无缺。但你永远拿不到真实参数。理论与实践之间的差距永远是估计误差,而最好的量化就是那些尊重这一点的人。
工具被民主化了。确信没有。
任何人都能用 QuantLib、Polygon.io、PyTorch。技术是必要条件,但远远不够。优势来自独特数据、独特模型或独特执行——不是更会 pip install。
数学是护城河 AI 能写代码、能给策略建议。但能推导出为什么伊藤引理多了一项,能证明在风险中性测度下贴现价格是鞅,能判断组合市场里某个凸松弛到底是紧的还是松的——这种数学流利度,才把“自己打造优势的量化”和“借来优势的量化”区分开。而借来的优势会过期。
Part 2 会讲什么
Part 2 覆盖:奇异期权(障碍、亚式、回望)、随机波动率(Heston 模型校准)、跳跃扩散(Merton)、更高阶测度论(鞅表示、可选停止)、最优执行的随机控制(Almgren-Chriss)、做市的强化学习、面向金融时间序列的 Transformer 架构、FPGA 交易基础设施、WebSocket 行情、并行执行、用 Gurobi 做跨上千条件的组合套利(Frank-Wolfe)。
数学更难。薪水更长





















