01 衍生品价格从何而来? 第 6 节把无套利结论写成一个逐合约的 risk-neutral pricing operator:

$$ V_t^i \mathrel{=} \mathcal M^{\mathbb Q} (\mathbf x_{t,i};\boldsymbol\vartheta^{\mathbb Q}) \in\mathbb R, $$

也就是说,只要给定模型、参数、第 $i$ 个合约的当前状态与合约条件,我们原则上已经知道怎样得到一个标量期权价格。后文为校准而把多个合约输出堆叠成向量时,那只是这张逐合约 map 的局部向量化。

但市场并不会直接告诉我们

$$ \boldsymbol\vartheta^{\mathbb Q} $$

是多少。真实市场提供的是不同 strike、不同 maturity 上的一组 bid、ask 与成交价格。于是,一个数学上已经定义好的 pricing model 要真正进入交易,还必须补上另一张 map:

$$ \text{market quotes} \longrightarrow \widehat{\boldsymbol\vartheta}^{\mathbb Q}. $$

这就是 calibration。

因此,本篇不再回答“期权为什么能够被定价”,而只处理上一篇留下的接口问题:

一个已经数学定义好的定价模型,如何与真实市场上的期权价格连接起来?

这条链会依次经过 market target、forward solver、inverse problem、identifiability,最后把一个可重复的 calibration map 交给下一篇的 risk / PnL 分解。


1. 需要连接的模型对象与市场对象分别是什么?

Calibration 以前要先区分 historical estimation 与 option calibration。前者使用时间序列,描述 $\mathbb P$ 下的 market moves 如何发生;后者使用当前 option quotes,确定 $\mathbb Q$ 下的 marking parameters。即使两边都出现 $\kappa$、$\rho$ 或 $\xi$,符号相同也不意味着估计结果相同;连接二者还需要另行指定 risk-premium structure。

本篇只处理 $\mathbb Q$ marking problem。它的直接输入是当前市场的 option quote vector:

$$ \mathbf y_t. $$

对 calibration universe 中第 $i$ 个合约,上一篇给出的 pricing operator 写成

$$ V_{i,t}^{\mathrm{model}} \mathrel{=} \mathcal M^{\mathbb Q} (\mathbf x_{t,i};\boldsymbol\vartheta^{\mathbb Q}), $$

把这些标量输出在校准截面上堆叠起来,才得到后文使用的 model-output vector。Calibration 的完整输入除清洗后的目标 $\mathbf y_t$ 外,还包括 spot、曲线、合约集合等当日已知输入,统一记为

$$ \boldsymbol\eta_t:=(\mathbf y_t,\mathbf a_t), $$

其中 $\mathbf a_t$ 收集不属于 calibration target、但会影响当日正向定价或校准程序的输入。Calibration 要构造的是

$$ \boxed{ \widehat{\boldsymbol\vartheta}^{\mathbb Q}_t \mathrel{=} \mathcal C(\boldsymbol\eta_t). } $$

因此,$\mathbf y_t$ 是拟合目标,$\boldsymbol\eta_t$ 才是 calibration map 的完整输入。二者与 historical estimator 的分工可以写成

$$ \boxed{ \mathbb P\text{ estimation 描述 physical distribution;} \qquad \mathbb Q\text{ calibration 匹配当前 option prices。} } $$

问题于是转移到 $\mathbf y_t$ 本身:市场上的 raw quotes 能否直接作为 calibration target?

答案是否定的。


2. 什么样的市场数据可以作为 calibration target?

真实市场不是一张连续、光滑的数学曲面。

我们首先观察到的是离散的 bid / ask:

$$ \left\lbrace C_{i,t}^{\mathrm{bid}}, C_{i,t}^{\mathrm{ask}}, K_i,T_i \right\rbrace_{i=1}^{n}. $$

不同 expiry 上可交易的 strikes 不同,liquidity 不同,bid–ask spread 不同;forward curve 与 discount curve 的构造也会改变同一张 option 在报价空间中的位置。

所以 calibration 的第一步不是启动 optimizer,而是先回答:

我们究竟把市场中的什么对象视为模型需要匹配的 observable?

2.1 Implied volatility 首先只是报价坐标

对 European call,给定 forward

$$ F_t(T) $$

和 discount factor

$$ D(t,T), $$

其市场价格首先必须位于相应的 no-arbitrage bounds 内:

