用于预测波动性的计量经济学工具:GARCH模型(基础篇)
用 GARCH 给 MT5 波动定价
GARCH(广义自回归条件异方差)是一类计量经济学模型,核心假设是:金融序列的波动具有聚集性——大波动后面跟着大波动,平静期后面还是平静期。把它搬进 MT5,就能把「接下来一段时间可能的波动率」从价格残差里拆出来,而不是只看历史高低点。 在 MT5 里跑 GARCH 类指标,常见做法是先用价格对数收益算残差,再做条件方差递推。下面这段 MQL5 片段给出了最基础的 GARCH(1,1) 方差更新逻辑,参数 ω、α、β 分别对应长期方差、冲击系数与持续系数。 外汇与贵金属属于高杠杆高波动品种,GARCH 给出的只是条件方差的估计值,实际跳空与事件风险可能偏离模型,使用时务必带止损并控制仓位。
class="type">class="kw">double garch_variance(class="type">class="kw">double omega, class="type">class="kw">double alpha, class="type">class="kw">double beta, class="type">class="kw">double last_var, class="type">class="kw">double resid_sq) { class=class="str">"cmt">// omega: 长期方差基线 class=class="str">"cmt">// alpha: 新息冲击权重 class=class="str">"cmt">// beta: 上一期方差持续权重 class=class="str">"cmt">// last_var: 上一期条件方差 class=class="str">"cmt">// resid_sq: 当期残差平方 class="kw">return omega + alpha * resid_sq + beta * last_var; }
◍ 波动集群与GARCH的来由
看MT5里的XAUUSD或EURUSD日线,常会注意到一种现象:大K线扎堆出现,平静的横盘后容易突然放量突破,而小碎步行情之后往往还是小碎步。这种「波动集群」不是错觉,金融危机期间尤其明显——大幅波动倾向诱发更大波动,小幅波动倾向延续小幅。 最早把这件事写成数学模型的,是Engle的ARCH(自回归条件异方差)。它除了能解释波动集群,还顺带说明了收益分布里的重尾和正峰度——也就是极端行情比正态分布预想的多,尖峰也比正态更尖,这是价格增量的共同特征。 ARCH之后衍生出GARCH(广义ARCH)。相比ARCH,GARCH用更短的参数结构就能拟合样本,不用拖一长串滞后项,实战里更轻巧。本文要做的,是给你一个能直接跑的GARCH波动率预测工具,毕竟对外汇、贵金属这类高杠杆品种,提前估出接下来波动量级,才可能谈得上仓位管理。
「历史波动率其实就是标准差」
用波动率给持仓风险定量,在 MT5 使用者里很常见。最直白的做法是取一段 K 线的收盘价收益率,算其标准差,这叫非参数估计,得到的数值就是历史波动率(经验波动率)。 在正态随机游走假设下,这个标准差被当成不确定性的核心度量,模型默认它跨时段恒定。但实盘里贵金属与外汇的波动聚类明显,恒定假设常失效,高杠杆下易低估尾部风险。 打开 MT5 数据窗口拉一段日线,手算收益率标准差,和多数指标默认的 ATR 做个对比,能直观看到两者在急涨急跌段的偏离。
用GARCH把波动率当随机变量来估
ARCH类模型的反向思路是:把波动率本身看成会变的随机变量,而不是固定常数。GARCH靠递推方程刻画条件方差σt²,比直接假设恒定方差更贴近实盘价格扰动的真实结构。 模型里 Yt 是对数价格增量,εt 是残差,zt 取独立同分布的标准正态 N(0,1) 或自由度为 v 的学生 t 分布。待估参数是 (omega, alpha, beta, v),约束必须守住:omega>0 保方差正性,alpha≥0、beta≥0,且 ∑alpha+∑beta<1 保证平稳,v>2。beta=0 时 GARCH 直接退化成 ARCH。 若收益序列无自相关(常态),条件均值可走无条件期望,GARCH 估计就收敛为找 (μ, ω, alpha, beta, v) 这组比率参数。本文为省算力不估收益自相关,开 MT5 用 iGW_Old 或自行最大似然拟合时,先锁死这些约束再跑样本,否则出来的波动率序列可能不平稳。外汇与贵金属杠杆高,GARCH 给出的波动扩张只是概率倾向,不能直接当仓位依据。
◍ 用极大似然给 GARCH 定参
给 GARCH 模型定参,常规做法是极大似然估计。先假定残差 e_t 服从高斯分布,此时对数似然函数就是标准正态密度下的连乘取对数形式,优化器沿着这个函数爬坡,就能解出条件方差方程里的系数。 实战里外汇与贵金属的 5 分钟、1 小时收益率常带厚尾,正态假设会低估极端波动。把分布换成标准化的 Student-t,自由度 v 取较小值(比如 3~6)时,峰度明显高于正态、尾部更厚,似然函数随之改写成含 gamma 函数 Г(v/2) 与 Г((v+1)/2) 的式子。 公式里 Г 是 gamma 函数,T 是样本量。MT5 里拿历史收盘价算好收益率序列后,用自带优化或自己写循环扫一遍 v 与 GARCH 系数,比对哪种组合对数似然最大即可。外汇贵金属杠杆高、波动突变频繁,t 分布拟合也只是概率层面的更接近,不等于能预测下一次跳空。