First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps,...

42
First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral Outline of Session 5 Spanning generalized European payos The log contract Variances swaps and gamma swaps The VIX index VIX futures and options VVIX Joint modeling of SPX and VIX Volatility derivatives In this session, we will investigate the pricing and hedging of claims that have realized volatility or variance (quadratic variation) as underlying. We might expect volatility derivatives be very exotic and therefore hard to price and hedge It turns out that in some respects, they are amongst the safest and easiest. In our survey of volatility derivatives, we will encounter some of the most elegant constructions in financial mathematics. Spanning generalized European payos As usual, we assume that European options with all possible strikes and expirations are traded. We will show that any twice-dierentiable payoat time may be statically hedged using a portfolio of European options expiring at time . T T

Transcript of First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps,...

Page 1: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

First Baruch Volatility Workshop

Session 5: Variance swaps, gamma swaps, VIX, and VVIXInstructor: Jim Gatheral

Outline of Session 5Spanning generalized European payoffsThe log contractVariances swaps and gamma swapsThe VIX indexVIX futures and optionsVVIXJoint modeling of SPX and VIX

Volatility derivativesIn this session, we will investigate the pricing and hedging of claims that have realized volatility orvariance (quadratic variation) as underlying.

We might expect volatility derivatives be very exotic and therefore hard to price and hedgeIt turns out that in some respects, they are amongst the safest and easiest.

In our survey of volatility derivatives, we will encounter some of the most elegant constructions infinancial mathematics.

Spanning generalized European payoffsAs usual, we assume that European options with all possible strikes and expirations are traded.

We will show that any twice-differentiable payoff at time may be statically hedged using aportfolio of European options expiring at time .

TT

Page 2: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Proof from [Carr and Madan]The value of a claim with a generalized payoff at time is given by

Integrating by parts gives

... and integrating by parts again gives

(1)

Then, with ,

(2)

Equation (1) shows how to build any curve using hockey-stick payoffs (if is twice-differentiable).

[2]

g( )ST T

g( )ST =

=

g(K) δ( − K) dK∫∞

0ST

g(K) δ( − K) dK + g(K) δ( − K) dK∫F

0ST ∫

FST

g( )ST = g(F) − (K) θ(K − ) dK + (K) θ( − K) dK∫F

0g′ ST ∫

Fg′ ST

g( )ST =

=

(K) (K − dK + (K) ( − K dK∫F

0g″ ST )+ ∫

Fg″ ST )+

+ g(F) − (F) [(F − − ( − F ]g′ ST )+ ST )+

(K) (K − dK + (K) ( − K dK∫F

0g″ ST )+ ∫

Fg″ ST )+

+ g(F) + (F) ( − F)g′ ST

F = 𝔼[ ]ST

𝔼 [g( )] = g(F) + dK (K) (K) + dK (K) (K)ST ∫F

0P̃ g″ ∫

FC̃ g″

g(⋅)

Page 3: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Remarks on spanning of European-style payoffsFrom equation (1) we see that any European-style twice-differentiable payoff may be replicatedusing a portfolio of European options with strikes from to .

The weight of each option equal to the second derivative of the payoff at the strike price ofthe option.

This portfolio of European options is a static hedge because the weight of an option with aparticular strike depends only on the strike price and the form of the payoff function and not ontime or the level of the stock price.

Note further that equation (1) is completely model-independent (except that there should be nojumps).

Example: European optionsIn fact, using Dirac delta-functions, we can extend the above result to payoffs which are not twice-differentiable.

For example with , and equation (2) gives:

with the last step following from put-call parity as before.

The replicating portfolio for a European option is just the option itself.

0 ∞

g( ) = ( − LST ST )+ (K) = δ(K − L)g″

𝔼 [( − L ]ST )+ =

=

=

=

(F − L + dK (K) δ(K − L))+ ∫F

0P̃

+ dK (K) δ(K − L)∫∞

FC̃

