
1. 先看清全局为什么“凭感觉”撑不住量化这条路先聊一个很多朋友问过我的问题做交易到底要不要学数学学到什么程度才够用。我见过不少做了一段时间交易的投资者一开始靠消息面和技术图形也能赚到钱。但一旦市场节奏变化、波动率放大或者遇到连续回撤就很容易陷入“该不该加仓”“要不要止损”的反复纠结。这时候你会发现一个很尴尬的事实——所有判断都基于“我觉得”而“我觉得”恰恰是市场里最不靠谱的东西。量化交易解决的正是这个问题把决策从“感觉驱动”切换成“数据驱动”。它背后的支撑就是一套完整的数学体系。你不需要成为数学家但你必须理解数学在量化里扮演的角色知道每个公式在解决什么具体问题并且能把公式变成能跑的代码。这份路线图是我梳理出来的四层递进框架从基础数学工具到时间序列和随机过程这类量化专属模块再到机器学习数学与实操工具链的搭配。每一层都对应量化交易中一类具体问题学完一层就能解决一层的问题不存在“学了一堆不知道干嘛”的尴尬。我的建议是别上来就啃全英文的金融数学教材也别一上来就调现成的量化库跑回测。先把路线图看清楚按顺序推进每一步都能在真实交易数据上得到验证你才会真正建立起“数据驱动”的思维习惯。1.1 数学到底在量化交易里干了哪些活量化交易的本质是用数学语言描述价格行为、风险收益特征和交易决策规则然后用历史数据和统计工具验证这些描述是否可靠。整个过程分四个环节每一个环节都有对应的数学工具。第一描述与测量。你手里有一段价格数据你需要知道它的均值、波动率、分布形态、相关性。这些指标全部来自概率论与数理统计。第二建模与预测。你需要用历史数据推断未来的可能走势这需要时间序列分析和随机过程的知识。比如识别趋势、判断均值回归、估计波动率聚集效应。第三优化与决策。在多个可选方案里你需要找出最优仓位、最优组合权重、最优买卖时机。这些是优化理论和线性代数的主场。第四评估与修正。策略跑完回测你需要判断它到底是真有效还是纯属运气这又要回到统计检验和概率推断。简而言之数学不是量化交易的“加分项”而是它的底层语言。就像你要写一篇文章汉字和语法是基础工具没有它们任何高级的修辞技巧都无从谈起。1.2 路线图分四层每层解决一类具体问题我建议把整个学习过程拆成四个阶段对应不同深度和不同实战目标。第一阶段是基础工具层包括概率论、线性代数和微积分。这个阶段的目标是能看懂量化文章里的公式能理解策略参数的含义能独立计算风险指标。第二阶段是量化核心层包括时间序列分析、随机过程和数值优化。这个阶段的目标是能自己动手做策略建模判断数据的平稳性、拟合回报率的分布、估计参数、做最优化求解。第三阶段是提升层包括机器学习中的回归、分类、聚类和神经网络数学基础。目标是把传统的统计建模方法拓展到非线性、高维、交叉特征等更复杂的场景。第四阶段是工程落地层涉及数据清洗、特征工程、评估方法论和实盘系统的数学考量。目标是让你的策略真正稳得住、回撤可控、结果可信。每个阶段之间不是割裂的。比如基础线性代数没搞懂后面做组合优化就会卡壳时间序列的基础不牢机器学习里的时序交叉验证也会踩坑。所以我不建议跳级但也不建议在某个太偏理论的细节上无限深挖。量化交易需要的是“够用的数学”而不是“数学系的专业课”。2. 基础三件套概率、线代、微积分怎么落到交易上很多人一听“数学”两个字就头皮发麻但如果你把每一个工具都和具体交易场景挂钩压力会小很多。这三门课在大学里是分开上的在量化交易里却是一套组合拳。2.1 概率论胜率、赔率和仓位该怎么算概率论是整个量化交易最核心的数学基础没有之一。因为交易的本质是处理不确定性——你永远不知道下一秒是涨是跌你能做的只是评估“涨的概率”和“跌的概率”以及对应的收益与风险。你至少要熟练掌握这几个概念期望值策略每次交易的平均盈亏。$E P_{win} \times R_{win} - P_{loss} \times R_{loss}$。如果期望值为负再好的胜率也没有意义。方差与标准差收益的离散程度直接对应价格的波动风险。标准差越大策略的收益曲线越颠簸。协方差与相关系数判断两个资产是否会同涨同跌是构建投资组合分散风险的基础。条件概率与贝叶斯公式当你观察到某个信号出现后上涨的条件概率是否显著高于基础概率这是很多择时策略的数学解释。我给你举一个最直接的例子。假设某策略的胜率是55%赢的时候平均赚1000元输的时候平均亏800元。表面上看胜率超过一半好像不错但算一下期望值$0.55 \times 1000 - 0.45 \times 800 550 - 360 190$。每一次交易平均赚190元这才是这个策略的真实价值。更进一步凯利公式可以直接告诉你最优的下注比例$$f \frac{bp - q}{b}$$其中 $b$ 是盈亏比$p$ 是胜率$q 1 - p$。代入上面的例子$b 1000 / 800 1.25$$p 0.55$$q 0.45$那么 $f (1.25 \times 0.55 - 0.45) / 1.25 (0.6875 - 0.45) / 1.25 0.19$也就是每次投入资金的19%是最优的。听起来很简单但凯利公式背后的数学推导涉及大数定律和随机过程是连接“胜率、赔率、仓位”三者关系的桥梁。我的实操建议是先用模拟数据算清楚胜率、盈亏比与期望值再去设计仓位管理规则不要凭空觉得“这次机会好多买一点”。在实盘里仓位拍的决策迟早会被波动教做人。2.2 线性代数资产组合与因子模型的底层逻辑线性代数在量化里的地位很多人是后知后觉才意识到的。它主要处理的是“多个资产、多个变量”同时存在时的计算问题。最典型的场景是投资组合优化。你用100万资金买入5支股票每支股票的预期收益和波动各不相同资产之间还有相关性。这时候你需要用一个协方差矩阵——一个5乘5的对称矩阵——来描述它们共同波动的结构。求解最优权重 $\omega$本质上就是在“最大化预期收益 $\mu^T \omega$”和“最小化风险 $\omega^T \Sigma \omega$”之间做权衡其中 $\Sigma$ 就是协方差矩阵。你如果不会用矩阵语言描述这个问题就只能靠感觉分配仓位结果往往是一团乱。因子模型同样是线性代数的经典应用。把资产的收益拆解成若干个共同因子的线性组合比如市场因子、价值因子、动量因子。每一个因子对收益的贡献大小就是通过最小二乘回归计算出来的。回归的核心公式$$\beta (X^T X)^{-1} X^T Y$$这个公式看起来很吓人但它的直觉很简单把数据扔进一个多维空间找一条最近经过所有数据点的直线或超平面。$(X^T X)^{-1}$ 这一步就是处理变量之间的相关性和尺度差异。在实际操作里你不需要手算矩阵求逆Python的numpy.linalg两行代码就能搞定。但你必须理解矩阵乘法表达的是什么、协方差矩阵对角线上是什么、非对角线上是什么、为什么要做矩阵分解去降低维度。否则你会犯一个很常见的错误直接用原始价格序列做回归忘了先做平稳化处理结果跑出一个看似显著、实则虚假的因子系数。学习建议是把线性代数里的矩阵乘法、转置、逆、特征值分解这四件事彻底搞清楚其他有点印象即可。量化实战用到的大量长尾知识点都是在遇到具体问题时现查也来得及的。2.3 微积分优化与敏感度分析的直接工具微积分在量化里的作用一句话概括是“分析变化”。你对价格求导得到的是变化速度你对仓位求导得到的是风险敞口的敏感度。先说最经典的期权场景。期权的Delta定义为期权价格对标的资产价格的一阶偏导$\Delta \partial V / \partial S$。它衡量的是“标的涨一块钱期权涨多少”。这不只是理论概念做期权对冲的团队每天就在算这个东西。Gamma是二阶导衡量Delta本身的变化速度用来判断对冲调整的频率。再看策略优化里的使用方式。你想找一个最优的移动平均线参数让回测收益最大、回撤最小。这个问题抛给数学就是定义一个目标函数然后对它求导、令导数等于零、验证二阶条件。当变量只有一个时很简单变量有多个时就要用到梯度向量。我遇到过不少入门的朋友觉得微积分和交易好像八竿子打不着。一个特别好的切入角度是去看“边际效应”。你做交易仓位从10%加到20%收益增加了多少、风险增加了多少这在数学上就是函数的一阶导数。你每一次加仓的边际收益递减而边际风险递增最优仓位一定出现在两者平衡的位置。这个思路和微积分里的极值问题一模一样。需要提醒的是微积分在这条路线图里的“难度权重”不必太高。你只要能看懂偏导数、梯度和链式法则之后学机器学习里的反向传播和梯度下降会非常顺畅。但对于纯手工推导复杂积分除非你要做深度衍生品定价否则优先级很低。3. 进阶核心时间序列、随机过程与最优化基础三件套掌握之后就可以进入量化独有的核心数学模块了。这一部分和股票、期货、外汇的实战建模关系最直接也是区分“懂量化”和“不懂量化”的分水岭。3.1 时间序列分析识别数据里的趋势与回归特性金融数据最显著的特征是它是带时间顺序的观测值同一时刻的今天会和昨天高度相关。这打破了传统统计学里“样本独立”的假设因此需要专门的一套工具——时间序列分析。你要掌握的第一个概念是平稳性。一个平稳时间序列的均值、方差是稳定的不随时间的推移而系统性漂移。股票价格通常非平稳因为长期趋势存在但价格的日收益率通常近似平稳。为什么这个区分重要因为绝大多数统计建模方法包括回归、ARIMA、机器学习模型都默认数据是平稳的。拿非平稳数据硬套模型容易出现“伪回归”——看着 $R^2$ 很高、参数很显著实际上全是巧合。import adfuller # 来自 statsmodels 库 # adfuller 是单位根检验的常用实现 # 原假设是存在单位根即非平稳 # p值小于0.05通常可以认为序列是平稳的实际判断平稳性的标准做法是ADF检验。我自己的习惯是任何时间序列进入建模流程之前先画图看趋势再跑ADF检验数据不平稳就先做差分或者取对数。这个习惯救了我很多次避免了无数个“看起来赚钱、实盘亏钱”的策略。第二个核心概念是自相关。今天的收益率和昨天的收益率有没有关系和前天呢自相关函数ACF和偏自相关函数PACF就是用来回答这个问题的。如果ACF拖尾、PACF截尾你可能需要AR模型反过来则是MA模型。把AR和MA结合就是ARIMA模型——现实世界里最常用的序列预测工具之一。但我要泼一盆冷水不要指望ARIMA能精准预测明天的价格。它的价值更多在于理解序列的结构而不是做点预测。我见过太多人把ARIMA拟合到历史数据上看拟合效果很好就以为发现了印钞机。实际上金融序列的信噪比极低预测小周期方向的可信度极其有限。与其过度追求预测精度不如把时间序列的能力用在风险分析、波动率建模和均值回归识别上。第三个重要内容是协整与配对交易。两支股票的收益率分别是非平稳的但它们的某种线性组合是平稳的说明二者存在长期的均衡关系。这种“协整关系”用线性代数加时间序列工具就能识别出来背后的思路是价差偏离均线太远时大概率会回归。这是统计套利里最经典的策略之一也是“时间序列线性代数概率论”三科联动的绝佳实战案例。3.2 随机过程把价格波动当成随机事件来建模经常有初学者问既然价格无法精准预测为什么还要建数学模型答案就在随机过程理论里。这个模块的核心思想是不预测单次价格的具体走向而是描述价格演变的整体概率规律。最经典的模型是几何布朗运动$$dS_t \mu S_t dt \sigma S_t dW_t$$其中 $S_t$ 是资产价格$\mu$ 是漂移项趋势$\sigma$ 是波动率$dW_t$ 是标准布朗运动的增量。简单解释价格的微小变化由两部分组成——确定性的趋势部分加上随机扰动的部分。这个模型是Black-Scholes期权定价公式的基石。你需要掌握的是直觉层面的理解不一定非要推导伊藤引理。你要明白四个关键点收益率波动率越高价格的方差越大意味着尾部风险更容易出现。随机过程可以模拟。你可以用蒙特卡洛方法生成数千条可能的价格路径再统计路径终点的分布以此推算策略的收益区间。波动率不是固定常数。真实市场价格存在波动率聚集效应大幅波动之后往往跟着更大波动。ARCH/GARCH模型就是专门描述这种异方差性的工具。随机过程是风险管理的数学基础。在险价值VaR和预期亏损CVaR的计算本质上都是对随机过程的尾部分布做概率估计。我的学习建议是不要被随机过程的数学符号吓住。先写一个简单的蒙特卡洛模拟生成一条几何布朗运动路径画出来看看。再生成1000条路径画一个收益分布直方图。当你亲眼看到模拟结果的形态和真实交易数据的分布相似时这个概念你就不可能忘。3.3 数值最优化把数学公式变成可执行的策略参数前面学的都是“描述世界”的工具最优化则是“改变世界”的工具。策略建模的终点往往会落在一类问题上在若干约束条件下最大化某个目标函数。最常见的应用是最大夏普比率组合。你有10个资产的收益率数据想找出一个权重配置让夏普比率 $\frac{E[R_p] - R_f}{\sigma_p}$ 最大。这是一个带约束的优化问题约束条件包括所有权重之和等于1、禁止卖空时所有权重大于等于0。它的数学解通常通过拉格朗日乘子法或数值迭代求解。import numpy as np # 用一个简单公式说明目标函数的本质 # 组合收益率 权重向量与各资产预期收益的内积 # 组合方差 权重向量的转置 × 协方差矩阵 × 权重向量 # 优化目标在权重之和为1的约束下最大化夏普比率这里的核心难点不是会写优化代码而是理解“目标函数”和“约束条件”如何取舍。比如你想控制最大回撤不超过10%可是回撤不是简单的线性约束它会引入复杂的非线性限制。这时候你需要在优化框架里加入惩罚项或者用动态规划、遗传算法等替代方案。我的实践经验是从线性规划入手再过渡到凸优化。线性规划理解起来直观凸优化是金融组合问题的标准数学框架。强烈建议学一下cvxpy或scipy.optimize的用法同时补一补 KKT 条件的基础直觉——当你要给优化问题添加不等式约束比如“禁止做空”时KKT 条件就是判断解是否合法的工具箱。好的一步是每学一个优化算法就选一个真实需求来练最小化组合方差、最大化夏普比率、给定风险预算下的收益最大化。这三个练完你对最优化和前面线代矩阵的结合方式会有一个整体认识。4. 机器学习数学从线性回归到复杂模型的取舍传统量化策略主要依赖统计模型而现代量化团队大量使用机器学习模型。但机器学习的“黑箱感”会让很多人迷失方向。实际上机器学习的数学底座和前面学的内容一脉相承。4.1 损失函数与梯度下降的直觉理解所有监督学习模型不管是线性回归、决策树还是神经网络核心都在做一件事情定义一个损失函数衡量预测值与真实值的差距然后找到一组参数让损失最小。线性回归的损失函数是均方误差$$L \frac{1}{n} \sum_{i1}^{n} (y_i - \hat{y}_i)^2$$它的最优解可以用正规方程直接求出。但当模型变复杂、参数变多、损失函数不再凸时解析解不存在就需要用梯度下降法迭代求解。梯度下降的直觉很简单把损失函数想象成一座山你站在山坡上目标是走到谷底。梯度就是最陡的方向每次沿着梯度的反方向走一小步反复迭代就能接近最小值。更新参数的方式是$$\theta_{t1} \theta_t - \eta \nabla L(\theta_t)$$这里的 $\eta$学习率是关键。学习率太大参数在谷底附近震荡永远不收敛学习率太小收敛速度慢得像蜗牛。我在实践中经常用学习率衰减、动量项等方式来缓解这些问题。量化场景里我建议你做这样一个练手实验用梯度下降手写一个线性回归拟合沪深300的某个因子与次日收益的关系。这一小段代码会帮你把“梯度”“学习率”“损失函数”“收敛”这些概念一次性钉在脑子里。4.2 正则化与偏差方差权衡避免过拟合的关键学机器学习的人一定会接触到“过拟合”这个严重的坑。在金融数据上过拟合尤其致命——因为金融数据信噪比低模型很容易记住噪声而不是捕捉真实规律。过拟合的数学根源是模型复杂度与样本量的匹配问题。模型参数太多、可学习的特征太多就会把偶然的噪声当成稳定规律。解决办法之一是正则化也就是在损失函数里加一个关于参数大小的惩罚项。L1正则化Lasso会让很多参数变成0天然做特征选择L2正则化Ridge会压缩参数的大小但不会归零。两者背后的数学解释都涉及范数理论和拉格朗日乘子法你可以把它们理解为“给参数加上惩罚关卡”。另一个重要思路是偏差-方差权衡。模型太简单偏差大公式欠拟合模型太复杂方差大换一段数据表现就崩。量化团队对任何机器学习模型都会做严格的样本外验证就是为了防止“方差过大”的模型混进实盘。我的建议是在金融数据上优先使用简单模型。线性回归、逻辑回归、树模型都够用。神经网络的拟合能力很强但它的参数空间极大在有限的历史数据上特别容易过拟合而且解释性差出了问题很难定位。4.3 量化场景里该学哪些机器学习数学我的筛选建议是学机器学习数学不要求全抓住量化实战最常用到的部分就够了回归与分类的损失函数均方误差、交叉熵。梯度下降算法及其变体批梯度下降、随机梯度下降、Adam优化器。正则化与模型选择L1/L2、交叉验证、嵌套验证。聚类与降维的基本数学K-Means、PCA这两个工具在做风格分类和因子压缩时很常用。模型的评估指标准确率不适合交易你要理解AUC、F1、IC、Rank IC这些更贴近量化场景的指标。在这些内容里PCA的数学基础就是前面讲的线性代数——特征值分解与奇异值分解。你会发现之前学的东西在这里又一次出现了这也是我为什么反复强调基础一定要扎实。5. 可落地的学习计划与工具链搭配路线图再清晰如果不知道怎么安排时间没有配套工具的支撑执行起来依然是一盘散沙。最后一层是学习计划与工具链的具体搭配。5.1 按阶段推进每学一个数学模块就配一个练手项目我一直相信“没有落地项目的数学学习都是无效学习”。知识只有在被使用、被验证的时候才会真正变成你自己的工具。下面是一张学习计划表每个阶段都要配一个实战小项目阶段数学模块配套练手项目预计投入周期一概率论描述统计统计某指数的日收益率分布计算均值、方差、偏度、峰度画出直方图2周二线性代数协方差矩阵计算3支股票的协方差矩阵手动做一次组合方差最小化2周三微积分极值用求导方法推导某策略的盈亏平衡参数1周四时间序列ADF检验识别平稳性对收益率序列做ARIMA建模并做诊断3周五随机过程蒙特卡洛模拟价格路径计算在不同置信度下的VaR2周六最优化用scipy/cvxpy求解最大夏普组合2周七机器学习数学用梯度下降手写线性回归对比sklearn结果3周注意每个项目都要用真实交易数据。免费数据源足够你用了开源的data库或者行情API都可以。用真实数据的好处是你会在实操中遇到各种细节问题比如数据对齐、除权处理、停牌缺失等这些才是量化实战里真正费时间的部分。5.2 Python工具链把公式翻译成代码数学是心法代码是招式。一条完整的量化研究链路对应的Python工具大致如下数据操作pandas、numpy是基本功。DataFrame的索引、对齐、滚动计算、重采样必须熟练到不用查资料。统计检验scipy.stats、statsmodels提供ADF检验、自相关分析、回归诊断这些时间序列核心功能。数值优化scipy.optimize、cvxpy解决组合优化问题sklearn提供成体系的机器学习算法。可视化matplotlib、plotly。每次建模之前先画图每次回测之后也画图人类的眼睛很多情况下比统计指标更灵敏。回测框架轻量级的自己写、成熟的开源框架直接用。我建议前期先自己写一个简单的向量化回测搞清楚滑点、手续费、买卖点位这些细节再过渡到框架。这里有一个提醒不要过度依赖现成库。我在带人的时候反复强调调库之前要手推一遍。比如你在statsmodels里调ARIMA至少要自己写过一次最小二乘回归、自己算过协方差矩阵才能理解库内部在做什么出了问题也能自己排查。5.3 学习顺序与节奏上的几个建议以上内容全部消化需要的时间我按全职投入估算大约三到四个月。每天两小时的话放宽到六到八个月也算正常。关键不在于快在于“每一层都学透、练透之后再去下一层”。一些经验细节数学公式务必亲手推导一遍哪怕是在纸上。只做“看懂”和“能推导”是完全不同的层级。不要跳跃式学习。矩阵运算没搞懂就去看因子模型短期能抄作业长期一定会卡壳。遇到卡住的概念同时使用三种方式突破看书、看视频、看别人的代码实现。同一个概念被讲述三遍之后很难再卡住你。与代码配合学习。每学一个新数学概念我建议你当天就用Python写一个最小实现。哪怕只有十行也能让知识彻底落地。6. 常见弯路与问题排查我见过不少人学了几个月数学最后还是回到了“凭感觉”交易。问题多半不出在智商和学习能力上而是踩了几个典型的坑。6.1 三个被问得最多的学习误区误区一认为数学学得越多策略就一定越赚钱。这是最大的误解。数学是工具不是圣杯。市场的利润来自有效的策略逻辑数学只是帮你去验证、去优化、去评价逻辑的质量。一个逻辑简单的策略配上一套扎实的风险管理可能比一个花里胡哨的深度学习模型更稳定。数学学习的核心成果是让你建立“不信任主观感觉、一切用数据说话”的纪律而不是赋予你预测能力。误区二过于沉迷于理论推导忽略了数据和代码实操。我见过有朋友花一个月啃随机过程的教材推导伊藤引理推得头头是道却连用pandas计算日收益率都要现查。量化是工程的游戏理论要服务于实战。正确的方式是理论、代码、数据三者交替推进学一个公式就立刻找个数据去验证它。误区三追求“完美预测价格”。很多人在学了时间序列和机器学习后第一个冲动就是预测明天的涨跌。但实际上金融预测的信噪比极低稳定的超额收益更多来自风险管理、纪律执行、多样化策略组合而不是来自精准的择时。我的经验是把精力优先放在“亏损时少亏、盈利时拿得住”的方案设计上这比预测方向更重要。误区正确认知调整方法数学印钞机数学是验证工具不是预测机器先定策略逻辑再用数学验证只学理论不写代码量化是工程理论和代码一体每个知识点配十行代码落地沉迷预测价格预测信噪比低风控才有长期价值优先学习组合管理与风险评估6.2 数学学到什么程度才算入门这个问题我经常被问到。我认为“入门”的标准不是看完几本书而是能独立完成下面这五件事能统计一组收益率数据的基本分布特征并判断它是否近似正态分布能计算两支资产的相关性并解释其对组合风险的影响能用时间序列工具判断数据是否平稳并做一次差分处理能写代码实现一个简单的组合优化问题能用统计指标评估一个策略的回测结果而不是只看总收益率。如果这五件事你都能独立完成那么恭喜你你已经迈进了量化交易的大门。剩下的路是通过大量项目经验的积累把每一个模块不断打磨得更精细。从我的亲身体会来说学习这条路线图最大的收获不是某一次策略盈利而是你终于有了一个可以依赖的决策框架——每做一次交易你都清楚地知道你在赌什么、你的数学依据是什么、你暴露了多大的风险。这种感觉远比“凭感觉买中了”踏实得多。最后再说一个实操小技巧保持交易日志把每一次交易的决策依据、当时的数学分析结果、事后的复盘数据记录在一个标准化的表格里。当你积累了上百次记录之后你就能用这套数学框架真正量化自己的交易习惯而不是只量化市场。这一步也是从“数据驱动交易者”走向“系统化交易者”的必经之路。