$$ D(t,T)\bigl(F_t(T)-K\bigr)^+ \le C_t^{\mathrm{mkt}} \le D(t,T)F_t(T). $$

如果价格位于可逆区间内,则 Black–Scholes implied volatility 被定义为满足

$$ C^{\mathrm{BS}} \bigl(t;K,T,\sigma_{\mathrm{imp}}\bigr) \mathrel{=} C_t^{\mathrm{mkt}} $$

的那个 $\sigma_{\mathrm{imp}}$。

在通常的非退化条件下,

$$ \frac{\partial C^{\mathrm{BS}}}{\partial\sigma} \mathrel{=} \mathrm{Vega}^{\mathrm{BS}}>0, $$

所以这是一维、单调的 inversion。

这一步非常容易被术语误导:

Implied-volatility inversion 不是 stochastic-volatility model calibration。

它只是把同一个 market price 从货币价格坐标转换成一个更便于横向比较的 quote coordinate。Homescu 也把 BSM implied volatility 作为从 option-price space 到 volatility quote space 的标准映射工具来讨论。1

因此可以进一步定义 forward log-moneyness

$$ k_t(K,T) := \log\frac{K}{F_t(T)} $$

和 total implied variance

$$ w_t(k,T) := \sigma_{\mathrm{imp}}^2(t;K,T)(T-t). $$

不同 strikes 与 maturities 的 options 于是可以被组织到统一的 $(k,T,w)$ 坐标里。

2.2 离散 quotes 仍然不是连续 surface

即使已经全部转换成 implied volatility,市场仍然只给出有限个点。有限维 model calibration 可以直接使用经过清洗的离散 targets;interpolation、surface risk 与 local-volatility inversion 则需要连续表示。两条路径不能混为一谈:

$$ \boxed{ \begin{aligned} \text{raw quotes} &\longrightarrow \text{clean discrete targets} \longrightarrow \text{finite-dimensional calibration},\\ \text{raw quotes} &\longrightarrow \text{arbitrage-consistent surface} \longrightarrow \text{surface-based inversion / risk}. \end{aligned} } $$
市场对象主要用途
clean discrete prices / IVsHeston 等 finite-dimensional calibration
continuous arbitrage-consistent surfaceinterpolation、Dupire inversion、surface risk
raw bid / ask数据输入;尚未自动成为 calibration target

SVI 在本文中的角色就在这里。

对固定 maturity,可以用

$$ w(k) \mathrel{=} a_{\mathrm{SVI}}+b_{\mathrm{SVI}}\left[ \rho_{\mathrm{SVI}}(k-m_{\mathrm{SVI}}) + \sqrt{(k-m_{\mathrm{SVI}})^2+\eta_{\mathrm{SVI}}^2} \right] $$

表示一条 implied-total-variance slice。

这里的五个参数首先是在描述今天这一条 market smile,而不是声明 underlying 未来服从某种名为 SVI 的 stochastic dynamics。

这一区分决定了 SVI 与 Heston 在全文中的逻辑位置:

$$ \boxed{ \text{SVI:market surface representation} \qquad\neq\qquad \text{Heston:risk-neutral dynamics family}. } $$

而且,给离散点拟合一个平滑函数本身还不够。Surface construction 受到 static no-arbitrage structure 的约束:strike 方向不能产生明显 butterfly arbitrage,maturity 方向也不能制造 calendar arbitrage。Homescu 对 surface interpolation、extrapolation 以及这些 arbitrage constraints 做了系统梳理;Gatheral 对 SVI 与 volatility surface 的关系也给出了 practitioner-oriented 的讨论。2 1

$\mathbf y_t$ 不应被理解为“一串未经定义的市场中间价”。在 calibration 之前,至少已经确定了:

  • calibration universe;
  • price / IV quote convention;
  • $F_t(T)$ 与 $D(t,T)$;
  • bid / ask 的处理方法;
  • data cleaning rule;
  • interpolation / surface convention(若目标来自连续 surface);
  • static-arbitrage 与 quote-quality filters。

这些约定共同定义 market target。给定它以后,才需要检查任意一组候选参数能否稳定地产生对应的 model prices。


3. 给定参数,forward pricing problem 是否可重复、可验证地求解?

把 calibration universe 中的所有 instruments 放在一起,可以把逐合约 pricing operator 的标量输出局部堆叠为 forward map:

$$ \boxed{ \mathbf m(\boldsymbol\vartheta) := \begin{pmatrix} m_1(\boldsymbol\vartheta)\\ \vdots\\ m_n(\boldsymbol\vartheta) \end{pmatrix}, \qquad m_i(\boldsymbol\vartheta) := \mathcal M^{\mathbb Q} (\mathbf x_{t,i};\boldsymbol\vartheta). } $$

Calibration optimizer 会反复调用这张 map。因此,在谈“反推参数”之前,必须先确认正向问题本身已经被稳定地解决。

Heston 是一个典型例子。上一篇只交付了一般定价接口,并没有定义 Heston dynamics;因此这里先明确本篇使用的风险中性模型。在确定性利率与股息曲线下,令

$$ \frac{dS_u}{S_u} \mathrel{=} [r(u)-q(u)]\,du +\sqrt{v_u}\,dW_u^{S,\mathbb Q}, $$$$ dv_u \mathrel{=} \kappa(\bar v-v_u)\,du +\xi\sqrt{v_u}\,dW_u^{v,\mathbb Q}, \qquad d\langle W^{S,\mathbb Q},W^{v,\mathbb Q}\rangle_u \mathrel{=} \rho\,du. $$

这里 $\kappa,\bar v,\xi>0$、$\rho\in[-1,1]$,而 $v_t$ 是当前 instantaneous-variance state。哪些量每日作为 state 更新、哪些量进入 $\boldsymbol\vartheta^{\mathbb Q}$ 被重新校准,必须由 implementation convention 明确指定;是否强制 Feller-type 条件则属于 admissible parameter domain 的选择。European option price 可以借助 characteristic function 通过 Fourier inversion 求得。Gatheral 强调的一个实务优势正是:Heston 对 European options 的 forward pricing 足够便宜,而 calibration 恰恰需要大量重复 pricing。2

但 characteristic-function inversion 只是 forward solver 的一种形式。对其他模型或 payoff,$\mathbf m(\boldsymbol\vartheta)$ 的各个分量也可能来自 PDE、finite difference / finite element、quadrature 或 Monte Carlo。

真正的要求不是“必须有 closed form”,而是:

$$ \boxed{ \text{同一组参数输入时,pricing engine 能否稳定、可重复地返回足够精确的价格?} } $$

Hilber 等人的 numerical-finance 框架特别区分了 numerical discretization error 与 modeling error。3 这一点在 calibration 中尤其重要。

设数值 solver 返回

$$ m_i^{\mathrm{num}}(\boldsymbol\vartheta) \mathrel{=} m_i^{\mathrm{exact}}(\boldsymbol\vartheta) + e_i^{\mathrm{num}}(\boldsymbol\vartheta). $$

那么 optimizer 实际看到的 residual 是

$$ m_i^{\mathrm{num}}(\boldsymbol\vartheta)-y_i \mathrel{=} \underbrace{ m_i^{\mathrm{exact}}(\boldsymbol\vartheta)-y_i }_{\text{model-to-market residual}} + \underbrace{ e_i^{\mathrm{num}}(\boldsymbol\vartheta) }_{\text{solver error}}. $$

如果 solver error 与目标 calibration error 在同一个量级,optimizer 就不再只是在拟合市场,而会开始部分拟合 numerical noise。

这还会污染后面的 calibration Jacobian,因为我们最终关心的不只是

$$ m_i(\boldsymbol\vartheta), $$

还包括

$$ \frac{\partial m_i}{\partial\vartheta_j}. $$

如果 pricing output 随 grid、integration cutoff、random sampling 或 tolerance 不平滑,parameter sensitivities 也不会可靠。

所以顺序必须是:

$$ \boxed{ \text{solver convergence / stability} \quad\text{先于}\quad \text{parameter optimization}. } $$

这并不意味着每个 solver 都要算到 machine precision。更合理的要求是建立一个明确的 tolerance hierarchy,例如

$$ \text{numerical pricing error} \ll \text{target calibration tolerance}, $$

而 target calibration tolerance 本身又不应该脱离 bid–ask 这样的市场噪声尺度。

只有 forward map 足够可靠,inverse problem 才有明确含义。


4. Calibration 作为 inverse problem 应如何定义?

假设已经得到 calibration target

$$ \mathbf y \mathrel{=} (y_1,\ldots,y_n)^\top, $$

模型在同一报价坐标下的输出记为

$$ \mathbf m(\boldsymbol\vartheta) \mathrel{=} \bigl(m_1(\boldsymbol\vartheta),\ldots,m_n(\boldsymbol\vartheta)\bigr)^\top. $$

有限维 model calibration 可以写成

$$ \boxed{ \widehat{\boldsymbol\vartheta}^{\mathbb Q} \in \arg\min_{\boldsymbol\vartheta\in\mathcal A_{\vartheta}^{\mathbb Q}} \left\lbrace \sum_{i=1}^{n} \omega_i \bigl(m_i(\boldsymbol\vartheta)-y_i\bigr)^2 + \lambda\mathcal R(\boldsymbol\vartheta) \right\rbrace. } $$

这条公式说明了一件经常被“calibrate Heston”这种简写掩盖的事实:

在 objective、weights、parameter domain、regularization 与 numerical convention 被固定以前,calibration 还不是一个完整的数学问题。

4.1 Price error 与 implied-volatility error 不是同一个 objective

在某张 option 的 market implied volatility 附近,一阶近似给出

$$ \delta C \approx \mathrm{Vega}^{\mathrm{BS}} \,\delta\sigma_{\mathrm{imp}}. $$

因此

$$ \delta\sigma_{\mathrm{imp}} \approx \frac{\delta C} {\mathrm{Vega}^{\mathrm{BS}}}. $$

这说明:对相同大小的 implied-volatility error,高 Vega 合约会产生更大的 dollar price error。直接最小化未经 scaling 的 price errors,因而会对这些合约赋予更高的隐含权重;在 implied-volatility space 中 fitting,则近似对应 price-space 中的 inverse-Vega scaling。

市场还有另一个天然尺度:bid–ask spread。一个 spread 很宽的 illiquid quote 并没有给出非常精确的 price information,所以实践中常会让更 liquid、spread 更窄的 instruments 获得更高权重。Homescu 对 price error、IV error、Vega normalization 与 bid–ask-aware weighting 都有直接讨论。1

因此 $\omega_i$ 不是一个无关紧要的 optimizer tuning parameter。它实际上定义了:

模型被要求优先解释市场的哪一部分?

旁支:三种常被称为 calibration 的‘反解’

在 volatility modeling 里,至少有三类问题经常都被口语化地称为 calibration,但它们在数学上不是同一件事。

第一类是单个合约的 implied-volatility inversion:

$$ C^{\mathrm{BS}}(\sigma) \mathrel{=} C^{\mathrm{mkt}}. $$

这是一个单合约、一维、单调函数反解。

第二类是 Heston 这类 finite-dimensional model calibration:

$$ \mathbf y \longrightarrow \widehat{\boldsymbol\vartheta}^{\mathbb Q}. $$

这是一个有限维 constrained optimization problem。

第三类是 Dupire local-volatility inversion。

设在常数利率 $r$ 与股息率 $q$ 下,$\mathbb Q$ 中

$$ dS_t \mathrel{=} (r-q)S_t\,dt + \sigma_{\mathrm{loc}}(t,S_t)S_t\,dW_t^{\mathbb Q}. $$

如果 European call surface $C(K,T)$ 对 $(K,T)$ 足够光滑并满足相应的 no-arbitrage 条件,则 local variance 可以由

$$ \boxed{ \sigma_{\mathrm{loc}}^2(T,K) \mathrel{=} \frac{ \partial_T C +(r-q)K\partial_K C +qC }{ \tfrac12K^2\partial_{KK}C }. } $$

恢复。[^gatheral]

Dupire 的结论必须精确理解。它说明的是:在指定的 local diffusion model class 内,完整的 European option surface 可以确定与这些 marginal distributions 一致的 local-volatility coefficient。它并不意味着 vanilla surface 唯一决定了 underlying 的全部 stochastic dynamics。

事实上,local-volatility model 与 stochastic-volatility model 可以生成极为接近的 European option prices,却对未来 smile dynamics 或 path-dependent claims 给出不同结果。[^gatheral] [^bergomi]

Dupire 还直接暴露了 inverse problem 的脆弱性:右侧需要

$$ \partial_T C, \qquad \partial_{KK}C, $$

而市场只给我们 noisy、discrete bid–ask observations。微分会放大输入噪声,所以实际 inversion 不能跳过上一节已经建立的 smooth、arbitrage-consistent surface,并且必须保证使用区域中至少满足

$$ \partial_{KK}C>0. $$

对 Dupire inversion,顺序是