{ (F − L) + (L)P̃

(L)C̃ L < FL ≥ F

(L)C̃

Page 4: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

The log contractNow consider a contract whose payoff at time is . Then and it followsfrom equation (2) that

Rewriting this equation in terms of the log-strike variable , we get the promising-lookingexpression

(3)

with

representing option prices expressed in terms of percentage of the strike price.

Variance swapsAssume zero interest rates and dividends. Then and applying Itô’s Lemma, path-by-path

(4)

The second term on the RHS of equation (4) is immediately recognizable as half the total variance(or quadratic variation) over the interval .

The first term on the RHS represents the payoff of a hedging strategy which involves maintaining aconstant dollar amount in stock (if the stock price increases, sell stock; if the stock price decreases,buy stock so as to maintain a constant dollar value of stock).

Since the log payoff on the LHS can be hedged using a portfolio of European options as notedearlier, it follows that the total variance may be replicated in a completely model-independentway so long as the stock price process is a diffusion.

In particular, volatility may be stochastic or deterministic and equation (4) still applies.

T log( /F)ST (K) = −g″ 1/ST2∣∣ =KST

𝔼 [log ( )]ST

F= − (K) − (K)∫

F

0

dKK2

P̃ ∫∞

F

dKK2

k := log (K/F)

𝔼 [log ( )]ST

F= − dk p(k) − dk c(k)∫

0

−∞ ∫∞

0

c(y) := ; p(y) :=(F )C̃ ey

Fey(F )P̃ ey

Fey

F = S0

log ( )ST

F= log ( ) ST

S0= d log ( ) ∫

T

0St = − dt∫

T

0

dSt

St ∫T

0

σt2

2

:= ⟨xWT ⟩T [0, T]

WT

Page 5: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

The log-strip hedge for a variance swapNow taking the risk-neutral expectation of (4) and comparing with equation (3), we obtain

(5)

We see that the fair value of total variance is given by the value of an infinite strip of Europeanoptions in a completely model-independent way so long as the underlying process is a diffusion.

Setup R environment

In [1]:

%load_ext rpy2.ipython

𝔼 [ dt] = −2 𝔼 [log ( )] = 2 { dk p(k) + dk c(k)}∫T

0σ2

tST

S0 ∫0

−∞ ∫∞

0

Page 6: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [2]:

%%R

download.file(url="http://mfe.baruch.cuny.edu/wp-content/uploads/2015/05/VW5.zip", destfile="VW5.zip")unzip(zipfile="VW5.zip")

library(quantmod)

source("BlackScholes.R") source("Heston2.R") source("plotIvols.R") source("svi.R")source("sviVarSwap.R")

# Read in SPX and VIX options data from 15-Sep-2011load("spxVix20110915.rData")load("fitQR110915.rData")

R-code to implement the variance swap log-strip

trying URL 'http://mfe.baruch.cuny.edu/wp-content/uploads/2015/05/VW5.zip'Content type 'application/zip' length 97054 bytes (94 KB)opened URL==================================================downloaded 94 KB

Loading required package: xtsLoading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

as.Date, as.Date.numeric

Loading required package: TTRVersion 0.4-0 included new data defaults. See ?getSymbols.

Page 7: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [3]:

%%R

sviVarSwap <- function(sviMatrix,texp){ nSlices <- length(texp) varRes <- numeric(nSlices) for (slice in 1:nSlices){ t <- texp[slice] volBS <- function(k){sqrt(svi(sviMatrix[slice,],k)/t)} cTilde <- function(y){BSFormula(1, 1/y, t, r=0, volBS(-log(y)))} pTilde <- function(y){BSFormulaPut(1, y, t, r=0, volBS(log(y)))/y^2} callIntegral <- integrate(cTilde,lower=0,upper=1)$value putIntegral <- integrate(pTilde,lower=0,upper=1)$value varRes[slice] <- 2*(callIntegral+putIntegral)/t # Equation (11.4) of TVS } return(varRes) # Returns vector of variance swaps in variance (vol. squared) terms}

SPX volatility smiles as of 15-Sep-2011

In [4]:

%%R

res <- plotIvols(spxOptData,sviMatrix=fitQR ) texp <- res$expiries

Page 8: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Figure 1: Implied volatility smiles of SPX options as of 15-Sep-2011. SVI fits are in orange.

Variance swap curve (from log-strip) as of 15-Sep-2011

In [5]:

%%R

sviVarSwap(sviMatrix=fitQR,texp=texp)

Comparison of log-strip with market variance swap quotes

[1] 0.08712946 0.12799535 0.11242498 0.10350108 0.11393807 0.11066689 [7] 0.11035351 0.11055505 0.11046477 0.11040482 0.11145298 0.11029756[13] 0.10708404 0.10740658

Page 9: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [6]:

%%R

sviVS <- sqrt(sviVarSwap(fitQR,texp=res$expiries))plot(texp,sviVS,ylab="Variance swap level", xlab="Expiry",type="p",pch=20,cex=2,col="dark green")points(mktVarSwapData$texp,mktVarSwapData$vsBid,col="blue",type="b",lty=2, pch=20,cex=1)points(mktVarSwapData$texp,mktVarSwapData$vsAsk,col="red",type="b",lty=2,pch=20,cex=1)

Figure 2: Green dots are computed using the log-strip of SPX options. Blue and red points are bid and askvariance swap quotes from a friendly investment bank.

Page 10: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Weighted variance swapsConsider the weighted variance swap with payoff

An application of Itô’s Lemma to

gives the quasi-static hedge:

(6)

The LHS of (6) is the payoff to be hedged.

The last term on the RHS of (6) corresponds to rebalancing in the underlying.

The first term on the RHS corresponds to a static position in options given by the spanning formula(1).

Example: Gamma swapsThe payoff of a gamma swap is

Thus and

The static options hedge is the spanning strip for .

Gamma swaps are marketed as “less dangerous” because higher variances are associated withlower stock prices.

α( ) dt.∫T

0St vt

A(x) = 2 dy dz.∫x

1 ∫y

1

α(z)z2

α( ) dt = A( ) − A( ) − ( ) d∫T

0St vt ST S0 ∫

T

0A′ Su Su

dt.1S0 ∫

T

0St vt

α(x) = x

A(x) = dy dz = {1 − x + x log x} .2S0 ∫

x

1 ∫y

1

zz2

2S0

log2S0

ST ST

Page 11: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Variance swaps and gamma swaps as traded assetsDenote the time value of the option strip for a variance swap maturing at by . That is

Similarly, for a gamma swap

Both and are random variables representing the prices of traded assets.Specifically, values of portfolios of options appropriately weighted by strike.

is given by the expectation of the log contract. is given by the expectation of the entropy contract.

R-code to implement the gamma swap log-strip

In [7]:

%%R

sviGammaSwap <- function(sviMatrix,texp){ nSlices <- length(texp) varRes <- numeric(nSlices) for (slice in 1:nSlices){ t <- texp[slice] volBS <- function(k){sqrt(svi(sviMatrix[slice,],k)/t)} cTilde <- function(y){BSFormula(1, 1/y, t, r=0, volBS(-log(y)))/y} pTilde <- function(y){BSFormulaPut(1, y, t, r=0, volBS(log(y)))/y} possibleError <- tryCatch(callIntegral <- integrate(cTilde,lower=0,upper=1)$value,error=function(e) e) possibleError <- tryCatch(putIntegral <- integrate(pTilde,lower=0,upper=1)$value,error=function(e) e) if(!inherits(possibleError,"error")){ varRes[slice] <- 2*(callIntegral+putIntegral)/t } else {varRes[slice] <- NA} } return(varRes) # Returns vector of variance swaps in variance (vol. squared) terms}

Comparison of variance swap and gamma swap curves

t T (T)t

(T) = −2 𝔼 [log ] = 𝔼 [ du ] .tST

St ∫T

tvu

∣∣∣ t

(T) = 2 𝔼 [ log ] = 𝔼 [ du ] .tST

St

ST

St ∫T

t

Su

Stvu

∣∣∣ t

(T)t (T)t

(T)t [log ]𝔼t ST(T)t [ log ]𝔼t ST ST

Page 12: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [8]:

%%R

sviVS <- sqrt(sviVarSwap(fitQR,texp=res$expiries))sviGS <- sqrt(sviGammaSwap(fitQR,texp=res$expiries))plot(texp,sviVS,ylab="Variance swap level", xlab="Expiry",type="p",pch=20,cex=2,col="red",ylim=c(.25,.36))points(texp,sviGS,type="p",pch=20,cex=2,col="dark green")

Figure 3: Red dots are computed using the log-strip of SPX options (variance swaps). Dark green dots arefrom the entropy strip of SPX options (gamma swaps). Note that with negative correlation betweenunderlying and volatility moves (or alternatively with negative skew), the gamma swap has to be lower thanthe variance swap.

Page 13: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

The leverage swapFollowing [Fukasawa] , consider the expected quadratic covariation of the underlying and the varianceswap:

Itô’s Lemma gives

so

Noting that and that , we obtain

(7)

where is the leverage swap.

Thus the leverage swap gives us the expected quadratic covariation between the underlying and thevariance swap.

This result is completely model independent (assuming diffusion), just as in the variance swap andgamma swap cases.

Expression in terms of log and entropy contracts

Going back to the expression of the variance and gamma swaps in terms of log and entropy contractsrespectively,

Leverage swap term structure

[4]

𝔼 [⟨S, (T) ] := 𝔼 [ d d (T)] .⟩T ∫T

0St t

d( (T)) = d (T) + (T) d + d d (T)St t St t t St St t

𝔼 [⟨S, (T) ] = 𝔼[ (T)] − (T) − 𝔼 [ d (T)] .⟩T ST T S0 0 ∫T

0St t

(T) = 0T d (T) = − dtt vt

𝔼 [⟨S, (T) ]⟩T = 𝔼 [ dt] − (T) ∫T

0St vt S0 0 = ( (T) − (T)) S0 0 0 = (T)S0 0

(T) = (T) − (T)0 0 0

(T) = (T) − (T) = 2 𝔼 [( + 1) log ] .t t tST

St

ST

St

Page 14: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [9]:

%%R

sviVS2 <- sviVarSwap(fitQR,texp=res$expiries)sviGS2 <- sviGammaSwap(fitQR,texp=res$expiries)sviLevSwap <- (sviGS2 - sviVS2)/sviVS2 # We normalized hereplot(texp,sviLevSwap,ylab="Variance swap level", xlab="Expiry",type="p",pch=20,cex=2,col="red")

Figure 4: Red dots are normalized leverage swaps as of 15-Sep-2011 computed using the log and entropySPX option strips.

Page 15: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Variance swap contracts in practiceA variance swap is not really a swap at all but a forward contract on the realized annualizedvariance. The payoff at time is

where is the notional amount of the swap, is the annualization factor and is the strikeprice.

Annualized variance may or may not be defined as mean-adjusted in practice.

From a theoretical perspective, the beauty of a variance swap is that it may be replicated perfectlyassuming a diffusion process for the stock price as shown in the previous section.

From a practical perspective, traders may express views on volatility using variance swaps withouthaving to delta hedge.

History of variance swapsVariance swaps took off as a product in the aftermath of the LTCM meltdown in late 1998 whenimplied stock index volatility levels rose to unprecedented levels.

Hedge funds took advantage of this by paying variance in swaps (selling the realized volatility athigh implied levels).

The key to their willingness to pay on a variance swap rather than sell options was that avariance swap is a pure play on realized volatility – no labor-intensive delta hedging orother path dependency is involved.

Dealers were happy to buy vega at these high levels because they were structurally short vega (inthe aggregate) through sales of guaranteed equity-linked investments to retail investors and weregetting badly hurt by high implied volatility levels.

T

N × A × { − } − N ×1N ∑

i=1

N

{log ( )}Si

Si−1

2

{ log ( )}1N

SN

S0

2Kvar

N A Kvar

Page 16: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Variance swaps in the Heston modelRecall that instantaneous variance follows the process:

Then

where .

Expected annualized variance is then given by .

Model-independence of variance swapExpected variance in the Heston model depends only on , and .

It does not depend on the volatility of volatility .Since the value of a variance swap depends only on the prices of European options, itcannot depend on the specific dynamics assumed (local or stochastic volatility forexample).

Dependence of variance swap on skew and curvatureIn practice, we start with a strip of European options of a given expiration and we would like toknow how we should expect the price of a variance swap to relate to the at-the-money-forwardimplied volatility, the volatility skew and the volatility curvature (smile).

d = −λ( − ) dt + η dvt vt v̄ vt‾‾√ Zt

(T)t =

=

=

𝔼 [ du ]∫T

tvu

∣∣∣ t

{ + ( − ) } du∫T

tv̄ vt v̄ e−λ (u−t)

( − ) + τ1 − e−λ τ

λvt v̄ v̄

τ = T − t

( − ) +1−e−λ τ

λ τ vt v̄ v̄

v v̄ λη

Page 17: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

A cool formula for the variance swapDefine

Intuitively, measures the log-moneyness of an option in implied standard deviations. Then,

(8)

To see this formula is plausible, it is obviously correct in the flat-volatility Black-Scholes case. A proof isgiven in [The Volatility Surface]

A generalization due to Fukusawa[Fukasawa] derives an expression for the value of a generalized European payoff in terms of impliedvolatilities.

As one application, he derives an expression for the value of a gamma swap. Define

(note instead of before). Then,

(9)

In particular, if we have a parameterization of the volatility smile (such as SVI), computing the fairvalue of the leverage swap is straightforward.

z(k) = = − −d2k

(k)σBS T‾‾√(k)σBS T‾‾√2

z

𝔼[ ] = −2 𝔼 [log ] = dz (z) (z, T)TWTST

F ∫−∞

N ′ σ2BS

[6]

[4]

z(k) = = − +d1k

(k)σBS T‾‾√(k)σBS T‾‾√2

d1 d2

2 𝔼 [ log ] = dz (z) (z)TST

FST

F ∫−∞

N ′ σ2BS

Page 18: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Dependence on skew and curvature againNow consider the following simple parameterization of the BS implied variance skew:

Substituting into equation (8) and integrating, we obtain

Skew makes no contribution to this expression, only the curvature contributes.

The intuition for this is simply that increasing the skew does not change the average level ofvolatility but increasing the curvature increases the prices of puts and calls in equation (3) andalways increases the fair value of variance.

The effect of jumpsIt can be shown that the error introduced by valuing a variance swap using the log-strip of equation(5) is of the order of the jump-size cubed.

Thus, in practice, if the log price change between resets is less than or so (as it is for stockindices), the effect of jumps is negligible.

If there are no jumps of course, the log-strip values the variance swap correctly.

The VIX index (http://www.cboe.com/micro/vix/vixintro.aspx(http://www.cboe.com/micro/vix/vixintro.aspx))

In 2004, the CBOE listed futures on the VIX - an implied volatility index.

Originally, the VIX computation was designed to mimic the implied volatility of an at-the-money 1month option on the OEX index. It did this by averaging volatilities from 8 options (puts and callsfrom the closest to ATM strikes in the nearest and next to nearest months).

The CBOE changed the VIX computation: “CBOE is changing VIX to provide a more precise androbust measure of expected market volatility and to create a viable underlying index for tradablevolatility products.”

(z) = + α z + βσ2BS σ2

0 z2

𝔼[ ] = T + βTWT σ20

β

5%

Page 19: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

The new VIX formulaHere is the later VIX definition (converted to our notation) as specified in the CBOE white paper:

(10)

where is the price of the out-of-the-money option with strike and is the highest strike below theforward price .

We recognize (10) as a straightforward discretization of the log-strip and makes clear the reason why theCBOE implies that the new index permits replication of volatility.

Specifically, (with obvious notation)

One possible discretization of this last expression is

as in the VIX specification (3). Full details of the CBOE VIX computation are given inhttps://www.cboe.com/micro/vix/vixwhite.pdf (https://www.cboe.com/micro/vix/vixwhite.pdf).

VI = ( ) −X2 2T ∑

i

ΔKi

K2i

Qi Ki1T [ − 1]F

K0

2

Qi Ki K0F

VI TX2

2=

=

=:

=

P(K) + C(K)∫F

0

dKK2 ∫

F

dKK2

P(K) + C(K) + (P(K) − C(K))∫K0

0

dKK2 ∫

K0

dKK2 ∫

F

K0

dKK2

Q(K) + (K − F)∫∞

0

dKK2 ∫

F

K0

dKK2

Q(K) + dK (K − F)∫∞

0

dKK2

1K2

0∫

F

K0

Q(K) − .∫∞

0

dKK2

1K2

0

( − F)K02

2

VI = ( ) −X2 2T ∑

i

ΔKi

K2i

Qi Ki1T [ − 1]F

K0

2

Page 20: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

VIX as of 15-Sep-2011To proxy the VIX index, we interpolate the log-strips of SPX options. The near and far SPX option strips arecomputed and disseminated by the CBOE with tickers VIN and VIF respectively. Here is a screenshot fromBloomberg:

The near and far slices are the third and fourth expirations as of 15-Sep-2015:

In [10]:

%%R

print(texp[3:4]*365.25)sqrt(sviVS2[3:4])

Computations are very close!

[1] 14 36[1] 0.3352983 0.3217158

Page 21: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

VIX futures and optionsA time- VIX future is valued at time as

where is around one month (or ).

A VIX option expiring at time with strike is valued at time as

Remarks on VIX futures and optionsInitially, the options were much more liquid and actively traded than the futures. Now however,volume in both futures and options is huge.

Both futures and synthetic futures (from put-call parity) used to trade at a substantial premium tothe forward-starting variance swap.

This arbitrage has come and gone over time.

Apparently, since the second quarter of 2013, there has been more vega traded in VIX than on SPX,which is now only the second biggest global market for volatility.

VIX futures and options

Note that we can span the payoff of a forward starting variance swap using VIX

options.

Recall the spanning formula:

In this case, so

can be computed using put-call parity or observed directly as the VIX futures price.We need to interpolate and extrapolate out-of-the-money option prices to get theconvexity adjustment.

T t

𝔼 [{ } ][ ds]𝔼T ∫T+Δ

Tvs

‾ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

√∣

∣∣∣ t

Δ Δ ≈ 1/12

T KVIX t

𝔼 .⎡⎣⎢⎢( − )[ ds]𝔼T ∫

T+Δ

Tvs

‾ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

√ KVIX

+∣

∣∣∣ t

⎤⎦⎥⎥

[ ds]𝔼t ∫ T+ΔT vs

𝔼 [g( )] = g(F) + dK (K) (K) + dK (K) (K).ST ∫F

0P̃ g″ ∫

FC̃ g″

g(x) = x2

[ ds] = + 2 (K) dK + 2 (K) dK.𝔼t ∫T+Δ

Tvs F2

VIX ∫FVIX

0P̃ ∫

FVIX

FVIX

Page 22: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Forward variance swaps from SPX and VIX optionsOnce again, we can compute the fair value of forward starting variance swaps in three ways:

Using variance swaps from the SPX log-stripWe just computed these variance swaps.

From the linear strip of VIX options.By interpolating market variance swap quotes.

We now compute the linear VIX strip and compare the three computations as of September 15,2011.

The VIX volatility smile as of 15-Sep-2011

In [11]:

%%R

res <- plotIvols(vixOptData)

Page 23: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Figure 5: Implied volatility smiles of VIX options as of 15-Sep-2011. Note that all smiles are upward sloping.

Interpolation and extrapolation of VIX smilesWe can’t use SVI because VIX smiles are often concave.

We choose the simplest possible interpolation/ extrapolation.Monotonic spline interpolation of mid-vols.Extrapolation at constant level.

Figure 6: The VIX one month smile with monotonic spline interpolation/ extrapolation.

First we code a function to return VIX implied volatilities with the above interpolation/ extrapolation scheme.

Page 24: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [12]:

%%R

# Idea is for each slice, comopute midvols, use stinterp to interpolate and then extrapolate at constant above and below.

library(stinepack)

vixVol <- function(ivolData, slice){ bidVols <- as.numeric(ivolData$Bid); askVols <- as.numeric(ivolData$Ask); expDates <- unique(ivolData$Texp); ############################################################################################################### # Interpolate and extrapolate vols for this slice at requested output points t <- expDates[slice] texp <- ivolData$Texp bidVol <- bidVols[texp==t] askVol <- askVols[texp==t] midVol <- (bidVol+askVol)/2 f <- (ivolData$Fwd[texp==t])[1] k <- log(ivolData$Strike[texp==t]/f) # Plot vs log-strike include <- !is.na(bidVol) kmin <- min(k[include]) kmax <- max(k[include]) # Compute and store interpolated and extrapolated vols kIn <- k[!is.na(midVol)] volIn <- midVol[!is.na(midVol)] volInterp <- function(kout){ if (kout < kmin){res <- midVol[which(k==kmin)] } else if( kout > kmax){res <- midVol[which(k==kmax)] } else res <- stinterp(x=kIn,y=volIn, kout)$y return(res) } return(function(x){sapply(x,volInterp)})}

Now compute forward-starting variance swaps from the linear strip of VIX options:

Page 25: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [13]:

%%R

vix2 <- function(ivolData, slice){ bidVols <- as.numeric(ivolData$Bid) askVols <- as.numeric(ivolData$Ask) expDates <- unique(ivolData$Texp) ############################################################################################################### # Interpolate and extrapolate vols for this slice at requested output points t <- expDates[slice] texp <- ivolData$Texp bidVol <- bidVols[texp==t] askVol <- askVols[texp==t] midVol <- (bidVol+askVol)/2 f <- (ivolData$Fwd[texp==t])[1] k <- log(ivolData$Strike[texp==t]/f) # Plot vs log-strike include <- !is.na(bidVol) kmin <- min(k[include]) kmax <- max(k[include]) # Compute and store interpolated and extrapolated vols kIn <- k[!is.na(midVol)] volIn <- midVol[!is.na(midVol)] volInterp <- function(kout){ if (kout < kmin){res <- midVol[which(k==kmin)] } else if( kout > kmax){res <- midVol[which(k==kmax)] } else res <- stinterp(x=kIn,y=volIn, kout)$y return(res) } vixVol <- function(x){sapply(x,volInterp)} # Now we use the vectorized function vixVol to compute the convexity adjustemnt cTilde <- function(y){exp(y)*BSFormula(1, exp(y), t, r=0, vixVol(y))} pTilde <- function(y){exp(y)*BSFormulaPut(1, exp(y), t, r=0, vixVol(y))} callIntegral <- integrate(cTilde,lower=0,upper=10)$value putIntegral <- integrate(pTilde,lower=-10,upper=0)$value res <- f^2*(1+2*(callIntegral+putIntegral)) return(res)}

In [14]:

%%R print(vix2n <- sapply(1:6,function(x){sqrt(vix2(vixOptData,x))})/100)

[1] 0.3349440 0.3458554 0.3413275 0.3280392 0.3424179 0.3449045

Page 26: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Compute forward variance swaps from market variance swap quotes.

In [15]:

%%R

mv <- mktVarSwapData

# Now compute forward-starting variance swaps from var swapsvsMid <- (mv$vsBid+mv$vsAsk)/2tVS <- mv$texpvsT <- function(tout){stinterp(tVS,vsMid,tout)$y}

# VIX datesvixDates <- sort(unique(vixOptData$Texp))# We need varswaps to vixDates and varswaps to vixDates + 1/12 yearwi <- vsT(vixDates)^2*vixDateswf <- vsT(vixDates+1/12)^2*(vixDates+1/12)vfs <- (wf-wi)*12sqrt(vfs)

Finally, compute forward-starting variance swaps from the log-strip of SPX options

In [16]:

%%R

spxDates <- unique(spxOptData$Texp)

vsTstrip <- function(tout){stinterp(spxDates,sviVS,tout)$y}wis <- vsTstrip(vixDates)^2*vixDateswfs <- vsTstrip(vixDates+1/12)^2*(vixDates+1/12)vfstrip <- (wfs-wis)*12sqrt(vfstrip)

Forward variance swaps as of 15-Sep-2011¶

[1] NA NA 0.3453583 0.3393008 0.3402110 0.3392514

[1] 0.3141559 0.3540109 0.3225969 0.3310889 0.3339823 0.3327148

Page 27: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [17]:

%%R

plot(vixDates,sqrt(vfs),ylim=c(.3,.4),xlab="VIX option expiry", ylab="Forward variance swap",type="p",col="dark green",pch=20, cex=2)points(vixDates, vix2n,col="blue",pch=20,cex=2)points(vixDates, sqrt(vfstrip),col="red",pch=20,cex=2)

Figure 7: Red dots are from interpolation of the SPX log-strip; green dots are forward variance swapestimates from SPX variance swap quotes; blue dots are forward variance swap estimates from the linearVIX option strip.

Page 28: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Consistency of forward variance swap estimatesForward variance swap estimates from SPX and VIX are very consistent on this date.

Sometimes, VIX futures trade inconsistently with the forward-starting variance swap, typically at apremium.

This arbitrage has come and gone over time.

Taking advantage as a proprietary trader is difficult because you need to cross the bid-ask so often.Buy the long dated variance swap, sell the shorter-dated variance swap.Sell the linear strip of VIX options.

However, the practical consequence is that end users should determine whether SPX options orVIX futures are richer and buy or sell accordingly.

Another date: 14-Aug-2014

In [18]:

%%R

load("spxVix20140814.rData")load("fitQR140814.rData")

SPX smiles with SVI fits as of 14-Aug-2014

Page 29: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [19]:

%%R

res <- plotIvols(spxOptData,sviMatrix=fitQR)texp <- res$expiries

Variance swap curve (from log-strips) as of 14-Aug-2014

Page 30: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [20]:

%%R

sviVS <- sqrt(sviVarSwap(fitQR,texp=res$expiries))plot(texp,sviVS,ylab="Variance swap level", xlab="Expiry",type="p",pch=20,cex=2,col="dark green")

VIX smiles as of 14-Aug-2014

Page 31: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [21]:

%%R

res <- plotIvols(vixOptData)

Forward starting variance swaps from interpolation of the SPX log-strips

In [22]:

%%R

spxDates <- unique(spxOptData$Texp)

vsTstrip <- function(tout){stinterp(spxDates,sviVS,tout)$y}wis <- vsTstrip(vixDates)^2*vixDateswfs <- vsTstrip(vixDates+1/12)^2*(vixDates+1/12)vfstrip <- (wfs-wis)*12sqrt(vfstrip)

[1] 0.1315106 0.1577442 0.1634686 0.1790174 0.1929564 0.1852402

Page 32: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Forward starting variance swaps from linear strip of VIX options

In [23]:

%%R

print(vix2n <- sapply(1:6,function(x){sqrt(vix2(vixOptData,x))/100}))

In [24]:

%%R

plot(vixDates,vix2n,xlab="VIX option expiry", ylab="Forward variance swap",type="p",col="blue",pch=20, cex=2,ylim=c(.12,.2))points(vixDates, sqrt(vfstrip),col="red",pch=20,cex=2)

Figure 6: Red dots are from interpolation of the SPX log-strips; Blue dots are forward variance swapestimates from the linear VIX option strip.

[1] 0.1303533 0.1445451 0.1567063 0.1653059 0.1710279 0.1810889

Page 33: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Consistency of forward variance swap estimatesIt seems as if variance swaps were trading at a premium to VIX options on 14-Aug-2014.

However, the front VIX options, which are the most liquid, seem to be in line.

The VVIX index (http://www.cboe.com/micro/vvix/(http://www.cboe.com/micro/vvix/))

Recall that we may compute the fair value of quadratic variation of from the log-strip of SPXoptions:

We may also compute the fair value of quadratic variation of from the log-strip of VIXoptions:

The VVIX index (VIX of VIX) is computed from the log-strip of VIX options in exactly the same waythat VIX is computed from SPX options.

Roughly speaking, the VVIX index is the fair value of one-month quadratic variation of VIX.

We then, again roughly speaking, also have a measure of the volatility of volatility.If VIX is a measure of volatility, VVIX should be a measure of volatility of volatility.

Full details of the CBOE VVIX computation are given inhttp://www.cboe.com/micro/vvix/vvixwhitepaper.aspx(http://www.cboe.com/micro/vvix/vvixwhitepaper.aspx).

log S

𝔼[⟨log S ] = −2 𝔼[log ].⟩T ST

log VIX

𝔼[⟨log VIX ] = −2 𝔼[log VI ].⟩T XT

Page 34: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

VVIX as of 14-Aug-2014Here is another screenshot from Bloomberg:

The fair value of VIX futuresAs before, we have and

Recall that may be computed from a constant strip of VIX options. As for , we have

so

which gives yet another way of assessing the fair value of VIX futures.

VIX and VVIX as of 14-Aug-2014The nearest VIX future contract (Sep-2014) closed at 13.90.

= 𝔼[VIX]FVIX𝔼[VI ] − (𝔼[VIX] = 𝔼[VI ] − = Var(VIX).X2 )2 X2 F2

VIX

𝔼[VI ]X2 Var(VIX)Var(VIX) ≈ VVI TF2

VIX X2

𝔼[VI ] ≈ (1 + VVI T)X2 F2VIX X2

Page 35: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

In [25]:

%%R

print(vixDates*365.25)vix2n

Thus our linear strip computation gives

Compare this with

In other words, VVIX proxies for the convexity adjustment in the comparison of the forward-starting SPXvariance swap with the VIX future.

Joint modeling of SPX and VIXWe had so much success with model-free computations, why should we want to model SPX andVIX jointly?

We may want to value exotic options that are sensitive to the precise dynamics of theunderlying such as barrier options, lookbacks or cliquets.

But is it possible to come up with a parsimonious, realistic model that fits SPX and VIX jointly?And even if we could, would it be possible to calibrate such a model efficiently?

This is still a hot research topic.

Information in VIX optionsAs with options on the underlying, knowledge of the following is equivalent:

The VIX implied volatility smileVIX option pricesThe VIX densityThe VIX characteristic function

The VIX option smile thus encodes information about the dynamics of volatility in a stochasticvolatility model.

For example, under stochastic volatility, a very long-dated VIX smile would give us thestable distribution of VIX (should it exist).

[1] 6 34 62 97 125 153[1] 0.1303533 0.1445451 0.1567063 0.1653059 0.1710279 0.1810889

𝔼 [VI ] ≈ .X2 14.452

(1 + VVI T) ≈ × (1 + ) = .F2VIX X2 13.92 0.78482

1214.252

Page 36: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Modeling forward varianceAs mentioned earlier in Session 1, forward variances are natural fundamental objects to considerfor volatility modeling.

Denote the variance curve as of time by . The forward variance

is given by .

A natural way of satisfying the martingale constraint whilst ensuring positivity is to imposelognormal dynamics as in Dupire’s (1993) example:

for some volatility function .

Most approaches to joint modeling of SPX and VIX are effectively extensions of this idea to n-factors.

Variance curve modelsThe idea (similar to the stochastic implied volatility idea) is to obtain a factor model for forwardvariance swaps. That is,

with for some factors and some variance curve functional .

Specifically, we want to be a diffusion so that

(4)

Note that both and are dimensional vectors.

Buehler’s affine variance curve functionalConsider the following variance curve functional:

This looks like the Svensson parametrization of the yield curve.The short end of the curve is given by and the long end by .The middle level adds flexibility permitting for example a hump in the curve.

t (T) = 𝔼 [ ds ]t ∫ Tt vs

∣∣ t

(T) := 𝔼 [ | ]ξt vT t (T) = (T)ξt ∂T t

= σ(u − t) dd (u)ξt

(u)ξtWt

σ(⋅)

(u) = G(z; u − t)ξt

z = { , , . . . , }z1 z2 zn zj G(⋅)

z

d = μ( ) dt + ( ) dzt zt ∑j

d

σ j zt W jt

μ σ n −

G(z; τ) = + ( − ) + ( − ) ( − )z3 z1 z3 e−κ τ z2 z3κ

κ − ce−c τ e−κ τ

z1 z3z2

Page 37: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Double mean-reverting (DMR) dynamicsOne model consistent with Buehler’s affine variance curve functional, is the double mean reverting(DMR) model explored in [Bayer, Gatheral and Karlsmark] which takes the form:

(5)

for any choice of .

All such models involve a short term variance level that reverts to a moving level at rate . reverts to the long-term level at the slower rate .

Discriminating between SV models using VIX optionsWe now use the DMR model to demonstrate how VIX options enable us to restrict modelingchoices.

Again the idea is that VIX option prices should allow us to discriminate between models.

Fit of Double Lognormal model to VIX optionsAs of 03-Apr-2007, from Monte Carlo simulation with parameters

we get the following fits (orange lines):

dSS

= dW dz1‾‾√ z1 = − κ ( − ) dt + d dz1 z2 ξ1 z1α Z1 z2 = − c ( − ) dt + dz2 z3 ξ2 z2

β Z2

α, β ∈ [1/2, 1]

z1 z2 κ z2z3 c < κ

= 0.0137; = 0.0208; = 0.0421; κ = 12; = 7; c = 0.34; = 0.94; α = β = 1;z1 z2 z3 ξ1 ξ2

Page 38: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European
Page 39: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Fit of Double Heston model to VIX optionsAs of 03-Apr-2007, from Monte Carlo simulation with parameters

we get the following fits (orange lines):

Pros and cons of the DMR modelOn the pro side, the DMR model fits both SPX and VIX smiles remarkably well.

On the other hand, there is no closed-form solution for European options so calibration is slow(read impractical).

= 0.0137; = 0.0208; = 0.0421; κ = 12; = 0.7; c = 0.34; = 0.14; α = β = 1/2;z1 z2 z3 ξ1 ξ2

Page 40: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

Other modeling approaches[Bergomi] uses effectively a sum of lognormals to replicate the upwards sloping smile in the VIX.

Pro: More realistic diffusion dynamics.Con: Tractability even worse than DMR; Monte Carlo is required for all computations.

[Cont and Kokholm] model SPX and VIX jointly using Lévy processes. Their specification hassimultaneous jumps in the price and volatility.

Pro: Vanilla options on VIX and variance swaps are easy to price using characteristicfunction methods. Vanilla options on SPX are computed using a mixing formula. Soreasonably tractable.Con: Dynamics are unrealistic.

The Beta SVJ model of [Sepp] uses jumps as a proxy for volatility risk premium.

According to Sepp's calibration of the Best SVJ model to the SPX volatility surface, there aresimultaneous jumps of down almost in the SPX and up in variance with rate .

This would make suitably chosen barrier options and binaries (for example) very valuable.

On the other hand, the connection between the statistical measure and the pricing measure iscarefully explored.

And there is an accurate approximation for pricing European options.

Quote from Cont and KokholmIn reference to the empirical success of the variance swap rebalancing strategy (4), Cont and Kokholm makethe following comment:

The fact that the tracking error associated with this hedging strategy is found to be small inhistorical data does not entail that the contribution of jumps to the pricing of variance swapsis negligible. This common fallacy is akin to saying that since crashes occur infrequently,deep out-of-the-money puts should be priced at zero: recent experience shows that suchmistaken assertions can be costly.

and then also

Moreover, jumps in volatility are also important in order to produce the positive “skew” ofimplied volatilities of VIX options.

[1]

[3]

[8]

30% 30% 8.6%

Page 41: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

We beg to disagree:

Using jumps as a proxy for risk premium can itself be very dangerous.

If there are large jumps under the pricing measure, we should be prepared to pay high prices forcontracts that intuitively have little value.

Consider a hyphothetical guaranteed stop-loss contract for example.

In our view, the SPX is best modeled using a continuous diffusion process.

More modeling philosophyThere are at least two very different reasons for modeling in general and joint modeling of SPX and VIX inparticular:

1. To price and hedge options in a large portfolio of exotic options.2. To assess the fair value of options in both absolute and relative terms.

Models such as the Karasinski-Sepp model have many parameters and can thus be calibrated to fitnot only vanillas but also exotic options such as cliquets.

Such models are of interest to exotic derivative book runners.However it is not clear that exotic contracts such as cliquets are being fairlypriced.

The rough volatility model that we will explore in Session 6 is an example of the second class ofmodel.

Such models are primarily of interest to traders and market makers.

SummaryVolatility derivatives are now very actively traded, not least because from a practical perspective,valuation is well-understood.

We saw that although the relationship between the valuation of options on variance and Europeanoption prices is currently only partially understood, it’s pretty clear from a practical perspective howto value them.

On the theoretical side, connections between the valuation of volatility derivatives and thedynamics of the underlying process continue to be investigated.

Page 42: First Baruch Volatility Workshop · First Baruch Volatility Workshop Session 5: Variance swaps, gamma swaps, VIX, and VVIX Instructor: Jim Gatheral ... This portfolio of European

References

1. ^ Lorenzo Bergomi, Smile dynamics III, Risk Magazine , 90-96 (October 2008).2. ^ Peter Carr and Dilip Madan, Towards a theory of volatility trading, in Volatility: New estimation

techniques for pricing derivatives, Risk Publications, Robert Jarrow, ed., 417–427 (1998).3. ^ Rama Cont and Thomas Kokholm, A consistent pricing model for index options and volatility

derivatives, Mathematical Finance 23(2) 248–274 (2013).4. ^ Masaaki Fukaswawa, The normalizing transformation of the implied volatility smile, Mathematical

Finance 22(4) 753–762 (2012).5. ^ Masaaki Fukaswawa, Volatility Derivatives and Model-free Implied Leverage, International Journal

of Theoretical and Applied Finance 17(1) 1450002 (2014).6. ^ Jim Gatheral, The Volatility Surface: A Practitioner's Guide, John Wiley and Sons, Hoboken, NJ

(2006).7. ^ Artur Sepp, Empirical calbration and minimum variance delta under log-normal stochastic

volatility dynamics, SSRN 2387845 (2014).

In [ ]: