Vous êtes sur la page 1sur 4

OVDV Commodity Volatility Surface

Commodity Implied Volatility Surface

Changrong Cui

Quantitative Research and Development, Equities Team

Jun 21, 2011

Version 2.7

OVDV Commodity Volatility Surface


This document describes the construction of the commodity volatility surfaces shown
in OVDV. The steps to construct the volatility surface are Data ltering and Implied
volatility surface construction. These steps are described in the following sections
of this document.

Data Filtering

We determine whether to use bid/ask or settlement data as follows:

1. For each maturity, the bid/ask data at the maturity is deemed to be good if at
least 10% of the quotes and at least 3 options have valid bid/ask prices.

2. Use bid/ask data to build the surface if at least 10% of maturities or at least
3 maturities have good bid/ask data; otherwise use exchange settlement data

The data is then ltered as follows:

1. Filter out maturities that are too short. Currently the threshold is 7 days.

2. Eliminate in-the-money options. We use only out-of-the-money options.

3. Eliminate last data older than 0.001 years.

4. Eliminate ”bad” price data with too small bid/ask/last prices or too wide bid/ask

5. To ensure monotonicity of prices, we take the longest increasing/decreasing

subsequence from call/put prices at each maturity and throw out the remain-

6. At a given maturity, we calculate implied volatilities from mid prices (when using
bid/ask) or from settlement prices. Then we compare each implied volatility to
the median of all implied volatilities. We eliminate those strikes whose implied
volatilities are outside a certain range. Currently the range is taken as 0.2 to
5.0 times the median volatility.

7. After all valid strikes at all maturities have been found, we check the number
of strikes at each maturity. Again, we compare the number of strikes of each
individual maturity to the median value across all maturities. If the number of
strikes is below 20% of the median, we lter out this maturity.

OVDV Commodity Volatility Surface

Smooth Implied Volatility Surface

We use the underlying futures price at each maturity as the forward price to construct
a smooth implied volatility surface.

1. We sort input data and then decide which data (bid/ask or settle) to use ac-
cording to above ltering rules. If settlement data are chosen, then we will use
settlement data at all maturities. If bid/ask data are chosen, then we will use
bid/ask data when applicable and extend to settlement for longer maturities.
Please refer to later section for details.

2. For bid/ask data, we calculate bid and ask implied volatilities for all out-of-the-
money options and let the implied volatilities used next in the regression be
the mid of bid and ask volatilities and let the spread be the difference. For
settlement data, we just calculate implied volatilities set spread to 0. We then
calculate Vega for European options using the implied volatilities.

3. On a per-maturity basis, compute Vega-weighted regression parameters a, b, c, d

on a single parabola,
f = a + b X + c X2
and double parabola
[ ]2
f = a + b X + c X 2 + d (X − Xf )+

where X is either forward moneyness or log-forward-moneyness and Xf is the

X value for an option struck at the forward, i.e., 1 for forward moneyness and
0 for log-forward-moneyness. For each of the 4 combinations of moneyness
and parameterization we compute the parameters a, b, c, d independently and
choose the case with the∑ smallest R2∑ error in the linear regression. Here the R2
error is dened as R2 = (σi − σ̂i )2 / (σi − σ̄i )2 where σi are model volatilities,
σ̂i are market volatilities and σ̄i are averages of market volatilities.

4. Implied volatility interpolation in strike dimension is calculated using above

parametric form, extrapolation in strike dimension is done by adjoining the fol-
lowing functional form in a C1 -continuous manner at the last available strike
x0 :
{ ( ( ))
a tanh b log xx+1
0 +1
+ c x in forward moneyness
σ(x) =
a tanh (b (x − x0 )) + c x in log forward moneyness

with c = Q(x0 ) and ±a + c are the asymptotic level of the wings. We set the
asymptotic level according to global behavior of market volatilities. The three
parameters a, b and c can then be determined from smooth connection to the
middle parabolic function. The bid/ask volatility spread in strike dimension is
interpolated linearly and extrapolated at.

OVDV Commodity Volatility Surface

5. Implied volatility interpolation in time dimension is done via Hermite interpola-

tion of total variance. Hermite interpolation is also applied to bid/ask volatility
spread interpolation.

6. Implied volatility and bid/ask spread extrapolations in time dimension for short
maturities are done at in forward moneyness. This implies that short maturi-
ties will have an identical smile to the rst available maturity.

7. Implied volatility extrapolation for long maturities is done as described below:

Let T be the last maturity with valid bid/ask prices. Let Vt,atm be at-the-money
implied volatility at time t. Let Vt,k be implied volatility at time t and strike k.
( )√t/T
Then for each market maturity t > T , Vt,k = VT,k̃ , where k̃ = FT Fkt .
here we have(”stretched”
) √ the smile at the maturity T according to expression
ln (k/Ft ) = ln k̃/FT t/T .

8. Extrapolation of bid/ask spread of long maturities is done via at extrapolation.

Extend volatility surface from bid/ask skews to settlement skews

For commodity option chain, it often happens that there is no valid bid/ask prices
after a certain maturity. However, there may still be a lot of long maturities with
valid yesterday's settlement prices. Here is how we connect the settlement skews
to bid/ask skews in building the whole volatility surface. Suppose there are total n
maturities. The m-th one tm is the last maturity that has valid bid/ask prices. i.e.
for all maturities ti with m < i ≤ n, there are only settlement prices. We then nd
the at-the-money implied volatilities σba from bid/ask prices and σs from settlement
prices at maturity tm . If we can't nd both at tm , then we go back to tm−1 and so on
until we can nd both σba and σs at the same maturity. Then we dene the volatility
shift ∆σ = σba − σs .
We add this ∆σ to all market implied volatilities at time ti , m < i ≤ n and use
those new volatilities to calibrate the surface.