Uncertain Volatility Model
Swati Mital
University of Oxford
June 6, 2016
Abstract
This paper derives price bounds for equity option trading strategies for markets
where the volatilities are uncertain. It uses the Black-Scholes Barenblatt Equation
developed by Avellaneda et. al and implements it in C++. The code can be
downloaded from GitHub 1.
1 Robustness Property of Black Scholes Hedging
We start our analysis by inspecting the robustness property of Black-Scholes hedging in
the world where the volatility used for hedging an option is different from the realized
volatility of the underlying. We derive the robustness results from the framework provided
by El Karoui et al. in [5] and Monoyios in [3].
Let us assume that the underlying asset of an option is a stock and it follows a
Geometric Brownian Motion with mean, µt, and volatility, σt.
dStSt
= µtdt+ σtdWt (1)
Now, suppose a trader sold this option for C(0, S0) using an estimated volatility β.
Then, we already know that C(t, St) satisfies the Black Scholes PDE.
∂C(t, St)
∂t+ rSt
∂C(t, St)
∂St+
1
2β2S2
t
∂2C(t, St)
∂t2− rC(t, St) = 0 (2)
Since the trader is risk averse, he uses the proceeds from the sale of the option to
form a hedge portfolio, Xt, which consists of a delta hedge and some cash. He performs
continuous delta-hedging at times t ∈ [0, T ] until the maturity of the option. Therefore,
the total derivative of Xt is given by,
dXt =∂C(t, St)
∂SdSt + r
(Xt −
∂C(t, St)
∂SSt
)dt (3)
Define Yt = Xt−C(t, St) as the tracking error in the hedge portfolio. We now derive
the condition under which YT is positive, i.e. that the trader reports a positive P&L from
delta hedging using the volatility estimation of β. To proceed with this mathematically,
we derive the value of d(e−rtYt) using Ito’s Lemma and Equation (3) as,
1https://github.com/swatimital/QuantPricer
1
d(e−rtYt) = −re−rtYtdt+ e−rt(dXt − dC(t, St))
= −re−rtYtdt+ e−rt∂C(t, St)
∂SdSt + re−rt
(Xt −
∂C(t, St)
∂SSt
)dt− e−rtdC(t, St)
(4)
By Ito’s Lemma, we can write dC(t, St) as,
dC(t, St) =∂C(t, St)
∂tdt+
∂C(t, St)
∂SdSt +
1
2σ2t
∂2C(t, St)
∂S2dt (5)
Substituting Equation (5) in (4) and adding and subtracting C(t, St) gives,
d(e−rtYt) = −re−rtYtdt+ re−rt(Xt −
∂C(t, St)
∂SSt
)dt− e−rt∂C(t, St)
∂tdt− 1
2σ2t e−rt∂
2C(t, St)
∂S2dt
= re−rt(C(t, St)−
∂C(t, St)
∂SSt
)dt− e−rt∂C(t, St)
∂tdt− 1
2σ2t e−rt∂
2C(t, St)
∂S2dt
(6)
We now substitute for ∂C(t,St)∂t
from Equation (2) to Equation (6) to give,
d(e−rtYt) =1
2β2S2
t e−rt∂
2C(t, St)
∂S2dt− 1
2σ2t e−rt∂
2C(t, St)
∂S2dt
=1
2e−rtS2
t
∂2C(t, St)
∂S2(β2 − σ2
t )dt
(7)
Equation (7) is quite a crucial result. First note that ∂2C(t,St)∂S2 is the Gamma of a call
option. Gamma measures the change in value of option’s delta with respect to change in
value of the underlying. Long calls and puts have positive Gamma and short calls and
puts have negative Gamma. For a delta-neutral option, a long Gamma position (long
calls and puts) increases exposure to the underlying when the market rallies and reduces
exposure when stock declines.
Since Equation (7) is derived from the point of view of a trader shorting a call,
therefore, for Short Gamma positions profit is realized when the implied volatility chosen
to sell the option is greater than the realized volatility of the underlying. Conversely, for
Long Gamma positions profit is realized when the implied volatility of the purchased
option is less than the realized volatility.
This idea of estimating volatility that is higher or lower than the realized volatility is
intertwined with the idea of superhedging strategies in finance where the portfolio makes
at least the same payoff as that of the contingent claim in all states of the world.
In this paper, we develop this idea further for more complex option strategies and
look at price bounds under uncertain volatility environment where we only know the
2
bounds for volatility but not the actual volatility path for the underlying. We implement
the technique proposed by Avellaneda et al [1] and provide a C++ implementation of
their model.
3
2 Black Scholes Barenblatt PDE
We assume that the volatility for underlying is unknown but we can anticipate some
bounds on it, σmin ≤ σ ≤ σmax. We use the framework provided by Avellaneda et al in
[1] and in [2] to derive the cheapest price at which we can trade and hedge options.
2.1 Mathematical Framework
Similar to Black-Scholes model we assume that the underlying follows a Geometric Brow-
nian Motion under risk neutral class of probability measures Q with mean as the risk free
interest rate, r,
dStSt
= rdt+ σdWQ (8)
Let the derivative be characterized by a stream of cash-flows at N future dates,
t1 ≤ t2 ≤ ... ≤ tN ,
F1(St1), F2(St2), ..., FN(StN ) (9)
Let Q be the class of probability measures on the set of paths St, 0 ≤ t ≤ T , such
that in uncertain volatility market the volatility bounds are given by,
σmin ≤ σ ≤ σmax (10)
Then under no arbitrage conditions the value of this derivative should lie somewhere
between the two bounds W−(St, t) and W+(St, t).
W+(St, t) = supQEQt
[N∑j=1
e−r(tj−t)Fj(Stj)
]
W−(St, t) = infQEQt
[N∑j=1
e−r(tj−t)Fj(Stj)
] (11)
We can solve Equation (11) using Dynamic Programming and extending the Black-
Scholes PDE with a σ that is a function of the Gamma of the Derivative. This PDE is
referred as Black-Scholes Barenblatt and is given by Equations (12) and (13) where F (S)
is the final payoff at time T .
∂W (S, t)
∂t+ r
(S∂W (S, t)
∂S−W (S, t)
)+
1
2σ2
[∂2W (S, t)
∂S2
]S2∂
2W (S, t)
∂S2= 0 (12)
4
W (S, tN−1) = W (S, tN−1 + 0) + FN−1(S)
W (S, T ) = F (S, T ) = F (S)(13)
In Equation (13) the +0 on the right hand side of first equation represents the limit
from the right as t → 0 (the value at the date tN−1 immediately after the cash-flow
FN−1(StN−1) is paid out).
The upper and lower bounds of the solution to the PDE are derived by selecting σ
at each time t depending on the sign of the Gamma. Therefore, we get W+ by setting,
σ
[∂2W
∂S2
]=
{σmax if ∂2W (S,t)
∂S2 ≥ 0
σmin if ∂2W (S,t)∂S2 < 0
(14)
And, similarly, W− is obtained by setting,
σ
[∂2W
∂S2
]=
{σmax if ∂2W (S,t)
∂S2 ≤ 0
σmin if ∂2W (S,t)∂S2 > 0
(15)
Notice from Equation (12) that under conditions of constant volatility, σmax = σmin =
σ, the Black Scholes Barenblatt reduces to Black Scholes PDE.
3 Implementation
We provide implementation of the Black Scholes Barenblatt Equation in C++. Our
implementation makes heavy use of Generic Programming using C++ templates and
Boost library.
3.1 Recombining Trinomial Trees
Trinomial Trees are a popular finite-difference computational scheme for pricing options.
We use them to discretize the evolution of the underlying assets through time and space.
As shown in Figure (1), at a given time, t, the price of stock, S(t), can move to one
of the three values: US(t), MS(t), or DS(t) where D < M < U . In order to make it
a recombining tree we add a constraint that UD = M2. The dotted lines in the figure
show the additional paths that would lead to the same node in the recombining tree.
We assume a time horizon of 0 ≤ t ≤ T and divide it into N trading periods such that
∆t = TN<< 1
5
Figure 1: Recombining Trinomial Tree Diagram
We select the jump sizes as a function of the volatility bounds for the Black-Scholes
Barenblatt model and define probabilities of jumps in Equation (17).
S(t+ ∆t) =
S(t)eσmax
√∆t+r∆t with probability pu
S(t)er∆t with probability (1− pu − pd)S(t)e−σmax
√∆t+r∆t with probability pd
(16)
where
6
pu = p
(1− σmax
√∆t
2
)
pd = p
(1 +
σmax√
∆t
2
)σ2min
2σ2max
≤ p ≤ 1/2
(17)
We have written a recursive function, BuildUnderlyingTree, as shown in Figure
3, in order to efficiently generate a recombining tree.
A node in the tree is an object of a class called Node as shown in Figure 2. This is
a C++ class that has generic templates on type of underlying asset and derivative of the
asset. This gives us flexibility to re-use this node to price different types of derivatives
using the same recombining tree.
Each node stores three shared pointers (of type boost::shared ptr) to it’s children and
a tuple of underlying asset value and an object of class BarenblattDerivative that is a
simple class which encapsulates option price and Gamma.
Figure 2: C++ Node Structure for a Trinomial Tree
A call to the recursive function BuildUnderlyingTree adds a node for a given tree
level such that the number of nodes grow polynomially and not exponentially. Hence, a
parent node US generates two offspring, U2S and MUS, a parent node MS generates a
single offspring M2S, and, finally, a parent node DS also generates two offspring, MDS
and D2S. Therefore at a given tree level n, we have 2n− 1 nodes.
7
Figure 3: C++ Function to build Trinomial Trees
There are several advantages of following the above code architecture,
• C++ Generic Types let us re-use the same code and data structure for different
types and provides flexibility in programming.
• A single Trinomial tree can be used to price multiple derivatives. We build the tree
once for a given time horizon and asset class at the start of the program and then
reuse it for pricing different options.
• The linked list style of creation of tree using shared pointers optimizes the use of
memory.
• The Node structure we have developed lets us impose different traversal techniques
on the same tree. The function, BreadthFirstTraversal, as shown in Figure (4)
8
performs a Breadth-First traversal on the Trinomial tree using a priority queue data
structure.
Figure 4: C++ Function for Breadth First Traversal on the Trinomial Tree
3.2 Derivative Pricing on the Recombining Tree
After constructing the asset price tree we compute the Black-Scholes Barenblatt upper
and lower bounds, W+ and W−, for a derivative with Equation (9) cashflows. To solve
the PDE in Equations (12) and (13) using the discrete setting, we apply the numerical
implementation technique provided by the authors in [1] and referenced by the Equations
(18), (19) and (20).
Let a node in the tree be given by (n, j) where n is the time coordinate and j is the
space coordinate. Therefore, each (n, j) goes to (n+ 1, j+ 1), (n+ 1, j) and (n+ 1, j− 1)
at the next time step. We first compute the option payoff for nodes at option maturity,
(N, j). Then apply backward induction algorithm to get the prices for the interior nodes
all the way to the root node. This is done by computing Option Gamma at the same
time as getting the price of the option at a node. Equation (18) computes the convexity,
L+ and L− for W+ and W− at a given node j and time n + 1. Then using the sign of
this convexity we solve for derivative prices at time n.
L+,jn+1 =
(1− σmax
√∆t
2
)W+,j−1n+1 +
(1 +
σmax√
∆t
2
)W+,j−1n+1 − 2W+,j
n+1
L−,jn+1 =
(1− σmax
√∆t
2
)W−,j−1n+1 +
(1 +
σmax√
∆t
2
)W−,j−1n+1 − 2W−,j
n+1
(18)
9
W+,jn = F j
n + e−r∆t
{W+,jn+1 + 1
2L+,jn+1 if L+,j
n+1 ≥ 0
W+,jn+1 +
σ2min
2σ2max
L+,jn+1 if L+,j
n+1 < 0(19)
W−,jn = F j
n + e−r∆t
{W−,jn+1 + 1
2L−,jn+1 if L−,jn+1 < 0
W−,jn+1 +
σ2min
2σ2max
L−,jn+1 if L−,jn+1 ≥ 0(20)
The C++ code shown in Figure (5) is the key part of the function, BarenblattDeriva-
tivePricer::GetPrice that given derivative cashflows, computes the derivative price
bounds by solving the PDE using above equations.
Figure 5: C++ Function (snippet) for solving BSB PDE
10
4 BSB Bounds for Vanilla Options
In this section, we show by way of example how the upper and lower bounds obtained
from BSB2 equation for vanilla put and call options are the same as obtained from Black-
Scholes by using the extreme volatilities.
We saw earlier when investigating the Robustness property of Black-Scholes Hedging
in Section 1 how a risk averse agent who is delta-hedging will select the highest volatility
when selling options (short Gamma) and lowest volatility when buying options (long
Gamma).
Figure 6: Convexity of Call and Put Options
Now, the volatility function in BSB equation is equal to σmin or σmax depending on
the sign of convexity of an option as referenced in Equations (14) and (15). We also know
that long calls and puts have positive convexity or long Gamma. Therefore, for these
options,
∂2W (S, t)
∂S2≥ 0 =⇒ W+ = Black-Scholes(σmax)
∂2W (S, t)
∂S2≥ 0 =⇒ W− = Black-Scholes(σmin)
(21)
Hence, profit is realized by selecting the lowest volatility corresponding to W− for
2Black-Scholes Barenblatt
11
long vanilla options. Similarly, for short calls and puts profit is realized by selecting the
highest volatility corresponding to W−.
∂2W (S, t)
∂S2< 0 =⇒ W+ = Black-Scholes(σmin)
∂2W (S, t)
∂S2< 0 =⇒ W− = Black-Scholes(σmax)
(22)
We computed the BSB prices for a call struck at K = 90.0 with σmin = 10% and
σmax = 40% and confirmed that the reconciliation with Black-Scholes bid and ask prices
according to Equation (21) hold as shown in Figure 7 where the BSB and Black-Scholes
prices coincide.
Figure 7: BSB Bounds for long Call σmin = 10%, σmax = 40%, risk-free rate=5%, T = 1
year, K = 90.0
5 BSB Bounds for Mixed Convexity Portfolios
In this section, we see the bounds computed by the Black-Scholes Barenblatt Equation
for portfolio of mixed convexity options.
12
5.1 Calendar Spread Trading Strategy
A calendar spread strategy is created by using options with same underlying stock but
different option maturities. It can be created by selling near-term call/put and buying
long-term call/put. A long calendar spread is used by traders who expect the prices to
expire out of money or just at the money of the near month option. As the time decay of
near month options is at a faster rate than longer term options, their long term options
still retain much of their value.
In the example in Figure 8, we go long 1 call struck at $90 with 1 year to maturity
and short 1 call struck at $100 with 6 months to maturity. The outer dotted lines are
the bid/ask prices computed by pricing using Black-Scholes formula. For the the upper
bound, we price the long call with σmax and short call with σmin. Similarly for Black-
Scholes lower bound we price the long call with σmin and short call with σmax. The middle
dotted line is created by pricing both calls with σmid.
The thick lines are bounds created by solving the Black-Scholes Barenblatt Equation
using the Trinomial Tree implementation technique described earlier. The BSB Equation
gives tighter bounds on the bid and the ask prices for an option with mixed convexity
and is better suited for hedging away the volatility risk. Therefore, a risk-averse agent
can apply a hedge that gives the highest value of the derivative in the worst case and the
lowest value of the derivative in the best case corresponding to the bounds found by the
BSB Equation.
Notice the spread between the bid and ask values corresponding to pricing using
Black-Scholes near the $95 strike. It is much higher ($17.34) than what is given by BSB
equation ($9.70).
13
Figure 8: BSB Bounds for a Calendar Spread σmin = 10%, σmax = 40%, risk-free rate=5%
Figure 9: Numerical Values Corresponding to Calendar Spread for different stock prices
S
14
5.2 Bullish Call Spread Trading Strategy
A Bull Call Spread is an option trading strategy that involves buying a number of at-the-
money (ATM) call options at a lower strike and selling the same number of out-the-money
(OTM) calls at a higher strike. By shorting the OTM or ATM call options the option
trader reduces the cost of establishing a bullish position but forgoes profit when the price
skyrockets since the maximum profit is capped at the difference between the two strike
prices.
The Black-Scholes approach for computing the bid/ask and mid values for this call
spread is obtained by,
• Buying the call at lower strike at σmax and selling the call at higher strike at σminas given by the upper dotted line in Figure 10.
• Buying the call at lower strike at σmin and selling the call at higher strike at σmaxas given by the lower dotted line in Figure 10.
• Pricing both the call options at σmid as given by the middle dotted line in Figure
10.
In contrast to the Black-Scholes approach, the BSB prices the entire portfolio as a
whole and gives tighter bounds on the option price. This is particularly noticeable when
the stock price is near the strikes. For example, when the S(t) = 95 which is mid-way
between the low and high strikes of 90 and 100 respectively, the Black-Scholes spread
between the bid and ask values is $14.716 whereas for BSB it is $4.636. These tighter
bounds reduces the volatility risk and protect against the future volatility movements.
15
Figure 10: BSB Bounds for a Bull Call Spread σmin = 10%, σmax = 40%, risk-free
rate=5%
Figure 11: Numerical Values Corresponding to Call Spread for different stock prices S
16
6 Conclusion
In this paper, we have recreated, analyzed and compared the results of pricing complex
option trading strategies in markets with uncertain volatility using Black-Scholes Baren-
blatt versus Black-Scholes technique. We have found that BSB reduces volatility risk for
portfolios with mixed convexity and reduces to Black-Scholes pricing for vanilla call and
put options.
References
[1] Avellaneda M., Levy A., Paras A. Pricing and hedging derivative securities in markets
with uncertain volatilities. Applied Mathematical Finance, 2:2, 73-88.
[2] Avellaneda M., Paras A.. Managing the Volatility Risk of Portfolios of Derivative
Securities: the Lagrangian Uncertain Volatility Model. Applied Mathematical Finance,
3, 21-52, 1996.
[3] Monoyios M. Stochastic volatility. Mathematical Institute, University of Oxford, 2007
[4] Martini C., Jacquier A. The Uncertain Volatility Model. Imperial College, London
[5] El Karoui N., Jeanblanc M., Shreve S.. Robustness of the Black and Scholes formula.
Mathematical Finance, Vol 8 (2), 1998.
17