Hagan’s adjusters [Hag02] improve the pricing of financial products, even with the simplest models, by transferring model risk to some hedging instruments.
This article is the web version of the paper Smart Adjusters.
It presents an improvement of this standard approach for
the particular equity/FX structured product case, that can be applied generically and that is much faster, as slowness
is a major drawback of the standard approach. Our methodology is close to the control variates variance reduction method. This approach can therefore also be used to provide an efficient and generic choice of control variables. We provide numerical results on a traded structured product portfolio that validate our method of adjusting the price and
reducing the Monte Carlo variance.
The adjusters method has been introduced in [Hag02] while a similar approach has been presented in [Kar05]. It seems
to be rarely used through, as practitioners are faced with its computational cost. We nevertheless strongly believe in
this approach, as it allows to lower the pricing error made due to a bad model choice or calibration and the lack of
precision inherent to numerical methods. In this paper, we therefore show a way to 1) reduce the computational cost
of the original approach and 2) make it generic and applicable to equity/FX structured products.
By linearity of the pricing operator, the model price of $\Pi$ under $m$ can be written:
[
Price(m)\Pi = (m)\left(\Pi - \sum_{i=1}^{n_H} \alpha_iH_i\right) + \sum_{i=1}^{n_H} \alpha_iPrice(m)H_i
]
We suggest to minimize the model risk by using market prices instead of model prices for the hedging portfolio prices.
We therefore introduce the new operator $Price^{adj}$ defined by:
\begin{align}
\label{eq:adj_price}
Price^{adj}(m, \alpha, H)\Pi = Price(m)\left(\Pi - \sum_{i=1}^{n_H} \alpha_i H_i\right) + \sum_{i=1}^{n_H} \alpha_i Price^{mkt}(H_i)
\end{align}
where $Price^{mkt}(H)$ is the observed market price of $H$.
Note that the adjusted model risk is only supported by the first term of previous expression. For a perfectly hedged product ($\Pi = \sum_i \alpha_i H_i$),
After having briefly described the principle of the adjuster method, we describe in the next section the usual selection
rule for the hedging instruments and their associated weights. In a later section we will present how we enhance this
standard method to fulfill our goals and be compatible with our constraints.
his article, Hagan applies this method to interest rate products [Hag02]. The hedging instruments are “the natural hedging instruments” (page 56). Thus, he focuses on the weights determination but not on the hedging instruments selection itself. He computes these weights in the following way.
Let $(I_i){i \in [1; n_I]}$ be the family of calibration instruments (caplets or swaptions). Let $\sigma_i$ be the volatility associated to $I_i$, and let
$m(\sigma)$ be a model calibrated on $\sigma = (\sigma_1, \sigma_2, … ,\sigma{n_I})$.
The risk that is migrated in the Hagan’s article is the Vega risk. He therefore chooses the weights which minimize the Vega of the hedged portfolio.
Let $\alpha^$ be the chosen weights on the model $m$, given the hedging instruments $H$. $\alpha^$ verifies:
[
\alpha^* \in argmin_\alpha\left{\sum_{i=1}^{n_S} \left(\frac{\partial Price \big(m(\sigma)\big)\left(\Pi - \sum_{j=1}^{n_H} \alpha_j H_j\right)}{\partial \sigma_i}\right)^2\right}
]
This optimization problem can be written as a standard quadratic optimization problem.
We set
\begin{align*}
M_{ij} &:= \frac{\partial Price\big(m(\sigma)\big) (H_i)}{\partial \sigma_j}\
U_i &:= \frac{\partial Price\big(m(\sigma)\big) (\Pi)}{\partial \sigma_i}
\end{align*}
The problem can be written:
[
\alpha^* \in argmin_\alpha\left{ (U - M\alpha)^T(U - M\alpha) \right}
]
Depending on the number of hedging instruments relatively to the number of calibration instruments, this problem has either one or an infinite number of solutions. We note
that it is important to compute a solution when there are more calibration instruments than hedging instruments, because it is the more frequent case in practice.
When there are more calibration instruments than hedging ones, ($n_H < n_I$), the matrix $M$ is rectangular. A solution can be found using the pseudo inverse $M^+ = (M^TM)^{-1}M$
of $M$, known to provide one solution of this least square problem:
\begin{align}
\label{eq:sol1}
\alpha^* := M^+ U
\end{align}
When there are as many calibration instruments as hedging ones ($n_H=n_I$), the solution is: \begin{align} \label{eq:sol2} \alpha^* := M^{-1} U \end{align}
We note that when $M$ is invertible, $M^{+} = M^{-1}$. Then, \eqref{eq:sol1} and \eqref{eq:sol2} can be rewritten $\alpha^* = M^+ U$
The adjusted price operator is then
[
Price^{adj}\big(m(\sigma), \alpha^*, H\big)
]
using $Price^{adj}$ defined in \eqref{eq:adj_price}.
Although previous approach is powerful for pricing, risk management and hedging, it has two major drawbacks: firstly, it requires to build a ``natural hedging portfolio''. Thus, it requires exogenous financial expertise to be used, and cannot be implemented in a generic way, whatever the input contract. Secondly, it is computationally very expensive, which makes this approach a potential candidate for risk management and hedging, but difficult to justify in a pricing only context, as competitive more powerful unadjusted models exist, that provide results of similar quality at the same or smaller computational cost. Previous approach necessitates indeed computation of a lot of vega, which is very expensive: one re-calibration and one repricing per vega, implying a total of $n_I + 1$ calibrations and pricings (total pricing time multiplied by $n_I + 1$).
Our goal is therefore to enhance the previous classical approach to make it generic, fast, and adapted to equity/FX structured product.
We suggest to achieve this goal by replacing the standard Vega minimization by a variance minimization. More precisely, we look at the variance of
the sum of the cash flows capitalized at maturity. Let $X_T(m)$ be the operator that capitalizes all the flows at $T$ under model $m$:
[
X_T(m)(\Pi) = \sum_{i=1}^{n_t} \Phi_i(\mathcal S_j(m)(t \leq t_i)_{j=1..n_S}) \frac{P(0, t_i)}{P(0, T)}
]
Where $\mathcal S(m)$ is the trajectory of $S$ under the risk free probability of model $m$.
We therefore look for
[
argmin_\alpha \left{Var{X_T(m)\left(\Pi - \sum_{i=1}^{n_H} \alpha_i H_i\right)}\right}
]
with $T = t_{n_t}$, the maturity of the contract.
We note that minimizing the historical variance is a standard way to build a hedging portfolio. We also note that under the usual modeling assumptions,
the risk neutral probability and the historical one are equivalent, which implies that $\mathrm {Var}_\mathbb P(X) = 0 \Leftrightarrow \mathrm {Var}_Q P(X) = 0$.
As a consequence, if $\Pi$ can be perfectly statically hedged with $(H_i)$, then the solution of the new approach will be a perfect hedge.
We also remark that this approach corresponds to control variables weight finding (see for instance [Gla04]. Thus, it is much faster than the standard approach when the pricing is made using a Monte Carlo method. Furthermore, a software implementation that handles control variables for variance reduction can easily be extended to support our proposed adjusters.
Let
\begin{align*}
&\Sigma_\Pi = Var{X_T(m)\Pi}\
&\Sigma_H \text{ the covariance matrix of } X_T(m): (\Sigma_H)_{i, j} = Cov\left(X_T(m)H_i, X_T(m)H_j\right)\
&\Sigma_{\Pi, H} \text{ the column vector such as } (\Sigma_{\Pi, H})_i = Cov\left(X_T(m)\Pi, X_T(m)H_i\right)
\end{align*}
The variance of the hedged portfolio is:
[
Var{X_T(m)\left(\Pi - \sum_{i=1}^{n_H}\alpha_iH_i\right)} = \Sigma_\Pi + \alpha^T\Sigma_H \alpha - 2\alpha^T\Sigma_{\Pi, H}
]
So that the solution is:
\begin{align}
\alpha^* &= argmin_\alpha \left(\Sigma_\Pi + \alpha^T\Sigma_H \alpha - 2\alpha^T\Sigma_{\Pi, H}\right)\nonumber \
\Rightarrow \alpha^* &= \Sigma_H^{-1}\Sigma_{\Pi, H}
\end{align}
We assumed that $\Sigma_H$ is invertible, which should often be the case in practice. However, when it is not the case one can still replace $\Sigma_H^{-1}$ with $\Sigma_H^{+}$.
We emphasize that to be efficient, this method must be used within a Monte Carlo pricing, so that the required covariances can be computed in the main pricing loop.
Only one underlying’s trajectory is shifted, the others remain unchanged:
\begin{align}
\begin{split}
\label{eq:orthogonal}
\Phi^H_{j_0}(s) &= \sum_{i=1}^{n_t} \Phi_i\left(\left(F_j(0, t)\right)_{t \leq t_i, j \neq j_0}, \left(F_{j_0}(0, t)e^{y t}\right)_{t \leq t_i}\right)\frac{P(0, t_i)}{P(0, T)}\
y &= \frac{\log\left(s/F_{j_0}(0, T)\right)}{T}
\end{split}
\end{align}
All underlyings move parallely:
\begin{align}
\begin{split}
\label{eq:parallel}
\Phi^H_{j_0}(s) &= \sum_{i=1}^{n_t} \Phi_i\left(\left(F_j(0, t)e^{yt}\right)_{t \leq t_i, 1 \leq j \leq n_S}\right)\frac{P(0, t_i)}{P(0, T)}\
y &= \frac{\log\left(s/F_{j_0}(0, T)\right)}{T}
\end{split}
\end{align}
The underlying moves are computed using the ``$\beta$'':
\begin{align}
\begin{split}
\label{eq:beta}
\Phi^H_{j_0}(s) &= \sum_{i=1}^{n_t} \Phi_i\left(\left(F_j(0, t)e^{\beta_j(t) y t}\right)_{t \leq t_i, j \neq j_0}, \left(F_{j_0}(0, t)e^{y t}\right)_{t \leq t_i}\right)\frac{P(0, t_i)}{P(0, T)}\
y &= \frac{\log\left(s/F_{j_0}(0, T)\right)}{T}\
\beta_j(t) &= \rho_{j, j_0}\frac{\int_0^t \sigma_{j_0}(u)du}{\int_0^t \sigma_j(u)du}
\end{split}
\end{align}
Where $\sigma_j$ is the instantaneous volatility that allows to match the ATM call prices on $S_j$.
Note that for products that pay a single flow depending on the observed level of a single underlying at the same date, the hedging instrument is precisely the product: the adjusted price will therefore be the market price of this product.
Another important remark is that this choice of hedging instrument is particularly suitable for structured product, as most of them play on a monotonous move of the underlyings (at least on
European market), whereas some derivatives plays on ``roller-coaster'' moves, like double knock-in barrier options for instance.
The Carr-Madan static replication formula requires the computation of an integral. Thus, we necessarily make a quadrature error on the market price of the hedging instruments. Furthermore,
it can be costly to compute it precisely. Then, we replace the formulas (5), (6) and (7) with a piecewise affine interpolated (and extrapolated) version:
[
\hat H_i(s_{j - 1} \leq s \leq s_j) = H_i(s_{j-1}) + \frac{H_i(s_j)-H_i(s_{j-1})}{s_j - s_{j-1}}(s - s_{j-1})
]
For $(s_j)$, we take all the points where the payoff derivative is not continuous. If the input function is not piecewise affine, we also add some points, concentrated near
high second order derivatives of the payoff (in absolute value), so that the difference between the two functions is not too high.
Thus, the weights will be a little bit different than if we used the exact functions, but the quadrature error is removed.
We note that for products with a single cash flow depending on a single underlying,
instead of having an exact hedging, whose price contains quadrature error, we use an approximated hedging, with a minimal $L^2$ error (ie with the lowest possible variance),
which is more meaningful in financial terms. Indeed, $\bar H$ can be replicated with a finite linear combination of calls, puts and a bond, like any continuous, piecewise affine payoff:
First, we choose $s_{j_0}$. We work on $\tilde H = \hat H -\hat H(s_{j0})$ so that $\tilde H(s_{j0}) = 0$.
We search $\alpha^C, \alpha^P$ so that $\tilde H = \sum_{j = 1}^{j_0} \alpha^P_j Put(s_j) + \sum_{j = j_0}^N \alpha^C_j Call(s_j)$.
Easy computation leads to:
\begin{align*}
\alpha^C_{j_0} &= \frac{\tilde H (s_{j_0 + 1})}{s_{j_0+1} - s_{j_0}} \
\forall j > j_0, \alpha^C_j &= \frac{\tilde H (s_{j + 1}) - \sum_{k=j_0}^{j-1} \alpha^C_k(s_{j+1}-s_k)}{s_{j+1} - s_j}\
\alpha^P_{j_0} &= \frac{\tilde H (s_{j_0 - 1})}{s_{j_0} - s_{j_0 - 1}} \
\forall j < j_0, \alpha^P_j &= \frac{\tilde H (s_{j - 1}) - \sum_{k=j + 1}^{j_0} \alpha^P_k(s_k-s_{j-1})}{s_j - s_{j-1}}\
\end{align*}
These weights also provide a hedge for $\hat H$, and allow to compute the market price of $\hat H$:
\begin{align}
\label{eq:hath}
Price^{mkt} \hat H = P(0, T) \hat H (s_{j_0}) + \sum_{j = 1}^{j_0} \alpha^P_j Put^{mkt}(K=s_j, T) + \sum_{j = j_0}^N \alpha^C_j Call^{mkt}(K=s_j, T)
\end{align}
The market option prices $Put^{mkt}$ and $Call^{mkt}$ in \eqref{eq:hath} can be computed in an arbitrage free way using [AH11].
A last remark is that here, we still have an interpolation error, because we use non traded option prices in our pricing. If one wants to totally remove the interpolation risk, one can use only the traded option by using the traded option strikes for $s_j$, and using $X_{T_{mkt}}$ instead of $X_T$ where $T_{mkt}$ is the traded option maturity closest to the product one, instead of the previously proposed. Thus, it will build a minimal variance hedging portfolio using only the traded options.
The previous formula works even for quanto products. However, on this case, one needs to use the quanto option prices instead of the regular option prices. Unfortunately,
the quanto option prices are model dependent. However, the quanto effect has a smaller order of magnitude than the smile. Thus, we can for instance use the following approximation
for the quanto option prices:
\begin{align*}
QuantoCall(T, K) &= P(0, T)\left[\bar F(0, T)N(d1) - KN(d2)\right]\
d1 &= \frac {\log(\bar F(0, T) / K)}{\sigma \sqrt T} + \frac{\sigma \sqrt T}{2}\
d2 &= d1 - \sigma \sqrt T\
\bar F(0, T) &= F(0, T) e^{-\rho_X \sigma(T, F(0, T)) \int_0^t \sigma_X(u)du}
\end{align*}
Where $P(0, T)$ is the cash-flow currency price of the product that pays $1$ unit of the cash-flow currency, $\sigma(T, F(0, T))$ the implied volatility of the ATM call with same maturity,
$\sigma_X$ the instantaneous underlying currency / cash-flow currency FX volatility
(deduced from ATM FX volatilities), and $\rho_X$ the underlying currency / cash-flow currency FX / underlying correlation.
As previously stated, this algorithm is really close to the standard control variates method, except that we replaced the expected model prices with market prices.
Thus, if the model matches the market option prices, our adjusters can be viewed as a convergence acceleration method. Note that in this case, there is probably a difference
between the model price of a quanto instrument and its interpolated market price.
However, our proposed <hedging instruments can still be used as generic control variables choice in a standard control variates algorithm.
In this section, we present some empirical results on a real traded structured product portfolio containing 251 products, priced on the secondary market. The first tests
show the price improvement obtained on an adjusted Black-Scholes model for the three adjuster strategies. The other tests show the convergence
improvement on a Local Volatility model, and compares the adjusted Local Volatility model with the Local Volatility with control variates, to validate
either the quanto approximation and the use of a piecewise linearization of the payoff.
For all the tests, the reference price is the Local Volatility price, with 100,000 trajectories, time step = 1day, using a weak order 2 Runge Kutta discretization [KP99].
In this paper, after presenting briefly the standard adjuster approach, we propose a modification of this method implying another choice of the weights of the calibration instruments. We propose to minimize
a variance instead of the vega, so that the algorithm corresponds to the control variable method for this choice. We show on a real portfolio that this approach dramatically reduces computational cost, and therefore takes a
negligible time of the total pricing time.
Moreover, we present a generic choice of the hedging instruments to use (with three variants to handle multi-underlyings), well suited to equity / FX structured products, making
this method fully generic.
Our tests show the efficiency of our enhanced method on a realistic structured product portfolio, priced on the secondary market. They also show that our hedging instruments are a good
choice of control variables to reduce the Monte Carlo variance, as we observe an average division by 3 of the observed standard deviation.
[AH11] Jesper Andreasen and Brian Norsk Huge. Volatility interpolation. Risk Magazine, pages 76–79, March 2011.
[CM98] Peter Carr and Dilip Madan. Towards a theory of volatility trading. In R.A. Jarrow, editor, Volatility: New Estimation Techniques for Pricing Derivatives, pages 417–427. Risk Publication, 1998.
[Gla04] Paul Glasserman. Control variates. In Monte Carlo Methods in Financial Engineering, pages 185–205. Springer, 2004.
[Hag02] Patrick S. Hagan. Adjusters: Turning good prices into great prices. Wilmott Magazine, pages 56–59, December 2002.
[Kar05] Piotr Karasinski. Mindless fitting. Isaac Newton Institute for Mathemati-cal Sciences, City Event "Modelling Philosophy", 2005.
[KP99] Peter E. Kloeden and Eckhard Platen. Explicit order 2.0 weak schemes. In Numerical Solution of Stochastic Differential Equations, pages 485–488. Springer, corrected third printing edition, 1999.