calibration of composite asymptotic solutions to heston option prices
TRANSCRIPT
Calibration of Composite
Asymptotic Solutions to Heston
Option Prices
Frank Fung
Berkeley MFE
University of California
A thesis submitted for the degree of
MFE
March 2011
ii
Abstract
The variance process of the Heston volatility model has a singularity at
zero variance. When pricing derivatives using finite differencing under the
Heston model using an adapted mesh, the higher grid resolution near the
zero singularity could lead to very large eigenvalues in the discretization
matrix. We propose and study an alternative approach that takes advantage
of the singular perturbation nature in the Heston pricing PDE. We compute
the inner and outer solutions separately and construct a composite solution
as a weighted sum of the two by calibrating to the analytic Heston call
prices. Numerical test shows that this scheme provides satisfactory results
for widths of boundary layer that are not too small, as the deviation from
the analytic prices is reduced by a factor of 10 as compared to a single-mesh
benchmark, with only twice the CPU time.
iv
Acknowledgements
I owe my gratitude to Dr. Domingo Tavella for the guidance and insights
he has provided.
ii
Contents
List of Figures v
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Methodology 5
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Asymptotic Expansion of a Second-Order ODE Problem . . . . . . . . . 5
2.3 Asymptotic Expansion as Applied to Call Option Pricing Under Heston
Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Composite Solution Construction Using Weighting Functions . . . . . . 10
2.5 Numerical Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Numerical Results 13
3.1 Testing the Solution Patching on the Stylized Example . . . . . . . . . . 13
3.2 Calibration to Heston Call Prices . . . . . . . . . . . . . . . . . . . . . . 14
4 Conclusion 17
A Discretized PDE’s for Inner and Outer Problems 19
B Analytic Heston Call Prices 21
C Calibration Error 27
References 31
iii
CONTENTS
iv
List of Figures
1.1 Non-uniform convergence . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Exponential weighting functions . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Logistic weighting functions . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1 Composite versus exact solutions for the stylized example . . . . . . . . 13
3.2 Surface plot of composite solution . . . . . . . . . . . . . . . . . . . . . 14
3.3 Surface plot of the outer weighting function . . . . . . . . . . . . . . . . 14
3.4 Deviation from the analytic price . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Deviation from the analytic price . . . . . . . . . . . . . . . . . . . . . . 15
3.6 Effect of the width of the boundary layer . . . . . . . . . . . . . . . . . 16
v
LIST OF FIGURES
S - Stock price
v - Stock variance
r - Annualized risk-free rate
y - Annualized dividend yield
t - Physical time
W - Wiener process
X - Logarithm of stock price, log S
fx - Partial derivative of the function f
with respect to x
K - Strike of an option
T - Time to expiry of an option
δ - Scaling parameter for the inner layer
of the asymptotic expansion
ui0 - Zeroth-order term in the inner solu-
tion expansion
ui1 - First-order term in the inner solution
expansion
uo - Outer solution
u∗ - Analytic solution
ucom - Composite solution formed by the
inner and outer solutions
using - Solution computed using a single
grid ηi - Weighting function for the inner
solution
ηo - Weighting function for the outer so-
lution
vi
1
Introduction
1.1 Motivation
The Heston model [1] extends the Black-Scholes framework to option pricing under
stochastic volatility. Under the Heston model, the stock price process is specified as
the geometric Brownian process
dS = (r − y)Sdt+√vSdW 1 (1.1)
where r is the risk free rate and y is the dividend yield, while the variance process is
specified as the square root-process
dv = κ(θ − v)dt+ ξ√vdW 2 (1.2)
such that d⟨W 1,W 2
⟩= ρdt. Intuitively, κ is the mean-reverting rate, θ the long-term
average, and ξ√v the volatility of the variance process. Defining X = logS, the pricing
PDE of the Heston model is
1
2vuXX − 1
2vuX + v
1
2ξ2uvv + κ(θ − v)uv + vρξuXv + (r − y)uX − ut − ru = 0
(1.3)
One advantage of the Heston model is the availability of closed-form solution for vanilla
call option. However, as shown in [2], the zero variance level is a possible absorption
state depending on the Feller condition. The Feller condition, in the context of Eq.
(1.2), is said to be violated if2κθ
ξ2< 1 (1.4)
1
1. INTRODUCTION
A particular challenge arises when the Feller condition is violated. If the Feller
condition is violated, the zero state becomes accessible. If the boundary condition
imposed at v = 0 is such that the zero variance state is absorbing, there is leakage
in the probability mass of the variance distribution at v = 0 [3]. Although empirical
evidence shows that the violation of the Feller condition at least during certain periods
[4], we can argue from an economics point of view that prolonged, severe absorption
cannot occur at v = 0 because it leads to the unrealistic consequence of perpetually
deterministic stock price. The implication of Feller condition violation on analytic
pricing is that the analytic solution to a PDE is unique only up to a set of specified
boundary conditions, as shown in [5] in the context of zero coupon bond prices under the
CIR model. Fortunately, in numerical pricing using finite differencing under the Heston
model, the convection-only boundary condition spares us from the need to impose any
artificial condition. By imposing the convection-only boundary condition at v = 0 we
are solving a PDE that is exact at that point. However, we are still left with a technical
difficulty, namely the resolution of the PDE solution at small variances. One approach
is to use an adapted grid that has higher resolution at small variances [6, 7, 8, 9].
However, increasing the grid density would create values with larger magnitudes in
the eigenvalue spectrum, which in turns lead to poorer stability. Instead of adapted
mesh, an alternative approach is to price the instrument using two grids, as explained
as follows.
In this paper, we consider a finite difference approach to the boundary condition
problem using asymptotic expansion. We split the variance axis into two regimes.
In the outer regime, where the value of the variance is large (as compared to some
characteristic scale, as will be explained), we seek the outer solution that dominates in
this range; in the inner regime, where the value of the variance is small, we calculate the
inner solution that dominates there. A composite solution that is valid over the entire
range of variances is constructed as a weighted sum of the outer and inner solutions.
We calibrate the solution patching by pricing a vanilla call on the grid and requiring
that the error of the composite solution as compared to the closed-form Heston price
be minimized. Once we have calibrated the composite solution construction scheme,
the set of weighting functions can be used to price other instruments.
2
1.2 Literature Review
1.2 Literature Review
Singular perturbation problems have been studied extensively in many fields of engi-
neering, particularly in fluid mechanics where a boundary layer is involved [10, 11]. In
recent years, the method of solving singularly perturbed problems using asymptotic
techniques has also found its application in finance. One of such example can be found
in [12, 13, 14]. These works take advantage of the ’burstiness’ of volatility, i.e. the fact
that interest rate (or stock return) and its volatility vary on two different time scales,
to obtain a closed-form correction term that accounts for stochastic volatility in the
pricing of derivatives. The advantage of this approach is that it preserves mathematical
tractability. However, for every payoff one has to perform a new derivation, and it is
not guaranteed that the tractability is preserved for any arbitrary payoff.
Another approach to tackle singularly perturbed problem is by numerical matching
of asymptotic solutions. To facilitate the discussion, consider the situation when a
small parameter ε is multiplied to the highest-order derivative in a PDE, resulting
in a singularly perturbed problem. Since the PDE is changed substantially when ε
goes to zero (i.e. the second-order differential equation becomes a first-order one), the
convergence of the solution is not ε-uniform. Consider the following ODE problem that
we will revisit in Section 2.2:
εd2y
dx2+ b
dy
dx+ cy = 0
y(0) = 0
y(1) = 1,
(1.5)
This ODE reduces to
bdy
dx+ cy = 0 (1.6)
if ε goes to zero. As we can see in Figure 1.1, the solution to the singularly perturbed
problem converges to that of the reduced problem as ε approaches zero, except for the
point x = 0. This is in contrast with the regular perturbation problems, in which case
the solution converges ε-uniformly, and the solution that is valid for the entire range
can be expressed as a series
y(x) =
n−1∑i=0
εiYi(x) + O(εn) (1.7)
3
1. INTRODUCTION
For singular perturbation problems, one cannot use the same strategy as Eq. (1.7) of
seeking a single series that accurately describes the exact solution over the entire range
of x. Rather, one has to solve the problem in the outer regime and the inner regime
separately, then construct a composite solution out of the two solutions.
x
y(x)
Figure 1.1: Non-uniform convergence - The solution to the singularly perturbed
problem of Eq. (1.5). From top to bottom, the black dotted line, blue dotted line and red
solid line are the solutions to the problem with ε equals 0.2, 0.06 and 0.004 respectively.
Note that the solutions approaches that of the reduced problem of Eq. (1.6) except for at
x = 0.
We apply the technique of asymptotic expansion to seek an approximated solution to
the singularly perturbed problem. The paper is structured as follows. In Chapter 2 we
describe the methodology of the project. Section 2.2 introduces singular perturbation
using an ODE problem as an example. In Section 2.3, we apply the analysis to the
Heston pricing PDE. The outer and inner solutions are combined using the technique
described in Section 2.4. The detail of the numerical implementation can be found in
Section 2.5. Chapter 3 presents the numerical results with discussions. In Section 3.1
the calibration scheme is tested on the stylized ODE example. Section 3.2 shows the
main results with observation and discussion on the performance of the scheme under
various settings. Finally, we conclude the investigation in Chapter 4.
4
2
Methodology
2.1 Introduction
In this section we lay out the methodology for the investigation. We first motivate
the discussion by considering the asymptotic expansion of a second order ODE with
constant coefficients as a stylized example. We explain, using such a problem as an
example, how rescaling and solutions matching work. Then we analyze the Heston
problem with similar techniques, carefully noting how the asymptotic expansion of
Heston model deviates from the stylized example.
2.2 Asymptotic Expansion of a Second-Order ODE Prob-
lem
We study a stylized example problem that is adapted from [15]. We try to solve the
second order ODE
εd2y
dx2+ b
dy
dx+ cy = 0
y(x1) = α
y(x2) = β,
(2.1)
where ε is a small parameter, b and c are constants that do not depend on x, and
x2 > x1. As pointed out in Section 1.2, the order of the problem drops as ε → 0, which
leads to a singularity on the boundary. We handle the singularity by the following
procedure: (1) Seek the outer solution by solving the outer problem; (2) Seek the inner
5
2. METHODOLOGY
solution by solving the inner problem; (3) Create a composite solution that is valid over
the entire domain by matching the outer and inner solutions.
Outer Problem: We perform a regular expansion
yo = yo0(x) + εyo1(x) + ε2yo2(x) + · · · (2.2)
where yo is the outer solution. Substituting this regular expansion into Eq. (2.1), the
O(1) equation is
bdyo0dx
+ cyo0 = 0
yo0(x2) = β(2.3)
which has the solution
yo0(x) = βecx2/be−cx/b (2.4)
The O(ε) equation, using results from Eq. (2.4), is
bdyo1dx
+ cyo1 = −d2yo0dx2
= −c2
b2βecx2/be−cx/b
yo1(x2) = 0
(2.5)
where the boundary condition reflects the fact that the full outer solution at x2 is
dominated by yo0(x2). The solution to Eq. (2.5) is
yo1(x) =c2
b3βecx2/be−cx/b(1− x) (2.6)
Inner Problem: To expand the problem properly near the singularity, a rescaling is
required. Define
Z ≡ x
δ, (2.7)
where δ is the width of the boundary layer. With this change of variable Eq. (2.1)
becomesε
δ2d2y
dZ2+
b
δ
dy
dZ+ cy = 0
y(x1) = α
(2.8)
If δ is chosen so that O(ε) = O(δ), then
d2yi
dZ2+ b
dyi
dZ+ εcyi = 0
y(x1) = α
(2.9)
6
2.2 Asymptotic Expansion of a Second-Order ODE Problem
where yi denotes the inner solution. This rescaled problem can now be expanded as
yi = yi0(Z) + εyi1(Z) + ε2yi2(Z) + · · · (2.10)
Substituting this expansion into Eq. (2.1), the O(1) equation is
d2yi0dZ2
+ bdyi0dZ
= 0
yi0(x1) = α
(2.11)
which has the solution
yi0(Z) = α−B +Bebx1/δe−bZ (2.12)
where B is a constant to be determined. The O(ε) equation, using results from Eq.
(2.12), isd2yi1dZ2
+ bdyi1dZ
= −yi0(Z) = −(α−B)−Bebx1/δe−bZ
yi1(x1) = 0
(2.13)
with the solution
yi1(Z) = −C(1− e−bZ
)− α
bZ +
B
bZ(1− ebx1/δe−bZ
)(2.14)
where C is a constant to be determined.
Solutions Matching: We want to find a composite solution that is uniform for the
whole domain x ∈ [x1, x2]. Before we can form such a composite solution using both
outer and inner solutions, we must first determine the unresolved constants B and C
in Eq. (2.12) and (2.14). This is done by using the Van Dyke method [15, 16]. The
first step is to express the outer solution in terms of the scaled variable,
yo(Z) = βecx2/be−cδZ/b + δ
[c2
b3βecx2/be−cδZ/b(1− δZ)
](2.15)
Next, the inner solution is expressed in terms of the outer variable,
yi(x) = α−B +Bebx1/δe−bx/δ − δ
[C(1− e−bx/δ
)+
α
b
x
δ− B
b
x
δ
(1− ebx1/δe−bx/δ
)](2.16)
Van Dyke methods requires that the expansion of Eq. (2.15) up to the first order of δ,
yo(Z), be equal to the expansion of Eq. (2.16) up to the first order of δ, yi(x). Carrying
out the expansions and using Z = x/δ, it can be shown that
C =c2
b3βecx2/b
B = α− βecx2/b(2.17)
7
2. METHODOLOGY
The composite solution, which is uniform everywhere, is constructed by subtracting
the common component yo(Z) (or equivalently yi(x)) from the sum of the outer and
inner solutions, or
yc(x) = yo(x) + yi(x)− yo(Z)
= βecx2/be−cx/b + δ
[c2
b3βecx2/be−cx/b(1− x)
]
+ α−B +Bebx1/δe−bx/δ − δ
[C(1− e−bx/δ
)+
α
b
x
δ− B
b
x
δ
(1− ebx1/δe−bx/δ
)]
− βecx2/b(1− c
bx)− δ
c2
b3βecx2/b
(2.18)
2.3 Asymptotic Expansion as Applied to Call Option Pric-
ing Under Heston Model
To recap, with X = logS, the return and variance processes of the Heston model are
dX =
(r − 1
2v − y
)dt+
√vdW 1
dv = κ(θ − v)dt+ ξ√vdW 2
(2.19)
The pricing PDE of a call under the Heston model is
v
[1
2ξ2uvv
]+v [ρξuXv − κuv ]+
1
2v [uXX − uX ] +[κθuv]+[(r−y)uX−ut−ru] = 0 (2.20)
with u(X, v;T ) = (ST −K)+. Note how in Eq. (2.20) the terms are grouped into five
categories by square brackets:
1. Terms with second-order v derivatives and multiplied by v;
2. Terms with first-order v derivatives and multiplied by v;
3. Terms with zeroth-order v derivatives and multiplied by v;
4. Terms with first-order v derivatives and not multiplied by v; and
5. Terms with zeroth-order v derivatives and not multiplied by v.
8
2.3 Asymptotic Expansion as Applied to Call Option Pricing UnderHeston Model
Immediately we recognize a substantial difference from the stylized example. Here we
are dealing with a multivariable PDE with two spatial dimensions and one temporal
dimension. We would like to treat the variance v as the small parameter for power series
expansion. However, unlike ε in the stylized problem, v is a varying quantity that is not
necessarily small. Also, the solution matching procedure in the stylized example relies
on the two Dirichlet boundary conditions, while in finite difference derivative pricing
we do not have Dirichlet boundary conditions at zero variance. However, we do know
the exact price of the derivative at expiry since the price must equal the payoff on that
date. Hence in what follows we present a heuristic solution patching recipe by taking
advantage of the known derivative price at expiry.
Outer Problem: We propose to solve the full problem for the outer layer. The reason
for not having a separate outer problem that is distinct from the full problem is that
the variance v is not a small parameter in the outer layer. While we could in principle
introduce a change of variable so that the PDE is with respect to v−1 and the outer
series solution is in powers of v−1, this change of variable itself would have a singularity
at v = 0.
Inner Problem: For the inner problem, rescale the variance
W =v
δ(2.21)
Substituting the expansion
u = ui0 + vui1 + · · · (2.22)
into Eq. (2.20), it can be shown that the equation with spatial O(1) and temporal O(δ)
terms is1
2Wξ2
∂2ui0∂W 2
+ κθ∂ui0∂W
= −δ∂ui0∂t
(2.23)
The equation with spatial O(δ) and temporal O(δ2) terms is
1
2Wξ2
[W
∂2ui1∂W 2
+ 2∂ui1∂W
]+W
[ρξ
∂2ui0∂W∂X
− κ∂ui0∂W
]
+ κθ
[W
∂ui1∂W
+ ui1
]+
[(r − y)
∂ui0∂X
− rui0
]= −δ
∂ui1∂t
(2.24)
For the boundary conditions imposed on Eq. (2.23) and (2.24) in the numerical imple-
mentation, please refer to Section 2.5.
9
2. METHODOLOGY
Composite Solution Construction: As mentioned earlier, to patch the outer and
inner solutions we make use of the fact that the price of the derivative at expiry is
know exactly. For both the outer and inner problems, we start with the same initial
conditions, which is the payoff, and march back in physical time. Once the solutions
at t are computed, we would like to use the two solutions to create a single continuous
and smooth composite solution that is valid for the entire range of variance. However,
we cannot directly follow the matching procedure outlined in Section 2.2 because of the
lack of Dirichlet boundary conditions on the variance dimension. On the other hand,
we do know the desired properties of the composite solution, such as continuity and
differentiability. Most importantly, the composite solution should have the same value
as ui as v → 0 and as uo as v → ∞. Hence we propose a heuristic solution patching
method to obtain the composite solution.
2.4 Composite Solution Construction Using Weighting Func-
tions
We construct the composite solution uc as a weighted sum of ui and uo. Define ηi(v)
and ηo(v) to be the weighting functions such that
uc(v) = ηi(v)ui(v) + ηo(v)u
o(v) (2.25)
The functions ηi,o should fulfill a set of criteria, listed and explained as below.
limv→∞ηi(v) = 0 and limv→0ηo(v) = 0:
At very large (small) values of variances, the composite solution should be dominated
by the outer (inner) solution.
ηi(ηo) decreases (increases) monotonically:
There are only two limits that are being considered, the small variance limit (which is
handled by the inner solution) and the large variance limit (which is handled by the
outer solution). Any local extremum of η(v) would signify a third, intermediate regime.
ηi,o are continuous:
This is a necessary condition for the composite solution to be continuous in v.
ηi,o are smooth:
This is a necessary condition for the composite solution to be differentiable with respect
to v.
10
2.4 Composite Solution Construction Using Weighting Functions
These criteria are fulfilled by many functions. We investigate two possibilities:
exponential functions and logistic functions. The exponential weighting functions are
ηi(v) = aexp(−αv)− exp(−αvmax)
1− exp(−αvmax)
ηo(v) = bexp (β(v − vmax))− exp (β(vmin − vmax))
1− exp (β(vmin − vmax))
(2.26)
where α and β are to be determined by fitting. Note that each value of X on the grid
has a unique set of fitting parameters. The exponential weighting functions each has
only two free parameters, and they are either convex (for positive α and β) or concave
(for negative α and β) over the whole range of v. The second class of function, the
logistic weighting functions, are
ηi(v) = ah(α+ βv)− h(α + βvmax)
h(α) − h(α+ βvmax)
ηo(v) = bh(γ) + h(γ + λv)
h(γ)− h(γ + λvmax)
(2.27)
where h(x) = 1/(1+exp(−x)). In the logistic weighting functions we allow for two free
parameters, and the functions need not be convex or concave over the whole range.
x
η(x)
Figure 2.1: Exponential weighting functions - Examples of the exponential weighting
functions (a = b = 1): red decreasing solid line is ηi with α = 5; red decreasing dotted line
is ηi with α = −5; blue increasing solid line is ηo with β = 5; blue increasing dotted line is
ηo with β = −5.
11
2. METHODOLOGY
x
η(x)
Figure 2.2: Logistic weighting functions - Examples of the logistic weighting functions
(a = b = 1): red decreasing solid line is ηi with γ = −10 and λ = 20; red decreasing dotted
line is ηi with γ = 10 and λ = 20; blue increasing solid line is ηo with γ = 10 and λ = −20;
blue increasing dotted line is ηo with γ = 10 and λ = 20.
2.5 Numerical Implementation
In this section we detail the numerical implementation of the method that is developed
in Section 2.3, with emphasis on some caveats. We set up a mesh at expiry, with prices
u(XT , v, T ) equal to the known payoff of a call. We also fix the value of δ. The range
of X on the mesh should be determined by discretion depending on the behavior of the
instrument. The discretized version of the PDE’s in Eq. (2.20), (2.23) and (2.24) can
be found in Appendix A.
The boundary conditions that are imposed are as follows. For ui0 and ui1, convection-
only condition is used for the upper variance boundary. For the lower variance boundary
where W = 0, the full equation coincides with the convection-only condition, hence we
solve the full PDE on the lower variance boundary. Convection-only condition for the
X derivatives is also used for both the upper and lower X boundaries, given that Xmax
and Xmin are chosen so that they are far enough from the strike. For solving uo, exactly
the same holds for the boundary conditions for X derivatives on the Xmax and Xmin
boundaries. For the variance dimension, convection-only condition is used on both the
upper and lower boundary.
We set the initial condition to be uo(T ) = u(T ), ui0(T ) = u(T ) and ui1 = 0, where
u(T ) is the payoff of the instrument at expiry. The outer and inner solutions are solved
individually by marching. However, since the PDE for ui1 involves a source term that
12
2.5 Numerical Implementation
depends on ui0, ui0(t) has to be solved at each time step before ui1 is solved. Suppose
at τ < T we have uo(τ), ui0(τ) and ui1(τ). If [vmin, vmax] of the outer solution and
δ× [Wmin,Wmax] do not coincide, extrapolation is required to extend the inner solution
computed from finite differencing to [vmin, vmax]. Assuming the variance axis contains
n grid points, the error minimization for seeking the weighting function parameters
amounts to solving
argminΓ
n∑k=1
[u∗(vk)− ucom(vk)]2 (2.28)
where u∗ is the analytic Heston call price, Γ stands for the set of free parameters to be
optimized (i.e. {a, b, α, β} for the exponential weighting functions and {a, b, α, β γ, λ}for the logistic weighting functions), and
ucom(vk) = ηi(vk,Γ)(ui0(vk) + vku
i1(vk)
)+ ηo(vk,Γ)u
o(vk) (2.29)
is the composite solution.
13
2. METHODOLOGY
14
3
Numerical Results
3.1 Testing the Solution Patching on the Stylized Exam-
ple
In Section 2.4 we introduced a method to construct the composite solution from the
inner and outer solutions. The ODE has an exact solution
yexact(x) =e−x/2 − e−2x/ε
e−1/2 − e−2/ε(3.1)
Since the exact solution as well as the inner and outer solutions (Eq. (2.16) and Eq.
(2.15)) to the stylized example introduced in Section 2.2 are known, we can test the
proposed patching recipe by applying it to the stylized example.
As we can see from Figure 3.1, the constructed composite solution approaches the
exact one as δ decreases. This is just as expected for an approximation scheme that is
correct to the first order of δ. For large values of δ, the O(δ2) residual term becomes
significant.
3.2 Calibration to Heston Call Prices
We calibrate the weighting functions with the techniques described in Section 2.5. The
CPU time is listed in Table 3.1, and it is compared to a single-mesh FDM run that
calculates using. The quantity using is the solution computed using a single mesh, and
with the boundary condition
−ut = κθuv + (r − y)uX − ru (3.2)
15
3. NUMERICAL RESULTS
x x x
y(x)
Figure 3.1: Composite versus exact solutions for the stylized example - Con-
structed composite solution (obtained using the exponential weighting functions) are com-
pared to the exact solutions for the stylized example. The value of δ, the scaling parameter,
for the left, central and right panels are 1.9, 0.4 and 0.01, respectively. The red dotted
curves are constructed using the method outlined in Section 2.4, while the black solid
curves are the exact solutions to the ODE.
imposed on the lower variance boundary v = 0 instead of the convection-only condition.
Grid T/Δt Grid Size CPU Time (s)
Single 200 31 ×31 106
Inner and Outer 200 31 ×31 182
Single 300 51 ×51 924
Inner and Outer 300 51 ×51 1536
Table 3.1: CPU time for various settings - The CPU time required for solving the
pricing problem under different settings. The second column, T/Δt, is the number of time
steps. For pricing using the scheme with inner and outer layers, the inner and outer grids
are of the same size.
Figure 3.2 shows the composite solution ucom that is constructed using this pro-
cedure, and Figure 3.3 shows the logistic outer weighting function that is produced
by the calibration. To evaluate the performance of calibration, we compare the fitted
composite solutions ucom(v) to the analytic prices u∗(v). The details regarding the
calculation of the analytic Heston call price, as well as a table containing prices that
are used for calibration, can be found in Appendix B. Figure 3.4 shows ucom − u∗ as a
function of v for specific spot prices. For comparison we have also plotted usingu∗ on
the same graphs.
Obviously, the composite solution matches the analytic solution, which it is designed
16
3.2 Calibration to Heston Call Prices
0.526
0.708
1.164
0
0.2
0.4−0.1
0
0.1
0.2
0.3
0.4
Sv
u com
Figure 3.2: Surface plot of composite solution - The graph shows the composite
solution ucom that is calibrated using the logistic weighting function. The call option
under consideration has expiry T = 1 and strike K = 0.95. Note that the tick interval
on the spot price axis is uneven because of log scale. The parameters for the stochastic
processes are r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625, ξ = 0.24 and ρ = −0.75, and δ = 0.2.
2κθ/ξ2 = 1.085.
0.580
0.822
1.164
0
0.2
0.40
0.5
1
1.5
2
Sv
η
Figure 3.3: Surface plot of the outer weighting function - The logistic weighting
function ηo(v) as a surface plot for a range of spot prices. The call option under consider-
ation has expiry T = 1 and strike K = 0.95. The parameters for the stochastic processes
are r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625, ξ = 0.24 and ρ = −0.75, and δ = 0.05.
2κθ/ξ2 = 1.085.
17
3. NUMERICAL RESULTS
0.552
0.782
1.107
0
0.2
0.4−0.02
−0.01
0
0.01
Sv
u com
− u
*
0.552
0.782
1.107
0
0.2
0.4−0.02
−0.01
0
0.01
Sv
u sing
− u
*Figure 3.4: Deviation from the analytic price - The graphs show the deviation
from the analytic price u∗ as a function of v. The left panel shows the surface for ucom,
while the right panel shows the surface for using. The call option under consideration
has expiry T = 1 and strike K = 0.95. The parameters for the stochastic processes are
r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625, ξ = 0.24 and ρ = −0.75, and δ = 0.2 for ucom.
2κθ/ξ2 = 1.085.
to imitate, much better than using. If exponential weighting function is used instead
of logistic weighting function, the calibration performance is greatly compromised, as
shown in Figure 3.5. This can be explained by the fewer free parameters, as well as
the more rigid shape, of the exponential weighting function. The table that lists the
calibration error can be found in Appendix C.
Finally we note the effect of δ on the calibration performance. The parameter δ
is the width of the boundary layer that is chosen according to the magnitude of the
small perturbation parameter (see Section 2.2). Since the perturbation parameter in
the inner layer, v, is a changing quantity, the condition O(δ) ≈ O(v) cannot be fulfilled
if δ is chosen to be too small. Figure 3.6 illustrates this point.
18
3.2 Calibration to Heston Call Prices
0.552
0.782
1.107
0
0.2
0.4−0.2
−0.1
0
0.1
Sv
u com
− u
*
0.552
0.782
1.107
0
0.2
0.4−0.2
−0.1
0
0.1
Sv
u com
− u
*
Figure 3.5: Deviation from the analytic price - The graphs show the deviation
from the analytic price u∗ as a function of v. The left panel shows the surface calibrated
with logistic function, while the right panel shows the surface calibrated with exponential
function. The call option under consideration has expiry T = 1 and strike K = 0.95.
The parameters for the stochastic processes are r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625,
ξ = 0.24 and ρ = −0.75, and δ = 0.2. 2κθ/ξ2 = 1.085.
0.552
0.782
1.107
0
0.2
0.4−0.1
−0.05
0
0.05
0.1
Sv
u com
− u
*
0.552
0.782
1.107
0
0.2
0.4−0.1
−0.05
0
0.05
0.1
Sv 0.552
0.782
1.107
0
0.2
0.4−0.1
−0.05
0
0.05
0.1
Sv
Figure 3.6: Effect of the width of the boundary layer - The graphs show the
deviation from the analytic price u∗ as a function of v. The left panel shows the surface
with δ = 0.05, the central panel shows the surface with δ = 0.1, while the right panel shows
the surface with δ = 0.5. The call option under consideration has expiry T = 1 and strike
K = 0.95. The parameters for the stochastic processes are r = 0.06, y = 0.02, κ = 0.5,
θ = 0.0625, ξ = 0.24 and ρ = −0.75. 2κθ/ξ2 = 1.085.
19
3. NUMERICAL RESULTS
20
4
Conclusion
We studied a finite difference method to price options under the Heston volatility model.
Making use of the fact that the pricing PDE under Heston model contains highest-order
derivatives that are multiplied by v, we derived the inner problem that is valid in the
inner layer. The inner and outer problems are solved individually with FDM, and the
two solutions are combined, with either exponential or logistic weighting functions,
to form a composite solution by calibrating against the analytic Heston vanilla call
prices. The logistic weighting functions, with more degrees of freedom, outperform the
exponential counterparts. An Important observation is that the fitting scheme works
well for δ that is not too small, and the calibration performance for δ < 0.1. The
calibrated weighting functions can be used to price other instruments that do not have
closed-form solution under the Heston model.
The calibration residual errors for ITM spot prices are large, possibly because of
the difficulty in specifying a unique set of fitting parameters. An area for further
investigation is to improve the optimization process using genetic algorithm, which is
more effective in avoiding local minima.
21
4. CONCLUSION
22
Appendix A
Discretized PDE’s for Inner and
Outer Problems
Here we provide the discretized PDE’s for the interior points using central differencing
schemes. The indices i and j correspond to the variance and the log of stock price,
respectively. The variable t is the physical time. The discretized version of Eq. (2.20),
which is used in calculating the outer solution uo, is
−∂u
∂t=
[− v
ΔX2− ξ2v
Δv2− r
]uoi,j
+
[ξ2v
2Δv2+
κ(θ − v)
2Δv
]uoi+1,j +
[ξ2v
2Δv2+
κ(θ − v)
2Δv
]uoi−1,j
+
[v
2ΔX2+
(r − y − v
2
) 1
2ΔX
]uoi,j+1 +
[v
2ΔX2−
(r − y − v
2
) 1
2ΔX
]uoi,j−1
+
[ρξv
4ΔXΔv
]uoi+1,j+1 +
[− ρξv
4ΔXΔv
]uoi+1,j−1
+
[− ρξv
4ΔXΔv
]uoi−1,j+1 +
[ρξv
4ΔXΔv
]uoi−1,j−1
(A.1)
The discretized version of Eq. (2.23), which is used in calculating the inner solution
ui0, is
−δ∂u
∂t=
[− ξ2W
ΔW 2
](ui0)i,j +
[ξ2W
2ΔW 2+
κθ
2ΔW
](ui0)i+1,j +
[ξ2W
2ΔW 2− κθ
2ΔW
](ui0)i−1,j
(A.2)
23
A. DISCRETIZED PDE’S FOR INNER AND OUTER PROBLEMS
The discretized version of Eq. (2.24), which is used in calculating the inner solution
ui1, is
−δ∂u
∂t=
[−ξ2W 2
ΔW 2+ κθ
](ui1)i,j
+
[ξ2W 2
2ΔW 2+
(ξ2 + κθ
)W
2ΔW
](ui1)i+1,j +
[ξ2W 2
2ΔW 2−
(ξ2 + κθ
)W
2ΔW
](ui1)i−1,j + f
(ui0
)(A.3)
where f(ui0
)is a source term given by
f(ui0
)= [−r] (ui0)i,j +
[− κW
2ΔW
](ui0)i+1,j +
[κW
2ΔW
](ui0)i−1,j
+
[(r − y)
2ΔX
](ui0)i,j+1 +
[−(r − y)
2ΔX
](ui0)i,j−1
(A.4)
24
Appendix B
Analytic Heston Call Prices
To obtain the analytic option prices that are used for calibration, we implement the
closed-form solution of call price found in [1]. The integral in the closed-form formula
is calculated as a Riemann sum. The following tables list the prices that are obtained
as such.
25
B. ANALYTIC HESTON CALL PRICES
v/S 0.74411 0.78203 0.82188 0.86375 0.90777
0.00000 7.1745 × 10−5 0.00047078 0.0030314 0.013112 0.034289
0.0080000 0.00039172 0.0018335 0.0071906 0.020330 0.042635
0.016000 0.0011527 0.0041280 0.011957 0.027048 0.049984
0.024000 0.0024573 0.0070908 0.016858 0.033252 0.056575
0.032000 0.0042647 0.010433 0.021680 0.038990 0.062575
0.040000 0.0064571 0.013950 0.026337 0.044326 0.068104
0.048000 0.0089095 0.017517 0.030802 0.049319 0.073248
0.056000 0.011521 0.021063 0.035076 0.054017 0.078074
0.064000 0.014220 0.024553 0.039166 0.058462 0.082630
0.072000 0.016956 0.027966 0.043089 0.062687 0.086955
0.080000 0.019699 0.031295 0.046857 0.066720 0.091080
0.088000 0.022428 0.034537 0.050484 0.070582 0.095029
0.096000 0.025129 0.037695 0.053983 0.074293 0.098822
0.10400 0.027796 0.040770 0.057366 0.077869 0.10248
0.11200 0.030423 0.043766 0.060641 0.081321 0.10600
0.12000 0.033008 0.046688 0.063818 0.084663 0.10942
0.12800 0.035550 0.049539 0.066904 0.087902 0.11273
0.13600 0.038049 0.052323 0.069907 0.091048 0.11594
0.14400 0.040506 0.055044 0.072831 0.094109 0.11907
0.15200 0.042920 0.057705 0.075684 0.097089 0.12212
0.16000 0.045294 0.060311 0.078468 0.099996 0.12509
0.16800 0.047628 0.062862 0.081189 0.10283 0.12799
0.17600 0.049924 0.065363 0.083851 0.10561 0.13082
0.18400 0.052183 0.067817 0.086457 0.10832 0.13359
0.19200 0.054406 0.070224 0.089010 0.11098 0.13631
Table B.1: Analytic Heston call prices - The call option under consideration has
expiry T = 1 and strike K = 0.95. The parameters for the stochastic processes are
r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625, ξ = 0.24 and ρ = −0.75. The first row of the table
is the spot price, while the first column of the table is the spot variance.
26
v/S 0.74411 0.78203 0.82188 0.86375 0.90777
0.20000 0.056595 0.072588 0.091513 0.11358 0.13897
0.20800 0.058751 0.074911 0.093969 0.11613 0.14158
0.21600 0.060874 0.077195 0.096380 0.11863 0.14413
0.22400 0.062967 0.079440 0.098749 0.12109 0.14665
0.23200 0.065029 0.081650 0.10108 0.12351 0.14912
0.24000 0.067063 0.083826 0.10337 0.12588 0.15154
0.24800 0.069069 0.085968 0.10562 0.12821 0.15393
0.25600 0.071049 0.088078 0.10784 0.13051 0.15628
0.26400 0.073002 0.090159 0.11002 0.13277 0.15859
0.27200 0.074930 0.092209 0.11217 0.13500 0.16087
0.28000 0.076834 0.094232 0.11429 0.13719 0.16311
0.28800 0.078715 0.096228 0.11638 0.13936 0.16532
0.29600 0.080573 0.098197 0.11844 0.14149 0.16751
0.30400 0.082408 0.10014 0.12048 0.14359 0.16966
0.31200 0.084223 0.10206 0.12248 0.14567 0.17178
0.32000 0.086017 0.10396 0.12446 0.14771 0.17387
0.32800 0.087790 0.10583 0.12642 0.14974 0.17594
0.33600 0.089544 0.10768 0.12835 0.15173 0.17798
0.34400 0.091280 0.10951 0.13026 0.15370 0.18000
0.35200 0.092996 0.11132 0.13215 0.15565 0.18199
0.36000 0.094695 0.11311 0.13401 0.15758 0.18396
0.36800 0.096376 0.11488 0.13586 0.15948 0.18591
0.37600 0.098041 0.11663 0.13768 0.16136 0.18784
0.38400 0.099689 0.11836 0.13949 0.16323 0.18974
0.39200 0.10132 0.12008 0.14127 0.16507 0.19163
Table B.2: Analytic Heston call prices - Continued.
27
B. ANALYTIC HESTON CALL PRICES
v/S 0.95402 1.0026 1.0537 1.1074 1.1638
0.00000 0.065267 0.10375 0.14802 0.19699 0.24999
0.0080000 0.073158 0.11048 0.15342 0.20115 0.25312
0.016000 0.080135 0.11658 0.15849 0.20521 0.25629
0.024000 0.086429 0.12220 0.16328 0.20916 0.25946
0.032000 0.092193 0.12742 0.16783 0.21301 0.26263
0.040000 0.097534 0.13233 0.17218 0.21675 0.26578
0.048000 0.10253 0.13698 0.17635 0.22039 0.26890
0.056000 0.10724 0.14139 0.18036 0.22395 0.27198
0.064000 0.11170 0.14561 0.18423 0.22741 0.27502
0.072000 0.11595 0.14965 0.18797 0.23080 0.27802
0.080000 0.12002 0.15354 0.19159 0.23410 0.28098
0.088000 0.12392 0.15729 0.19511 0.23733 0.28390
0.096000 0.12768 0.16092 0.19853 0.24050 0.28677
0.10400 0.13131 0.16443 0.20186 0.24359 0.28960
0.11200 0.13482 0.16784 0.20511 0.24663 0.29239
0.12000 0.13822 0.17116 0.20828 0.24960 0.29514
0.12800 0.14152 0.17438 0.21137 0.25252 0.29785
0.13600 0.14473 0.17753 0.21440 0.25538 0.30052
0.14400 0.14786 0.18060 0.21736 0.25820 0.30315
0.15200 0.15091 0.18360 0.22026 0.26096 0.30575
0.16000 0.15389 0.18653 0.22310 0.26368 0.30832
0.16800 0.15680 0.18940 0.22589 0.26635 0.31085
0.17600 0.15965 0.19222 0.22863 0.26898 0.31334
0.18400 0.16243 0.19497 0.23132 0.27157 0.31581
0.19200 0.16516 0.19768 0.23397 0.27413 0.31824
Table B.3: Analytic Heston call prices - Continued.
28
v/S 0.95402 1.0026 1.0537 1.1074 1.1638
0.20000 0.16784 0.20033 0.23657 0.27664 0.32064
0.20800 0.17047 0.20294 0.23912 0.27912 0.32301
0.21600 0.17305 0.20551 0.24164 0.28156 0.32536
0.22400 0.17558 0.20803 0.24412 0.28397 0.32768
0.23200 0.17807 0.21051 0.24656 0.28635 0.32997
0.24000 0.18052 0.21295 0.24897 0.28869 0.33223
0.24800 0.18293 0.21536 0.25134 0.29101 0.33447
0.25600 0.18530 0.21772 0.25368 0.29330 0.33669
0.26400 0.18764 0.22006 0.25599 0.29556 0.33888
0.27200 0.18994 0.22236 0.25827 0.29779 0.34104
0.28000 0.19221 0.22463 0.26052 0.30000 0.34319
0.28800 0.19445 0.22687 0.26274 0.30218 0.34531
0.29600 0.19665 0.22908 0.26493 0.30433 0.34741
0.30400 0.19883 0.23126 0.26710 0.30646 0.34949
0.31200 0.20098 0.23342 0.26924 0.30857 0.35155
0.32000 0.20310 0.23555 0.27135 0.31066 0.35359
0.32800 0.20520 0.23765 0.27345 0.31272 0.35562
0.33600 0.20727 0.23973 0.27552 0.31477 0.35762
0.34400 0.20931 0.24178 0.27756 0.31679 0.35960
0.35200 0.21133 0.24381 0.27959 0.31879 0.36157
0.36000 0.21333 0.24582 0.28159 0.32078 0.36352
0.36800 0.21530 0.24781 0.28357 0.32274 0.36545
0.37600 0.21726 0.24977 0.28554 0.32469 0.36736
0.38400 0.21919 0.25172 0.28748 0.32661 0.36926
0.39200 0.22110 0.25365 0.28940 0.32852 0.37114
Table B.4: Analytic Heston call prices - Continued.
29
B. ANALYTIC HESTON CALL PRICES
30
Appendix C
Calibration Error
The deviation of the composite solution from the analytic price, expressed in basis
points, is shown in the following tables.
31
C. CALIBRATION ERROR
v/S 0.78203 0.82188 0.86375 0.90777
0.040000 −0.94527 2.2916 0.75275 0.39342
0.048000 0.62891 1.9825 0.82558 0.48253
0.056000 1.5799 1.8242 0.87596 0.53606
0.064000 2.1381 1.7379 0.90801 0.56933
0.072000 2.4512 1.6844 0.92654 0.59015
0.080000 2.6128 1.6452 0.93513 0.60260
0.088000 2.6816 1.6113 0.93614 0.60891
0.096000 2.6934 1.5782 0.93101 0.61030
0.10400 2.6696 1.5436 0.92056 0.60749
0.11200 2.6229 1.5059 0.90528 0.60087
0.12000 2.5607 1.4644 0.88539 0.59066
0.12800 2.4868 1.4184 0.86100 0.57699
0.13600 2.4037 1.3675 0.83213 0.55989
0.14400 2.3122 1.3114 0.79874 0.53936
0.15200 2.2130 1.2497 0.76079 0.51537
0.16000 2.1062 1.1823 0.71821 0.48788
0.16800 1.9917 1.1090 0.67094 0.45686
0.17600 1.8697 1.0297 0.61892 0.42226
0.18400 1.7400 0.94427 0.56212 0.38405
0.19200 1.6025 0.85267 0.50053 0.34224
Table C.1: Deviation from the analytic price - The call option under consideration
has expiry T = 1 and strike K = 0.95. The parameters for the stochastic processes are
r = 0.06, y = 0.02, κ = 0.5, θ = 0.0625, ξ = 0.24 and ρ = −0.75. The first row of the table
is the spot price, while the first column of the table is the spot variance.
32
v/S 0.95402 1.0026 1.0537 1.1074
0.20000 0.10502 0.029638 0.019838 −0.0033900
0.20800 0.071314 0.0063635 0.0037769 −0.014424
0.21600 0.035224 −0.018527 −0.013317 −0.026064
0.22400 −0.0030484 −0.044838 −0.031264 −0.038150
0.23200 −0.043211 −0.072302 −0.049823 −0.050474
0.24000 −0.084862 −0.10056 −0.068685 −0.062775
0.24800 −0.12747 −0.12915 −0.087465 −0.074742
0.25600 −0.17038 −0.15751 −0.10570 −0.086010
0.26400 −0.21274 −0.18497 −0.12286 −0.096175
0.27200 −0.25358 −0.21073 −0.13834 −0.10480
0.28000 −0.29174 −0.23392 −0.15151 −0.11144
0.28800 −0.32593 −0.25360 −0.16169 −0.11565
0.29600 −0.35476 −0.26879 −0.16824 −0.11705
0.30400 −0.37681 −0.27853 −0.17058 −0.11533
0.31200 −0.39067 −0.28196 −0.16824 −0.11032
0.32000 −0.39508 −0.27839 −0.16093 −0.10203
0.32800 −0.38901 −0.26736 −0.14864 −0.090707
0.33600 −0.37179 −0.24881 −0.13164 −0.076918
0.34400 −0.34326 −0.22307 −0.11067 −0.061584
0.35200 −0.30391 −0.19110 −0.086917 −0.046073
0.36000 −0.25497 −0.15449 −0.062196 −0.032269
0.36800 −0.19861 −0.11565 −0.038995 −0.022651
0.37600 −0.13808 −0.077896 −0.020590 −0.020370
0.38400 −0.077841 −0.045593 −0.011150 −0.029342
Table C.2: Deviation from the analytic price - Continued.
33
C. CALIBRATION ERROR
34
References
[1] S. Heston. A closed-form solution for options with
stochastic volatility with applications to bond and cur-
rency options. The Review of Financial Studies, 6(2):327–
343, 1993. 1, 21
[2] W. Feller. Two singular diffusion problems. Annals of
Mathematics, 54(1):173–182, 1951. 1
[3] V. Lucic. Boundary conditions for computing densities
in hybrid models via pde methods. Available at SSRN:
http://ssrn.com/abstract=1191962, 2008. 2
[4] A. Silva and V.M. Yakovenko. Comparison between the
probability distribution of returns in the heston model
and empirical data for stock indexes. Physica A, 324(1-
2):303–310, 2003. 2
[5] F. Longstaff. Multiple equilibria and term structure
models. Journal of Financial Economics, 32(3):333–344,
1992. 2
[6] H-G. Roos, M. Stynes, and L. Tobiska. Robust Numerical
Methods for Singularly Perturbed Differential Equations.
Springer, 2010. 2
[7] A.F. Hegarty, J.J.H. Miller, E. O’Riordan, and G.I.
Shishkin. Use of central-difference operators for solu-
tion of singularly perturbed problems. Communications
in Numerical Methods in Engineering, 10:297–302, 1994.
2
[8] T. Linß. Layer-adapted meshes for convection-diffusion
problems. Computer Methods in Applied Mechanics and
Engineering, 192:1061–1105, 2003. 2
[9] P.W. Hemker, G.I. Shishkin, and L.P. Shishkina. The
use of defect correction for the solution of parabolic per-
turbation problems. Journal of Applied Mathematics and
Mechanics, 77(1):59–74, 1997. 2
[10] M.K. Kadalbajoo and Y.N. Reddy. Asymptotic and nu-
merical analysis of singular perturbation problems: a
survey. Applied Mathematics and Computation, 30:223–
259, 1989. 3
[11] D.S. Vaidya, J.M. Nitsche, S.L. Diamond, and D.A.
Kofke. Perturbation solution to the convection-diffusion
equation with moving fronts. American Institute of
Chemical Engineers Journal, 43(3):631–644, 1997. 3
[12] J. P. Fouque, G. Papanicolaou, and R. Sincar. Mean-
reverting stochastic volatility. Int. J. Theoretical Appl.
Finance, 3(1):101–142, 2000. 3
[13] J. P. Fouque, G. Papanicolaou, R. Sincar, and K. Solna.
Singular perturbations in option pricing. SIAM J. Appl.
Math., 63(5):1648–1665, 2003. 3
[14] P. Cotton, J. P. Fouque, G. Papanicolaou, and R. Sincar.
Stochastic volatility corrections for interest rate deriva-
tives. Math. Finance, 14(2):173–200, 2004. 3
[15] R. S. Johnson. Singular Perturbation Theory. Springer,
2005. 5, 7
[16] F. Verhulst. Methods and Applications of Singular Per-
turbations. Springer, 2000. 7
35