$$ \boxed{ \text{raw quotes} \rightarrow \text{smooth arbitrage-consistent surface} \rightarrow \text{local-volatility inversion}. } $$

这里不能把 raw prices 直接代入包含价格导数的公式。Heston 等 finite-dimensional calibration 则可以使用 clean discrete targets,不要求先构造连续 surface。

有限维 calibration 同样需要明确 admissible parameter set

$$ \mathcal A_{\vartheta}^{\mathbb Q}. $$

例如在 Heston calibration 中,variance positivity、parameter bounds 以及是否强制某种 Feller-type convention 都必须作为 implementation choice 明确记录;不应把某一条常见约束未经说明地提升为所有实现都必须满足的唯一规则。

如果 objective 中加入 regularizer

$$ \mathcal R(\boldsymbol\vartheta), $$

也必须说明它在惩罚什么:parameter size、time variation、相对 prior 的偏离,还是其他结构。Regularization 改变了 calibration problem 本身,而不是简单地“让 optimizer 更稳定”。

某个 regularizer 是否改善 uniqueness 或 stability 取决于具体问题;本文不作一般性保证。

至此,即使 objective 找到了一个很低的 minimum,仍然不能马上说“参数已经被市场确定”。


5. 何时可以相信校准结果,而不只相信 in-sample fit?

设 calibrated parameter 为

$$ \widehat{\boldsymbol\vartheta}^{\mathbb Q}. $$

在它附近,对 model outputs 做一阶展开:

$$ \delta\mathbf m \approx J_{\mathbf m}\,\delta\boldsymbol\vartheta, $$

其中 forward-map Jacobian 为

$$ (J_{\mathbf m})_{ij} := \frac{\partial m_i} {\partial\vartheta_j}. $$

如果存在某个 parameter direction 满足

$$ J_{\mathbf m}\,\delta\boldsymbol\vartheta \approx0, $$

那么沿这个方向改变参数,即使幅度很大,calibration instruments 的 model prices 也可能几乎不变。

于是市场可以非常精确地告诉我们

$$ \mathbf m(\boldsymbol\vartheta) $$

应该在哪里,却几乎没有告诉我们

$$ \boldsymbol\vartheta $$

应该在哪里。

这就是 price fit 与 parameter identification 的区别。

在 regular local analysis 下,

$$ \operatorname{rank}(J_{\mathbf m}) \mathrel{=} \dim(\boldsymbol\vartheta) $$

是判断参数是否具有独立局部可观察方向的标准 regularity condition。反过来,如果最小 singular value 很小,那么 calibration 在某些 parameter directions 上接近 singular。

在最简单的 unconstrained local linearization 中,

$$ \delta \widehat{\boldsymbol\vartheta}^{\mathbb Q} \approx J_{\mathbf m}^+\delta\mathbf y, $$

其中 $J_{\mathbf m}^+$ 是 pseudoinverse。

当 $J_{\mathbf m}$ 接近奇异时,一个很小的 quote perturbation

$$ \delta\mathbf y $$

就可能对应很大的 parameter perturbation。

于是实务中常见的现象——market surface 几乎没动,但某个 Heston parameter 突然大幅跳动——不一定是 optimizer 出错。它可能来自两个不同层次的问题。

第一类是 optimization landscape:objective 有多个 local minima,因此结果依赖 initialization。Homescu 对 gradient methods、initial guesses、global / hybrid optimization 等实践问题有专门讨论。1

第二类则更根本:即使 optimizer 每次都进入同一个 basin,objective 在某些 parameter directions 上也可能本来就非常平坦。这是 identification / conditioning 问题,不会因为换一个更强的 optimizer 自动消失。

所以,一个可信的 calibration 不能只报告一句

$$ \mathrm{RMSE}=0.002. $$

至少应该进一步检查:

  • multi-start 是否得到相近的 minima;
  • profile loss / contour 是否存在明显平坦方向;
  • parameter bounds 是否频繁被撞到;
  • Jacobian singular values 是否显示弱识别方向;
  • 小幅 bump quotes 后 parameters 是否失控;
  • rolling calibration 是否出现无经济解释的跳变;
  • out-of-sample options 是否仍有合理 fit;
  • 改变 numerical tolerance 后结果是否稳定。

更重要的是,稳定的 model outputs 可能比稳定的 raw parameters 更重要。

如果两组不同参数

$$ \boldsymbol\vartheta^{(1)} \neq \boldsymbol\vartheta^{(2)} $$

却满足

$$ \mathbf m(\boldsymbol\vartheta^{(1)}) \approx \mathbf m(\boldsymbol\vartheta^{(2)}), $$

那么仅仅因为参数不稳定,并不能立刻推出模型的 vanilla marks 不稳定;但它会直接影响 parameter interpretation,以及后面基于 recalibration 的 risk mapping。

同样,即使 vanilla fit 几乎完美,也不能识别所有 dynamics。不同 model classes 可以拟合几乎相同的 European surface,却对未来 smile evolution 或 path-dependent claims 给出不同结果。Gatheral 对 local volatility 与 stochastic volatility 的对比正好说明了这一点。2

因此 calibration quality 至少包含两个彼此独立的问题:

$$ \boxed{ \text{模型输出是否贴近市场?} } $$

以及

$$ \boxed{ \text{实现这种贴近的参数是否可识别、稳定?} } $$

前者是 fit,后者才是 inverse problem 的 stability / identification。

Jacobian rank、singular values 与 pseudoinverse perturbation 在这里都是 local diagnostics,不单独构成 global uniqueness theorem。

这一点还有一个直接的工程后果。

如果同一个 market snapshot 存在多个近似等价的 minimizers,那么抽象的

$$ \arg\min $$

本身是一个 set。于是下一节写

$$ \mathcal C(\boldsymbol\eta_t) $$

时,$\mathcal C$ 不能只代表 objective function;它必须代表整个实际 calibration procedure:calibration universe、parameter bounds、initialization、optimizer、regularization、numerical tolerance,以及在多个 candidate solutions 之间的 selection rule。

只有这样,calibration 才真正成为一张可以跨日期重复执行的 map。

贯穿算例(二):21% 怎样从 quotes 变成 calibration state?

沿用上一篇的 $S_t=100$、$T-t=0.5$、$r=2\%$ 与 $q=0$。假设 calibration universe 只有三份同到期 European calls:

StrikeMarket IVMarket price
9022%12.8465
10020%6.1207
11021%2.7198

为了把 calibration architecture 展开到可以手算的程度,暂时使用只有一个参数的 flat-volatility BS family。它显然不能完全拟合 smile,但足以说明 target、objective 与 calibration map 的区别。

若在 IV space 中使用 equal-weight squared error,解就是三个 quotes 的平均值:

$$ \widehat\sigma_{\mathrm{IV}} \mathrel{=} \frac{22\%+20\%+21\%}{3} \mathrel{=} 21\%. $$

若改为最小化未标准化的 dollar price errors,同一批数据给出

$$ \widehat\sigma_{\mathrm{price}} \approx 20.7798\%. $$

两个结果没有谁在抽象意义上“更正确”;它们对应不同的 objective。第一篇使用的 $21\%$ 来自前一种 convention。用它为不在 calibration universe 内的 $K=105$ call 标价,得到

$$ \mathcal M^{\mathbb Q}(S=100,K=105;\widehat\sigma_{\mathrm{IV}}) \mathrel{=} 4.2623. $$

在这个等权一参数例子中,calibration map 对三条 IV quotes 的 Jacobian 是

$$ J_{\mathcal C} \mathrel{=} \left( \frac13, \frac13, \frac13 \right). $$

一条 quote 上升 1 个 vol point,只会使 $\widehat\sigma$ 上升 $1/3$ 个 vol point;三条 quotes 平行上移 1 个 vol point,则 $\widehat\sigma$ 从 21% 变为 22%。第三篇会把这次移动作为 recalibration effect 放进 PnL bridge。

Python Ready

6. Risk calculation 还需要哪些 calibration outputs?

到目前为止,$\mathbb Q$ 数据链已经可以写成

$$ \boxed{ \boldsymbol\eta_t \xrightarrow{\;\mathcal C\;} \widehat{\boldsymbol\vartheta}^{\mathbb Q}_t \xrightarrow{\;\mathcal M^{\mathbb Q}\;} V_t^i. } $$

但如果第二篇只把

$$ \widehat{\boldsymbol\vartheta}^{\mathbb Q}_t $$

交给第三篇,整条 theory $\rightarrow$ calibration $\rightarrow$ risk 链仍然是不闭合的。

原因在于,calibrated parameters 不是脱离市场独立运动的 primitive risk factors。它们本身就是完整 calibration input 的函数:

$$ \widehat{\boldsymbol\vartheta}^{\mathbb Q}_t \mathrel{=} \mathcal C(\boldsymbol\eta_t), \qquad \boldsymbol\eta_t=(\mathbf y_t,\mathbf a_t). $$

因此还需要另外定义直接进入 marking function 的 market-state vector

$$ \mathbf z_t. $$

当前 mark 应完整写成

$$ \boxed{ V_t^i \mathrel{=} \mathcal M^{\mathbb Q} \left( \mathbf z_{t,i}; \mathcal C(\boldsymbol\eta_t) \right). } $$

这里的 notation 不是形式主义。

$\mathbf z_{t,i}$ 可能包含 spot、curve 或其他直接 pricing states;$\boldsymbol\eta_t$ 则包含用于重新确定 calibrated parameters 的 option quotes 与当日辅助输入。两者在真实系统里可能共享经济因子,所以进入 risk attribution 之前必须固定 factor partition,否则同一个 market move 可能既被作为 direct move 记一次,又通过 recalibration 再记一次。

如果 calibration map 在当前输入附近可微,本篇把它的 Jacobian 记为

$$ \boxed{ J_{\mathcal C}(\boldsymbol\eta_t) := \frac{\partial\mathcal C}{\partial\boldsymbol\eta} (\boldsymbol\eta_t). } $$

这里不提前展开 composite pricing map 的 chain rule,也不定义 PnL buckets;第三篇第 3 节会用 $J_{\mathcal C}$ 把 direct-state move 与 recalibration move 组合起来。本篇只交付这张 map、它的局部 Jacobian 以及 factor-overlap 说明。

如果 calibration procedure 在某处并不光滑——例如 optimizer 会在不同 minima 之间跳跃——那么

$$ J_{\mathcal C} $$

可能没有稳定的局部意义。此时实际系统可以交付一个明确的 bump-and-recalibrate operator:

$$ \boldsymbol\eta \rightarrow \boldsymbol\eta+\delta\boldsymbol\eta \rightarrow \mathcal C(\boldsymbol\eta+\delta\boldsymbol\eta) \rightarrow V^{\mathrm{bumped}}. $$

它保留了同一个核心事实:risk engine 必须知道 parameters 是怎样由 market quotes 重新生成的。

Risk calculation 需要的不是孤立的一组 parameters,而是一整套可复现的 marking specification:

  • 当前 $\widehat{\boldsymbol\vartheta}^{\mathbb Q}_t$ 与 current model mark;
  • complete calibration input $\boldsymbol\eta_t=(\mathbf y_t,\mathbf a_t)$ 及其中的 quote target $\mathbf y_t$;
  • per-contract market-state vector $\mathbf z_{t,i}$ 以及它与 $\boldsymbol\eta_t$ 是否共享底层因子;
  • calibration universe;
  • objective、weights 与 parameter constraints;
  • numerical tolerance 与 fit residual;
  • calibration map $\mathcal C$;
  • $J_{\mathcal C}$ 或 bump-and-recalibrate rule;
  • frozen / recalibrated marking policy。

这些对象共同把外部市场观测映射成足以驱动 pricing engine 的当前 model state,并保留市场变化进入下一次标价的路径。

$J_{\mathbf m}$ 描述 parameters 如何改变 model outputs;$J_{\mathcal C}$ 描述 calibration inputs 如何改变 calibrated parameters。前者用于 identification diagnostics,后者将在第三篇进入 recalibration risk。


结语:Calibration 不是“找到几个参数”

Calibration 的输出不是孤立的参数向量,而是一套从 market inputs 到 current mark 的可重复程序。Quote convention、data cleaning、solver、objective、constraints 与 selection rule 都属于这套程序;低 loss 只说明模型输出贴近 targets,不保证 parameters 已被稳定识别。

03 期权组合的 PnL 如何分解? 从这套 marking procedure 继续,研究同一个 market move 怎样同时改变直接 pricing states 与 calibration inputs,以及这些变化怎样进入 hedge 和 portfolio PnL。


参考文献


  1. Lucian Homescu, “Implied Volatility Surface Construction Methodologies and Characteristics”, 2011. ↩︎ ↩︎ ↩︎ ↩︎

  2. Jim Gatheral, The Volatility Surface: A Practitioner’s Guide, Wiley, 2006. ↩︎ ↩︎ ↩︎

  3. Michael Hilber et al., Computational Methods for Quantitative Finance, Springer, 2013. ↩︎