Double Integration FFT
Double Integration FFT
Double Integration FFT
Abstract
Spread options are a fundamental class of derivative contract written on multiple assets,
and are widely used in a range of financial markets. There is a long history of approxima-
tion methods for computing such products, but as yet there is no preferred approach that
is accurate, efficient and flexible enough to apply in general models. The present paper
introduces a new formula for general spread option pricing based on Fourier analysis of the
spread option payoff function. Our detailed investigation proves the effectiveness of a fast
Fourier transform implementation of this formula for the computation of prices. It is found
to be easy to implement, stable, efficient and applicable in a wide variety of asset pricing
models.
Keywords: Spread options, multivariate spread options, jump-diffusions, fast Fourier trans-
form, gamma function.
1 Introduction
When Sjt , j = 1, 2 are two asset price procsses, the basic spread option with maturity T and
strike K ≥ 0 is the contract that pays (S1T − S2T − K)+ at time T . From the risk-neutral
expectation formula, the time 0 price of this option, assuming a constant interest rate r, must be
1
spread” is the difference between the prices of crude oil and natural gas. “Spark spreads” refer
to differences between the price of electricity and the price of fuel: options on spark spreads
are widely used by power plant operators to optimize their revenue streams. Energy pricing re-
quires models with mean reversion and jumps very different from geometric Brownian motion,
and pricing spread options in such situations can be challenging.
Closed formulas for (1) are known only for a limited set of cases. In the Bachelier stock
model, St = (S1t , S2t ) is an arithmetic Brownian motion, and in this case (1) has a Black-
Scholes type formula for any T, K. In the special case K = 0 when St is geometric Brownian
motion, (1) is given by the Margrabe formula [8].
In the important case where St is geometric Brownian motion and K > 0, no explicit pricing
formula is known. Therefore there is a long history of approximation methods. Numerical
integration methods, typically Monte Carlo based, are often employed. Dempster and Hong [4]
introduced a numerical integration method based on double fast Fourier transforms (FFT) that
is efficient for geometric Brownian motion and certain more general asset price processes.
Another stream of research develops analytical methods applicable to log normal models
that involve linear approximations of the nonlinear exercise boundary. Such methods are often
very fast, but their accuracy is usually not easy to determine. Kirk [5] presented an analytical
approximation that performs well in practice. Carmona and Durrleman [2] used a family of
lower bounds for the spread option price to obtain an analytical approximation formula that
apparently leads to acceptable accuracy. Moreover these results extend to approximate values
for the Greeks. Deng, Li and Zhou [6] have developed a systematic analytical approximation
scheme which is perhaps even more reliable.
Next to having analytical option pricing formulas, the fastest option pricing engines by
numerical integration are usually those based on the fast Fourier transform methods introduced
by Carr and Madan [3]. Their interest was in option pricing for geometric Lévy process models
like the variance gamma (VG) model, but their basic framework has been adapted to a host of
other models where the characteristic function of the returns is known.
The main purpose of the present paper is to give a new numerical integration method for
computing spread options in two or higher dimensions via FFTs, applicable to any model for
which the characteristic function of the joint return process is given analytically. Our method
is completely different from prior approaches, and consequently has distinct advantages, no-
tably the flexibility to include a wide range of desirable asset return models, with a competitive
computational expense.
The results we describe all stem from the following fundamental new result that gives a
Fourier representation of the basic spread option payoff function P (x1 , x2 ) = (ex1 − ex2 − 1)+ .
Note that this spread option payoff is without loss of generality: We can reduce the general case
K 6= 0 to K = 1 by using scaling and interchange of S1 and S2 .
Theorem 1. For any real numbers = (1 , 2 ) with 2 > 0 and 1 + 2 < −1
Γ(i(u1 + u2 ) − 1)Γ(−iu2 )
ZZ
−2 0
P (x) = (2π) eiux P̂ (u)d2 u, P̂ (u) = . (2)
R2 +i Γ(iu1 + 1)
R ∞ −tΓ(z)
Here is the complex gamma function defined for <e(z) > 0 by the integral Γ(z) =
0
e t dt. We write u = (u1 , u2 ) and x = (x1 , x2 ) and the notation x0 denotes the (un-
z−1
2
Using this result, whose proof is given in the appendix, we will find we can follow the
logic of Carr and Madan to derive numerical algorithms for efficient computation of a variety
of spread options and their Greeks. The basic strategy to compute (1) is to combine (2) with
an explicit formula for the characteristic function of the bivariate random variable Xt = log St .
For the remainder of this paper, we make a simplifying assumption that the dynamics of X is
homogeneous, which is equivalent to the following factorization of the characteristic function
0 0 0
EX0 [eiuXT ] = eiuX0 Φ(u; T ), Φ(u; T ) := E0 [eiuXT ] . (3)
Then, if St = eXt is the price process for two traded assets, the spread option formula can be
written
The Greeks are handled in exactly the same way. For example, the Delta ∆1 := ∂Spr/∂S10 is
obtained as a function of S0 by replacing Φ in (4) by ∂Φ/∂S10 .
Explicit double Fourier integrals like this can be approximated numerically by a two dimen-
sional FFT. Such approximations involve both a truncation and discretization of the integral,
and the two properties that determine their accuracy are the decay of the integrand of (4) in
u-space, and the decay of the function Spr in x-space. The remaining issue of computing the
gamma function is not a real difficulty. Fast and accurate computation of the complex gamma
function in for example, Matlab, is based on the Lanczos approximation popularized by [9]1 .
In this paper, we demonstrate how our method performs in three different models for spread
options on two stocks, namely the geometric Brownian motion (GBM), a three factor stochastic
volatility (SV) model and the variance gamma (VG) model. Section 2 provides the essential
definitions of the three types of models, including explicit formulas for their bivariate charac-
teristic functions. Section 3 discusses how the two dimensional FFT can be implemented for
our problem, and gives a heuristic picture of how the accuracy and speed will depend on the
choices made in the implementation. Section 4 gives the detailed results of the performance
of the method in the three models. In that section, the accuracy of each model is compared to
benchmark values computed by an independent method for a reference set of option prices. We
also demonstrate that the computation of the spread option Greeks in such models is equally
feasible. Section 5 extends all the above results to spread options on three or more assets. While
in such cases the formulation is simple, the resulting higher dimensional FFTs are in practice
much slower to compute.
1
According to these authors, computing the gamma function becomes “not much more difficult than other
built-in functions that we take for granted, such as sin x or ex ”.
3
2 Three kinds of stock models
2.1 The case of geometric Brownian motion
In the two-asset Black-Scholes model, the vector St = (S1t , S2t ) has components
Sjt = Sj0 exp[(r − σj2 /2)t + σj Wtj ], j = 1, 2
where σ1 , σ2 > 0 and W 1 , W 2 are risk-neutral Brownian motions with constant correlation
ρ, |ρ| < 1. The joint characteristic function of XT = (log S1T , log S2T ) as a function of u =
0
(u1 , u2 ) is of the form eiuX0 Φ(u; T ) with
Φ(u; T ) = exp[iu(rT e − σ 2 T /2)0 − uΣu0 T /2] (5)
where e = (1, 1), Σ = [σ12 , σ1 σ2 ρ; σ1 σ2 ρ, σ22 ] and σ 2 = diagΣ. Here we use implied matrix mul-
tiplication, and the u0 denotes the (unconjugated) matrix transpose. Substituting this expression
into (4) yields the spread option formula
ZZ
−2 −rT 0
Spr(S0 ; T ) = (2π) e eiuX0 exp[iu(rT e − σ 2 T /2)0 − uΣu0 T /2]P̂ (u)d2 u . (6)
R2 +i
As we discuss in Section 3, we recommend that this be computed numerically using the FFT.
4
2.3 Exponential Lévy Models
Many stock price models are of the form St = eXt where Xt is a Lévy process for which
the characteristic function is explicitly known. We illustrate with example of the VG process
introduced by [7], the three parameter process Yt with Lévy characteristic triple (0, 0, ν) where
the Lévy measure is ν(x) = λ[e−a+ x 1x>0 + ea− x 1x<0 ]/|x| for positive constants λ, a± . The
characteristic function of Yt is
−λt
u2
1 1
ΦYt (u) = 1 + i − u+ . (7)
a− a+ a− a+
To demonstrate the effects of correlation, we take a bivariate VG model driven by three in-
dependent VG processes Y1 , Y2 , Y with common parameters a± and λ1 = λ2 = (1 − α)λ, λY =
αλ. The bivariate log return process Xt = log St is a mixture:
Here α ∈ [0, 1] leads to dependence between the two return processes, but leaves their marginal
0
laws unchanged. An easy calculation leads to the bivariate characteristic function eiuX0 Φ(u; T )
with
−αλt
(u1 + u2 )2
1 1
Φ(u; T ) = 1 + i − (u1 + u2 ) + (9)
a− a+ a− a+
−(1−α)λt −(1−α)λt
u21 u22
1 1 1 1
× 1+i − u1 + 1+i − u2 + .
a− a+ a− a+ a− a+ a− a+
for appropriate choices of N, η, ū := N η/2. For the FFT it is convenient to take N to be a power
of 2 and lattice spacing η such that truncation of the u-integrals to [−ū, ū] and discretization
leads to an acceptable error. Finally, we choose initial values X0 = log S0 to lie on the reciprocal
lattice with spacing η ∗ = 2π/N η = π/ū:
5
Now, as usual for the discrete FFT, as long as N is even,
iu(k)x(`)0 = iπ(k1 + k2 + `1 + `2 ) + 2πik`0 /N (mod 2πi) .
This leads to the double inverse discrete Fourier transform
2 " N −1
#
ηN 0 1 X 0
Spr(S0 ; T ) ∼ (−1)`1 +`2 e−rT e−x(`) e2πik` /N H(k)
2π N 2 k ,k =0
1 2
2
ηN 0
= (−1)`1 +`2 e−rT e−x(`) [ifft2(H)](`) (11)
2π
where
H(k) = (−1)k1 +k2 Φ(u(k) + i; T )P̂ (u(k) + i) .
The selection of suitable values for , N and η is a somewhat subtle issue when implement-
ing the above FFT approximation of (4). We now briefly discuss separately the truncation error
and discretization error. The pure truncation error, defined by taking η → 0, N → ∞ keep-
ing ū = N η/2 fixed, can be made small if the integrand of (4) is small outside the square
[−ū + i1 , ū + i1 ] × [−ū + i2 , ū + i2 ]. Corollary 4, proved in the Appendix, gives an O(|u|−2 )
upper bound on P̂ , while Φ(u) can generally been seen directly to have some u-decay. Typ-
ically, with some caveats, if one picks ū large enough so that |Φ| < δ1 1 and has decay
outside the square, then the truncation error will be less than O(δ1 ).
The pure discretization error, defined by taking ū → ∞, N → ∞ while keeping η fixed, can
0
be made small if eX0 Spr, taken as a function of X0 ∈ R2 , has rapid decay in X0 . This is related
to the smoothness of Φ(u) and the choice of . The first two models are not very sensitive to ,
but in the VG model the following conditions are needed to ensure that singularities in u space
are avoided:
−a+ < 1 , 2 , 1 + 2 < a− .
The error in the approximation (11) with N = ∞ and η finite, is given by the formula
0
X
Spr(η) (X0 ) − Spr(X0 ) = e−2π` /η Spr(X0 + 2`x̄) .
`∈Z2 \{(0,0)}
Typically, with some caveats, the norm of this can be made smaller than O(δ2 ) 1 for X0 ∈
0
[−cx̄, cx̄]2 if 0 < c 1 and eX0 Spr(X0 ) is O(δ2 ) and rapidly decaying outside the square
[−x̄, x̄]2 .
In summary, one expects that the combined truncation and discretization error will be O(δ1 +
δ2 ) if ū and η = π/x̄ are each chosen as above.
The FFT method can also be applied to the Greeks, enabling us to tackle hedging and other
interesting problems. It is particularly efficient for the GBM model, where differentiation under
the integral sign is always permissible. For instance, the FFT formula for vega (the sensitivity
to σ) takes the form:
2
∂Spr(S0 ; T ) `1 +`2 −rT ηN 0 ∂H
= (−1) e e−x(`) [ifft2( )](`) ;
∂σ1 2π ∂σ1
0
∂σ 2
∂H(k) ∂Σ 0
= −(u(k) + i) i + (u(k) + i) T /2 H(k) ,
∂σ1 ∂σ1 ∂σ1
6
2
where ∂σ
∂σ1
∂Σ
= [2σ1 , 0] and ∂σ 1
= [2σ1 , ρσ2 ; ρσ2 , 0]. Other Greeks including those of higher
orders can be computed in similar fashion. This method needs to be used with care for the SV
and VG models, since it is possible that differentiation leads to an integrand that decays slowly.
4 Numerical Results
Our numerical experiments were coded and implemented in Matlab version 7.6.0 on an Intel
2.80 GHz machine running under Linux with 1 GB physical memory. If they were coded in C++
with similar algorithms, we should expect to see much faster performance. All the following
experiments were run with 1 = −3, 2 = 1.
The strength of the FFT method is demonstrated by comparison with benchmarks. Based
i i
on a selection of {S10 , S20 , K i }, i ∈ 1, 2, 3 . . . n, the objective function we measure is defined
as n
1X
Err = | log(M i ) − log(B i )| (12)
n i=1
where M i and B i are FFT computed prices and benchmark prices for the ith combination.
We chose log S10 = 10 iπ
, log S20 = − π5 + jπ
10
, i, j ∈ 1, 2, 3, 4, 5, 6 and fixed the strike K = 1,
leading to 36 prices contributing to the objective function. These choices cover a wide range
of moneyness, from deep out-of-the-money to deep in-the-money. Since these combinations all
lie on lattices Γ∗ corresponding to N = 2n and ū/10 = 2m for integers n, m, all 36 prices M i
can be computed simultaneously with one FFT.
Figure 1 shows how the FFT method performs in the 2-dimensional Geometric Brownian
motion model for different choices of N and ū. Since the two factors are bivariate normal,
benchmark prices can be calculated to high accuracy by one dimensional integrations. In Figure
1 we can clearly see the effects of both truncation errors and discretization errors. For a fixed
ū, the objective function decreases when N increases. The ū = 20 curve flattens out near 10−5
due to its truncation error of that magnitude. In turn, we can quantify its discretization errors
with respect to N by subtracting the truncation error from the total error. The flattening of the
other three curves near 10−14 should be attributed to Matlab round-off errors: because of the
rapid decrease of the characteristic function Φ, their truncation error is negligible. For a fixed
N , increasing ū brings two effects: reducing truncation error and enlarging discretization error.
These effects are well demonstrated in figure 1.
For the stochastic volatility model, no analytical or numerical method we know is consis-
tently more accurate to serve as benchmark. Instead, we used Monte Carlo simulation to achieve
a moderate degree of accuracy. Each benchmark price was created by 1, 000, 000 simulations,
each consisting of 2000 time steps. No variance reduction was employed. The resulting ob-
jective function is shown in Figure 2. The objective function only decreases to near 4 × 10−4 ,
reflecting the inaccuracy of the benchmark. A comparable graph (not shown), using benchmark
prices computed with the FFT method with N = 212 and ū = 80, showed similar behaviour to
Figure 1, and is consistent with accuracies at the level of round-off. The computational cost to
reduce the Monte Carlo simulation error to a comparable level would be prohibitive.
The VG model also lacks a reliable benchmark, so again we used Monte Carlo simulation.
Since the VG process can be simulated as a Brownian motion time-changed by a gamma pro-
7
cess, MC is here much more efficient than for the SV model, and we were able to run 109
simulations with antithetic variates for each price. The objective function is shown in Figure
3. The truncation error for ū = 20 is about 2 × 10−5 . The other three curves flatten out
near 7 × 10−6 , which is presumably the accuracy of the benchmark. A comparable graph (not
shown), using benchmark prices computed with the FFT method with N = 212 and ū = 80,
showed similar behaviour to Figure 1, and is consistent with the FFT method being capable of
producing accuracies at the level of round-off.
The strength of the FFT method is further illustrated by the computation of individual prices
shown in Tables 1 to 3. The columns labeled “Analytic” and “Simulation” refer to the type of
benchmark used. One can observe that an FFT with N = 256 is capable of producing very high
accuracy in all three models. In the GBM model, the errors are simply due to round-off. The
discrepancies in the VG model are small too, less than 1 basis point. The apparent discrepancies
in the SV model we attribute to the inaccurate benchmark, rather than the FFT method itself.
The FFT computes in a single iteration an N × N panel of prices spread corresponding
∗ ∗
to initial values S10 = ex10 +`1 η , S20 = ex20 +`2 η , K = 1, (`1 , `2 ) ∈ {0, . . . , N − 1}2 . If
the desired selection of {S10 , S20 , K} fits into this panel of prices, or its scaling, a single FFT
suffices. If not, then one has to match (x10 , x20 ) with each combination, and run several FFTs,
with a consequent increase in computation time. However, we have found that an interpolation
technique is very accurate for practical purposes. For instance, prices for multiple strikes with
the same S10 and S20 are approximated by a polynomial fit along the diagonal of the price panel:
∗ ∗ ∗
Spr(S0 ; K1 ) = K1 ·spread(1, 1), Spr(S0 ; K1 e−η ) = K1 e−η ·spread(2, 2), Spr(S0 ; K1 e−2η ) =
∗
K1 e−2η · spread(3, 3) . . . . The results of this technique are recorded in Table 2 and Table 3 in
the column “Interpolation”. We can see this technique generates very competitive results and
moreover, saves computational resource.
Finally, we computed first order Greeks using the method described at the beginning of
Section 3 and compared them with finite differences. As seen in Table 4, the two methods come
up with very consistent results. The Greeks of our at-the-money spread option exhibit some
resemblance to the at-the-money European put/call option. The delta of S1 is close to the delta
of the call option, which is about 0.5. And the delta of S2 is close to the delta of the put option,
which is also about 0.5. The time premium of the spread option is positive. The option price
is much more sensitive to S1 volatility than to S2 volatility. It is an important feature that the
option price is negatively correlated with the underlying correlation: Intuitively speaking, if the
two underlyings are strongly correlated, their co-movements diminish the probability that S1T
develops a wide spread over S2T . This result is consistent with observations made by [6].
Since the FFT method naturally generates a panel of prices, and interpolation can be imple-
mented accurately with negligible additional computational cost, it is appropriate to measure
the efficiency of the method by timing the computation of a panel of prices. Such computing
times are shown in Table 5. For the FFT method, the main computational cost comes from
the calculation of the matrix H in (11) and the subsequent FFT of H. We see that the GBM
model is noticeably faster than the SV and VG models: This is due to a recursive method used
to calculate the H matrix entries of the GBM model, which is not applicable for the SV and VG
models. The number of calculations for H is of orderN 2 which for large N exceeds the N log N
of the FFT of H, and thus the advantage of this efficient algorithm for GBM is magnified as N
increases. However, our FFT method is still very fast for the SV and VG models and is able to
8
generate a large panel of prices within a couple of seconds.
P3. For any real numbers ˜, = (1 , . . . , M ) with m > 0 for all m ≤ M and
Proposition
˜ ≤ −1 − M m=1 m
M Z
0
X
x̃ xm + −(M +1)
(e − e − 1) = (2π) eiũx̃+iux P̂ (u, ũ)dM u dũ (14)
m=1 RM +1 +i(,˜
)
where PM
um ) − 1) M
Q
Γ(i(ũ + m=1 m=1 Γ(−ium )
P̂ (u, ũ) = . (15)
Γ(iũ + 1)
9
6 Conclusion
This paper presents a fundamentally new approach to the valuation of spread options, an impor-
tant class of financial contracts. The method is based on a newly discovered explicit formula
for the Fourier transform of the spread option payoff in terms of the gamma function.
This mathematical result leads to simple and transparent algorithms for computing spread
options in all dimensions. The powerful tool of the Fast Fourier Transform provides an accurate
and efficient implementation of the fundamental result. The difficulties and pitfalls of the FFT,
of which there are admittedly several, are by now well understood, and thus the reliability and
stability properties of our method are rather clear.
Many important processes in finance, particularly affine models and Lévy jump models,
have well known explicit characteristic functions, and can be included in the method with little
difficulty. Thus the method can be easily applied to important problems arising in energy and
commodity markets.
Finally, the Greeks can be systematically evaluated for such models, with similar perfor-
mance and little extra work.
where ZZ
g(u) = e−iu·x P (x)d2 x .
R2
x2
By restricting to the domain {x : x1 > 0, e < ex1 − 1} we have
"Z #
Z ∞ log(ex1 −1)
g(u) = e−iu1 x1 e−iu2 x2 [(ex1 − 1) − ex2 ]dx2 dx1
0 −∞
Z ∞
−iu1 x1 x1 1−iu2 1 1
= e (e − 1) − dx1 .
0 −iu2 1 − iu2
10
is defined for any complex a, b with <e(a), <e(b) > 0 by
Z 1
B(a, b) = z a−1 (1 − z)b−1 dz .
0
From this, and the property Γ(z) = (z − 1)Γ(z − 1) follow the formulas
Γ(i(u1 + u2 ) − 1)Γ(−iu2 + 2) Γ(i(u1 + u2 ) − 1)Γ(−iu2 )
g(u) = = . (17)
(1 − iu2 )(−iu2 )Γ(iu1 + 1) Γ(iu1 + 1)
t
u
Proof of Proposition 2: To simplify the proof, we make the change of variables p = ez and
qm = exm . It becomes to prove that
Z M M QM
X Y
−ium −1 M Γ(−ium ) −i(PM m=1 um ) .
pδ(p − qm ) qm d q = m=1PM p (19)
R M
m=1 m=1 Γ(−i m=1 u m )
We prove the proposition by induction. The above equation trivially holds when M = 1.
Now suppose it holds for M = N . Then for M = N + 1
Z N N
−iu −1
X Y
−ium −1 N +1
LHS = pδ(p − qN +1 − qm )qN +1N +1 qm d q
RN +1 m=1 m=1
QN Z p
Γ(−ium ) p PN
−iu −1
= m=1
PN (p − qN +1 )−i( m=1 um ) qN +1N +1 dqN +1 . (20)
Γ(−i m=1 um ) 0 p − qN +1
The above step makes use of the result when MP = N . The proof is then complete when
N +1
one notices thatPthe qN +1 integral is simply p−i( m=1 um ) multiplied by a beta function with
parameters −i( N m=1 um ) and −iuN +1 .
t
u
11
References
[1] R. C ARMONA AND V. D URRLEMAN, Pricing and hedging spread options, SIAM Review,
45 (2003), pp. 627–685.
[2] , Pricing and hedging spread options in a log-normal model, tech. report, Princeton
University, 2003. Available at
orfe.princeton.edu/~rcarmona/download/fe/spread.pdf .
[3] P. C ARR AND D. M ADAN, Option valuation using the fast Fourier transform, Journal of
Computational Finance, 2 (2000).
[4] M. A. H. D EMPSTER AND S. S. G. H ONG, Spread option valuation and the fast
Fourier transform. manuscript, tech. report, Cambridge University, 2000. Available at
www.jbs.cam.ac.uk/research/working_papers/2000/wp0026.pdf .
[5] E. K IRK, Correlations in the energy markets, in In Managing Energy Price Risk, Risk
Publications and Enron, London, 1995, pp. 71–78.
[6] M. L I , S. D ENG , AND J. Z HOU, Closed-form approximations for spread option prices and
greeks. Available at SSRN: http://ssrn.com/abstract=952747, 2006.
[7] D. M ADAN AND E. S ENETA, The VG model for share market returns, Journal of Business,
63 (1990), pp. 511–524.
[8] W ILLIAM M ARGRABE, The value of an option to exchange one asset for another, Journal
of Finance, 33 (1978), pp. 177–86.
12
0
Error Plot for Spread Option (GBM)
10
u=20
u=40
u=80
!2 u=160
10
!4
10
!6
10
Err
!8
10
!10
10
!12
10
!14
10
1 2 3 4
10 10 10 10
N
Figure 1: This graph shows the objective function Err for the numerical computation of the
GBM spread option versus the benchmark. Errors are plotted against the grid size for different
choices of ū. The parameter values are taken from [4]: r = 0.1, T = 1.0, ρ = 0.5, δ1 =
0.05, σ1 = 0.2, δ2 = 0.05, σ2 = 0.1.
Table 1: Prices for the two-factor GBM model of [4] for different choices of N . The parameter
values are the same as Figure 1 except we fix S10 = 100, S20 = 96, ū = 40.
13
0
Error Plot for Spread Option (SV)
10
u=20
u=40
u=80
u=160
!1
10
Err
!2
10
!3
10
!4
10
1 2 3 4
10 10 10 10
N
Figure 2: This graph shows the objective function Err for the numerical computation of the SV
spread option versus the benchmark Monte Carlo simulation values computed with 1, 000, 000
simulations each of which consists of 2000 time steps. The parameter values are taken from
[4]: r = 0.1, T = 1.0, ρ = 0.5, δ1 = 0.05, σ1 = 1.0, ρ1 = −0.5, δ2 = 0.05, σ2 = 0.5, ρ2 =
0.25, v0 = 0.04, κ = 1.0, µ = 0.04, σv = 0.05.
14
0
Error Plot for Spread Option (VG)
10
u=20
u=40
u=80
u=160
!1
10
!2
10
Err
!3
10
!4
10
!5
10
!6
10
1 2 3 4
10 10 10 10
N
Figure 3: This graph shows the objective function Err for the numerical computation of the
VG spread option versus the benchmark values computed with Monte Carlo simulation, where
109 simulations are performed for each price. Errors are plotted against the grid size for five
different choices of ū. The parameters are: r = 0.1, T = 1.0, ρ = 0.5, a+ = 20.4499, a− =
24.4499, α = 0.4, λ = 10
15
Table 2: Prices for the 3 factor SV model of [4] for different choices of N . The parameter
values are the same as Figure 2 except we fix S10 = 100, S20 = 96, ū = 40. The interpolation
is based on a matrix with discretization of N = 256 and a polynomial with degree of 8.
Table 3: Prices for the VG model of for different choices of N . The parameter values are the
same as Figure 3 except we fix S10 = 100, S20 = 96, ū = 40. The interpolation is based on a
matrix with discretization of N = 256 and a polynomial with degree of 8. For the last column,
109 simulations are used for each price.
Table 4: The Greeks for the GBM model compared between the FFT method and the finite
difference method. The FFT method uses N = 210 and ū = 40. The finite difference uses a
two-point central formula, in which the displacement is ±1%. Other parameters are the same
as Table 1 except that we fix the strike K = 4.0 to make the option at-the-money.
16
Table 5: Computing time of FFT for a panel of prices.
Discretization GBM SV VG
64 0.091647 0.083326 0.109537
128 0.099994 0.120412 0.139276
256 0.126687 0.234024 0.220364
512 0.240938 0.711395 0.621074
1024 0.609860 2.628901 2.208770
2048 2.261325 10.243228 8.695122
17