In this section, we describe the methodology of calibration of the rough Volterra models to real market data and we focus on the robustness and sensitivity analysis.
3.1 Calibration to market data
Model calibration constitutes a way to estimate model parameters from available market data. The alternative approach suggests estimating the parameters directly from time series data such as for example Gatheral et al. (
2018) did for the Hurst parameter. We understand model calibration as the problem of estimating the model parameters by fitting the model to market data with pre-agreed accuracy.
Mathematically, we express the calibration problem as an optimization problem
$$\begin{aligned} \inf _\Theta G(\Theta ), \quad G(\Theta ) = \sum _{i=1}^N w_i[C_i^\Theta (T_i, K_i) - C_i^\text {mkt}(T_i, K_i) ]^2, \end{aligned}$$
(12)
where
\(C_i^\text {mkt}(T_i, K_i)\) is the observed market price of the
ith option,
\(i=1,\ldots ,N\), with time to maturity
\(T_i\) and of strike price
\(K_i\), while
\(w_i\) is a weight and
\(C^\Theta (T_i, K_i)\) denotes the option price computed under the model with a vector of parameters
\(\Theta \). For
\(\alpha \)RFSV, we have
\(\Theta = [\sigma _0, \rho , H, \xi , \alpha ]\).
In fact, the representation of the calibration problem in (
12) is a non-linear weighted least squares problem. To obtain a reasonable output, we have to assume that the market prices are correct, i.e., there is no inefficiency in the prices, which is usually not the case, especially for options being further ITM or OTM. To fix this, let us assume that the more an option is traded, the more accurate the price is. We can then weight the importance of a given option in the least squares problem by the traded volume of the given option. However, there is also another, and in fact a more convenient and popular way to implement such weights. We can get the information of uncertainty about the price of an option from its bid-ask spread. The greater the bid-ask spread, the more uncertainty (and usually less trading volume) there is about the price. Therefore, we will use a function of bid and ask prices for the weights:
\(w_i = g(C_i^{\text {bid}} - C_i^{\text {ask}})\), where
g(
x) can be, for example,
\(1/{x^2}, 1/\left| x\right| , 1/\sqrt{x}\), etc. Based on the empirical results (Mrázek et al.
2016), we will consider only the case
\(g(x)=1/x^2\).
Because the objective function is non-linear, we cannot solve the problem analytically as in the case of standard linear regression. Hence, we revert to iterative numerical optimizers.
For the minimization of (
12), we use the MATLAB function
lsqnonlin()
that implements an interior trust region algorithm, described by Coleman and Li (
1996). The algorithm assumes, among other things, that the target function is convex. However, we cannot even show the convexity of the target function since we have no analytical expression to describe it. Therefore, if the algorithm ends up in a local minimum, it is not guaranteed that it is the global minimum.
In fact, the target function can have more than one local minimum (the source is the non-linearity of the model price function). To determine the initial point for gradient-based
lsqnonlin()
, we use another MATLAB function
ga()
that implements a genetic algorithm minimization approach. It deploys a predefined number
1 of initial points across the domain of the function and then, each point serves as an initial condition for minimization that is performed for a pre-defined number of steps. Based on the genetic rules of random mutation, crossbreeding, and preservation of the fittest, the most successful points are preserved, perturbated by a random mutation, and crossbred among themselves. This approach (Mrázek et al.
2016) has been shown to produce sound results.
To measure the quality of the fit of a calibrated model, we use the following metrics. Having
N options in the data set, we denote
\(C^\text {mkt}_i\) the market price of the
ith option and
\(\tilde{C}_i\) the estimated price of the
ith option based on the calibrated model. Denoting
\(S_0\) the spot price, the first metric is the
average relative fair value (ARFV) and the second one is the
maximum relative fair value (MRFV). They can be expressed as
$$\begin{aligned} ARFV = \frac{1}{N} \sum _{i=1}^N \frac{\left| \tilde{C}_i - C^\text {mkt}_i \right| }{ S_0}, \qquad MRFV = \max _{i=1,\ldots ,N} \frac{\left| \tilde{C}_i - C^\text {mkt}_i \right| }{ S_0}. \end{aligned}$$
It is worth to mention that these measures offer a better error understanding than the originally used
average absolute relative error (AARE) and
maximum absolute relative error (MARE)
$$\begin{aligned} AARE = \frac{1}{N} \sum _{i=1}^N \frac{\left| \tilde{C}_i - C^\text {mkt}_i \right| }{C^\text {mkt}_i}, \qquad MARE = \max _{i=1,\ldots ,N} \frac{\left| \tilde{C}_i - C^\text {mkt}_i \right| }{C^\text {mkt}_i}. \end{aligned}$$
3.2 Robustness analysis
We calibrate the \(\alpha \)RFSV model the way described in the previous section to a real market dataset. In the ideal hypothetical case, all combinations of strikes and times to maturity for a given option would be available, i.e., we would have a continuous price surface to which we would calibrate a selected model. However, in reality, we have only a finite number of different options available to trade and moreover, the combinations of strikes and times to maturities (we call this option data structure) changes and even the number of combinations itself changes over time. Therefore, the obtained coefficient estimates can differ, should the model calibration be sensitive to the option data structure.
In this paper, we understand
robustness as the property of a model that conveys the sensitivity of the model being calibrated to changes in the option structure. To study the robustness of the
\(\alpha \)RFSV model, we use the methodology suggested by Pospíšil et al. (
2019). Therefore, our results of the robustness analysis of the
\(\alpha \)RFSV model are comparable with those of the Heston, Bates, and the approximate fractional stochastic volatility jump diffusion (AFSVJD) model, presented in the referenced paper.
2
To analyze robustness, we have to simulate the changes in the option structure. To do this, we employ bootstrapping of a given option structure. Bootstrapping is a technique when random samples are selected with replacement from the initial dataset. For example, to bootstrap the data set \((X_1, X_2, \ldots , X_6)\), we need to generate uniformly distributed random integers from \(\{1,2,\ldots ,6\}\). Suppose the realization is \(\{2,3,5,4,4,3\}\). Then, the obtained bootstrapped sample is \((X_2, X_1, X_5, X_4, X_4, X_3)\).
Mathematically, an option structure is the set of all the combinations of strikes K and times to maturity T available for trading in a given day. Having market data consisting of N options, the set \(\mathcal {X} = \{(K_i, T_i), i = 1, \ldots , N \}\) is the option structure for the given day where each option has the market price \(C^\text {mkt}_i = C^\text {mkt}(K_i, T_i)\).
By bootstrapping \(\mathcal {X}\) in total of M times, we obtain M new option structures \(\mathcal {X}_1, \ldots , \mathcal {X}_M\). Then each \(\mathcal {X}_j\), together with the option prices from the initial dataset assigned to the corresponding combinations of strikes and times to maturities, produces bootstrapped sample \(B_j\). Next, we calibrate the model separately to each \(B_j\) and obtain estimates of the model parameters and model prices. Let us denote \(\tilde{\Theta }_j\) the parameter estimates obtained from the bootstrapped sample \(B_j\), and \(\tilde{C}^j=[\tilde{C}^j_1, \ldots , \tilde{C}^j_N]\), where \(\tilde{C}^j_i = \tilde{C}^j_i(K_i,T_i)\), is the vector of corresponding model prices.
Having the results of the calibrations from
\(B_1, \ldots , B_M\), we can compute the bootstrap estimates of the parameters and models prices. The bootstrap estimate of a parameter is the mean across all the estimated parameters:
$$\begin{aligned} \hat{\Theta } = \frac{1}{M}\sum _{i=1}^{M}\tilde{\Theta }_i \end{aligned}$$
(13)
and the bootstrap estimate of a model price of the
ith option is
$$\begin{aligned} \hat{C}_i = \frac{1}{M}\sum _{j=1}^{M} \tilde{C}^j_i. \end{aligned}$$
Next, we look at the variance of the errors of the price estimates of the
ith option
\(\left| \tilde{C}^j_i - C^\text {mkt}_i \right| \). However, to be able to better compare the variances among different options, we normalize the error. Then, let us denote
$$\begin{aligned} V_i = {\text {Var}}\left[ \frac{\left| \tilde{C}^j_i - C^\text {mkt}_i \right| }{C^\text {mkt}_i} \right] \end{aligned}$$
(14)
the variance of the normalized errors of the
ith option. It is also useful to examine the
bootstrap relative error (BRE) for the
ith option:
$$\begin{aligned} BRE_i = \frac{\left| \hat{C}_i - C^\text {mkt}_i \right| }{ C^\text {mkt}_i } = \frac{\left| \frac{1}{M}\sum _{j=1}^{M} \left( \tilde{C}^j_i - C^\text {mkt}_i \right) \right| }{ C^\text {mkt}_i }. \end{aligned}$$
(15)
We analyze variation in coefficients visually by plotting a scatter plot matrices. Denoting
d the number of model coefficients being calibrated, the scatter plot matrix is a
\(d \times d\) matrix, where histograms for each coefficient are on the diagonal, and 2D scatter plots of corresponding values of coefficients elsewhere. Hence, from a scatter plot matrix, we get a grasp of the distributions of coefficients and also whether there is any dependence between pairs of coefficients and variation in the estimates.