This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

A Fourier transform method for spread option pricingthanks: Research supported by the Natural Sciences and Engineering Research Council of Canada and MITACS, Mathematics of Information Technology and Complex Systems Canada

T. R. Hurd   and Zhuowei Zhou Dept. of Mathematics and Statistics, McMaster University, Hamilton ON L8S 4K1, Canada (hurdt@mcmaster.ca).Dept. of Mathematics and Statistics, McMaster University, Hamilton ON L8S 4K1, Canada.
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 approximation 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 transform, gamma function.


AMS Subject Classification:  33B15, 65T50, 91B28

1 Introduction

When Sjt,j=1,2S_{jt},j=1,2 are two asset price procsses, the basic spread option with maturity TT and strike K0K\geq 0 is the contract that pays (S1TS2TK)+(S_{1T}-S_{2T}-K)^{+} at time TT. From the risk-neutral expectation formula, the time 0 price of this option, assuming a constant interest rate rr, must be

Spr(S0;T,K)=erTES0[(S1TS2TK)+].\mbox{Spr}(S_{0};T,K)=e^{-rT}E_{S_{0}}[(S_{1T}-S_{2T}-K)^{+}]\ . (1)

The literature on applications of spread options is extensive, and is reviewed by Carmona and Durrleman [1] who explore further applications of spread options beyond the case of equities modelled by geometric Brownian motion, notably energy trading. For example, the “crack 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 requires 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)S_{t}=(S_{1t},S_{2t}) is an arithmetic Brownian motion, and in this case (1) has a Black-Scholes type formula for any T,KT,K. In the special case K=0K=0 when StS_{t} is geometric Brownian motion, (1) is given by the Margrabe formula [8].

In the important case where StS_{t} is geometric Brownian motion and K>0K>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, notably 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)=(ex1ex21)+P(x_{1},x_{2})=(e^{x_{1}}-e^{x_{2}}-1)^{+}. Note that this spread option payoff is without loss of generality: We can reduce the general case K0K\neq 0 to K=1K=1 by using scaling and interchange of S1S_{1} and S2S_{2}.

Theorem 1.

For any real numbers ϵ=(ϵ1,ϵ2)\epsilon=(\epsilon_{1},\epsilon_{2}) with ϵ2>0\epsilon_{2}>0 and ϵ1+ϵ2<1\epsilon_{1}+\epsilon_{2}<-1

P(x)=(2π)22+iϵeiuxP^(u)d2u,P^(u)=Γ(i(u1+u2)1)Γ(iu2)Γ(iu1+1).P(x)=(2\pi)^{-2}\iint_{\mathbb{R}^{2}+i\epsilon}e^{iux^{\prime}}\hat{P}(u)d^{2}u,\quad\hat{P}(u)=\frac{\Gamma(i(u_{1}+u_{2})-1)\Gamma(-iu_{2})}{\Gamma(iu_{1}+1)}\ . (2)

Here Γ(z)\Gamma(z) is the complex gamma function defined for e(z)>0\Re e(z)>0 by the integral Γ(z)=0ettz1𝑑t\Gamma(z)=\int^{\infty}_{0}e^{-t}t^{z-1}dt. We write u=(u1,u2)u=(u_{1},u_{2}) and x=(x1,x2)x=(x_{1},x_{2}) and the notation xx^{\prime} denotes the (unconjugated) matrix transpose.

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=logStX_{t}=\log S_{t}. For the remainder of this paper, we make a simplifying assumption that the dynamics of XX is homogeneous, which is equivalent to the following factorization of the characteristic function

EX0[eiuXT]=eiuX0Φ(u;T),Φ(u;T):=E0[eiuXT].E_{X_{0}}[e^{iuX_{T}^{\prime}}]=e^{iuX^{\prime}_{0}}\Phi(u;T),\quad\Phi(u;T):=E_{0}[e^{iuX_{T}^{\prime}}]\ . (3)

Then, if St=eXtS_{t}=e^{X_{t}} is the price process for two traded assets, the spread option formula can be written

Spr(S0;T)\displaystyle\mbox{Spr}(S_{0};T) =\displaystyle= erTE[(S1TS2T1)+]\displaystyle e^{-rT}E[(S_{1T}-S_{2T}-1)^{+}] (4)
=\displaystyle= (2π)2erT2+iϵEX0[eiuXT]P^(u)d2u\displaystyle(2\pi)^{-2}e^{-rT}\iint_{\mathbb{R}^{2}+i\epsilon}E_{X_{0}}[e^{iuX_{T}^{\prime}}]\hat{P}(u)d^{2}u
=\displaystyle= (2π)2erT2+iϵeiuX0Φ(u;T)P^(u)d2u.\displaystyle(2\pi)^{-2}e^{-rT}\iint_{\mathbb{R}^{2}+i\epsilon}e^{iuX^{\prime}_{0}}\Phi(u;T)\hat{P}(u)d^{2}u\ .

The Greeks are handled in exactly the same way. For example, the Delta Δ1:=Spr/S10\Delta^{1}:=\partial\mbox{Spr}/\partial S_{10} is obtained as a function of S0S_{0} by replacing Φ\Phi in (4) by Φ/S10\partial\Phi/\partial S_{10}.

Explicit double Fourier integrals like this can be approximated numerically by a two dimensional 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 uu-space, and the decay of the function Spr in xx-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]111According to these authors, computing the gamma function becomes “not much more difficult than other built-in functions that we take for granted, such as sinx\sin x or exe^{x}”..

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 characteristic 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.

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)S_{t}=(S_{1t},S_{2t}) has components

Sjt=Sj0exp[(rσj2/2)t+σjWtj],j=1,2S_{jt}=S_{j0}\exp[(r-\sigma_{j}^{2}/2)t+\sigma_{j}W^{j}_{t}],j=1,2

where σ1,σ2>0\sigma_{1},\sigma_{2}>0 and W1,W2W^{1},W^{2} are risk-neutral Brownian motions with constant correlation ρ,|ρ|<1\rho,|\rho|<1. The joint characteristic function of XT=(logS1T,logS2T)X_{T}=(\log S_{1T},\log S_{2T}) as a function of u=(u1,u2)u=(u_{1},u_{2}) is of the form eiuX0Φ(u;T)e^{iuX^{\prime}_{0}}\Phi(u;T) with

Φ(u;T)=exp[iu(rTeσ2T/2)uΣuT/2]\Phi(u;T)=\exp[iu(rTe-\sigma^{2}T/2)^{\prime}-u\Sigma u^{\prime}T/2]\ (5)

where e=(1,1),Σ=[σ12,σ1σ2ρ;σ1σ2ρ,σ22]e=(1,1),\Sigma=[\sigma_{1}^{2},\sigma_{1}\sigma_{2}\rho;\sigma_{1}\sigma_{2}\rho,\sigma_{2}^{2}] and σ2=diagΣ\sigma^{2}=\mbox{diag}\Sigma. Here we use implied matrix multiplication, and the uu^{\prime} denotes the (unconjugated) matrix transpose. Substituting this expression into (4) yields the spread option formula

Spr(S0;T)=(2π)2erT2+iϵeiuX0exp[iu(rTeσ2T/2)uΣuT/2]P^(u)d2u.\mbox{Spr}(S_{0};T)=(2\pi)^{-2}e^{-rT}\iint_{\mathbb{R}^{2}+i\epsilon}e^{iuX^{\prime}_{0}}\exp[iu(rTe-\sigma^{2}T/2)^{\prime}-u\Sigma u^{\prime}T/2]\hat{P}(u)d^{2}u\ . (6)

As we discuss in Section 3, we recommend that this be computed numerically using the FFT.

2.2 Three Factor Stochastic Volatility Model

The spread option problem in a three factor stochastic volatility model was given as an example by Dempster and Hong [4]. Their model is defined by the SDE for X=(logS1,logS2)X=(\log S_{1},\log S_{2}):

dX1\displaystyle dX_{1} =\displaystyle= [(rδ1σ12/2)dt+σ1vdW1]\displaystyle[(r-\delta_{1}-\sigma_{1}^{2}/2)dt+\sigma_{1}\sqrt{v}dW^{1}]
dX2\displaystyle dX_{2} =\displaystyle= [(rδ2σ22/2)dt+σ2vdW2]\displaystyle[(r-\delta_{2}-\sigma_{2}^{2}/2)dt+\sigma_{2}\sqrt{v}dW^{2}]
dv\displaystyle dv =\displaystyle= κ(μv)dt+σvvdWv\displaystyle\kappa(\mu-v)dt+\sigma_{v}\sqrt{v}dW^{v}

where

E[dW1dW2]\displaystyle E[dW^{1}dW^{2}] =\displaystyle= ρdt\displaystyle\rho dt
EQ[dW1dWv]\displaystyle EQ[dW^{1}dW^{v}] =\displaystyle= ρ1dt\displaystyle\rho_{1}dt
EQ[dW2dWv]\displaystyle EQ[dW^{2}dW^{v}] =\displaystyle= ρ2dt.\displaystyle\rho_{2}dt.

As discussed in that paper, it has the joint characteristic function eiuX0Φ(u;T)e^{iuX^{\prime}_{0}}\Phi(u;T) where

Φ(u;T)\displaystyle\Phi(u;T) =\displaystyle= exp[(2ζ(1eθT)2θ(θγ)(1eθ))v(0)\displaystyle\exp\Biggl{[}\left(\frac{2\zeta(1-e^{-\theta T})}{2\theta-(\theta-\gamma)(1-e^{-\theta})}\right)v(0)
+iu(reδ)Tκμσv2[2log(2θ(θγ)(1eθT)2θ)+(θγ)T]]\displaystyle+iu(re-\delta)^{\prime}T-\frac{\kappa\mu}{\sigma_{v}^{2}}\left[2\log\left(\frac{2\theta-(\theta-\gamma)(1-e^{-\theta T})}{2\theta}\right)+(\theta-\gamma)T\right]\Biggr{]}

where

ζ\displaystyle\zeta :=\displaystyle:= 12[(σ12u12+σ22u22+2ρσ1σ2u1u2)+i(σ12u1+σ22u2)]\displaystyle-\frac{1}{2}\left[\left(\sigma_{1}^{2}u_{1}^{2}+\sigma_{2}^{2}u_{2}^{2}+2\rho\sigma_{1}\sigma_{2}u_{1}u_{2}\right)+i\left(\sigma_{1}^{2}u_{1}+\sigma_{2}^{2}u_{2}\right)\right]
γ\displaystyle\gamma :=\displaystyle:= κi(ρ1σ1u1+ρ2σ2u2)σν\displaystyle\kappa-i(\rho_{1}\sigma_{1}u_{1}+\rho_{2}\sigma_{2}u_{2})\sigma_{\nu}
θ\displaystyle\theta :=\displaystyle:= γ22σv2ζ.\displaystyle\sqrt{\gamma^{2}-2\sigma_{v}^{2}\zeta}\ .

2.3 Exponential Lévy Models

Many stock price models are of the form St=eXtS_{t}=e^{X_{t}} where XtX_{t} 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 YtY_{t} with Lévy characteristic triple (0,0,ν)(0,0,\nu) where the Lévy measure is ν(x)=λ[ea+x𝟏x>0+eax𝟏x<0]/|x|\nu(x)=\lambda[e^{-a_{+}x}{\bf 1}_{x>0}+e^{a_{-}x}{\bf 1}_{x<0}]/|x| for positive constants λ,a±\lambda,a_{\pm}. The characteristic function of YtY_{t} is

ΦYt(u)=[1+i(1a1a+)u+u2aa+]λt.\Phi_{Y_{t}}(u)=\left[1+i\left(\frac{1}{a_{-}}-\frac{1}{a_{+}}\right)u+\frac{u^{2}}{a_{-}a_{+}}\right]^{-\lambda t}. (7)

To demonstrate the effects of correlation, we take a bivariate VG model driven by three independent VG processes Y1,Y2,YY_{1},Y_{2},Y with common parameters a±a_{\pm} and λ1=λ2=(1α)λ,λY=αλ\lambda^{1}=\lambda^{2}=(1-\alpha)\lambda,\lambda^{Y}=\alpha\lambda. The bivariate log return process Xt=logStX_{t}=\log S_{t} is a mixture:

X1t=X10+Y1t+Yt;X2t=X20+Y2t+Yt.X_{1t}=X_{10}+Y_{1t}+Y_{t};\quad X_{2t}=X_{20}+Y_{2t}+Y_{t}\ . (8)

Here α[0,1]\alpha\in[0,1] leads to dependence between the two return processes, but leaves their marginal laws unchanged. An easy calculation leads to the bivariate characteristic function eiuX0Φ(u;T)e^{iuX^{\prime}_{0}}\Phi(u;T) with

Φ(u;T)\displaystyle\Phi(u;T) =\displaystyle= [1+i(1a1a+)(u1+u2)+(u1+u2)2aa+]αλt\displaystyle\left[1+i\left(\frac{1}{a_{-}}-\frac{1}{a_{+}}\right)(u_{1}+u_{2})+\frac{(u_{1}+u_{2})^{2}}{a_{-}a_{+}}\right]^{-\alpha\lambda t}
×[1+i(1a1a+)u1+u12aa+](1α)λt[1+i(1a1a+)u2+u22aa+](1α)λt.\displaystyle\hskip-48.36958pt\times\left[1+i\left(\frac{1}{a_{-}}-\frac{1}{a_{+}}\right)u_{1}+\frac{u^{2}_{1}}{a_{-}a_{+}}\right]^{-(1-\alpha)\lambda t}\left[1+i\left(\frac{1}{a_{-}}-\frac{1}{a_{+}}\right)u_{2}+\frac{u^{2}_{2}}{a_{-}a_{+}}\right]^{-(1-\alpha)\lambda t}\ .

3 Numerical Integration by Fast Fourier Transform

To compute (4) in these models we approximate the double integral by a double sum over the lattice

Γ={u(k)=(u(k1),u(k2))|k=(k1,k2){0,,N1}2},u(k)=u¯+kη\Gamma=\{u(k)=(u(k_{1}),u(k_{2}))|k=(k_{1},k_{2})\in\{0,\dots,N-1\}^{2}\},\quad u(k)=-\bar{u}+k\eta

for appropriate choices of N,η,u¯:=Nη/2.N,\eta,\bar{u}:=N\eta/2. For the FFT it is convenient to take NN to be a power of 22 and lattice spacing η\eta such that truncation of the uu-integrals to [u¯,u¯][-\bar{u},\bar{u}] and discretization leads to an acceptable error. Finally, we choose initial values X0=logS0X_{0}=\log S_{0} to lie on the reciprocal lattice with spacing η=2π/Nη=π/u¯\eta^{*}=2\pi/N\eta=\pi/\bar{u}:

Γ={x()=(x(1),x(2))|=(1,2){0,,N1}2},x()=x¯+η,x¯=Nη/2.\Gamma^{*}=\{x(\ell)=(x(\ell_{1}),x(\ell_{2}))|\ell=(\ell_{1},\ell_{2})\in\{0,\dots,N-1\}^{2}\},\ x(\ell)=-\bar{x}+\ell\eta^{*},\ \bar{x}=N\eta^{*}/2\ .

For any S0=eX0S_{0}=e^{X_{0}} with X0=x()ΓX_{0}=x(\ell)\in\Gamma^{*} we then have the approximation

Spr(S0;T)η2erT(2π)2k1,k2=0N1ei(u(k)+iϵ)x()Φ(u(k)+iϵ;T)P^(u(k)+iϵ).\mbox{Spr}(S_{0};T)\sim\frac{\eta^{2}e^{-rT}}{(2\pi)^{2}}\sum^{N-1}_{k_{1},k_{2}=0}e^{i(u(k)+i\epsilon)x(\ell)^{\prime}}\Phi(u(k)+i\epsilon;T)\hat{P}(u(k)+i\epsilon)\ . (10)

Now, as usual for the discrete FFT, as long as NN is even,

iu(k)x()=iπ(k1+k2+1+2)+2πik/N(mod 2πi).iu(k)x(\ell)^{\prime}=i\pi(k_{1}+k_{2}+\ell_{1}+\ell_{2})+2\pi ik\ell^{\prime}/N\quad(\mbox{mod}\ 2\pi i)\ .

This leads to the double inverse discrete Fourier transform

Spr(S0;T)\displaystyle\mbox{Spr}(S_{0};T) \displaystyle\sim (1)1+2erT(ηN2π)2eϵx()[1N2k1,k2=0N1e2πik/NH(k)]\displaystyle(-1)^{\ell_{1}+\ell_{2}}e^{-rT}\left(\frac{\eta N}{2\pi}\right)^{2}e^{-\epsilon x(\ell)^{\prime}}\left[\frac{1}{N^{2}}\sum^{N-1}_{k_{1},k_{2}=0}e^{2\pi ik\ell^{\prime}/N}H(k)\right] (11)
=\displaystyle= (1)1+2erT(ηN2π)2eϵx()[ifft2(H)]()\displaystyle(-1)^{\ell_{1}+\ell_{2}}e^{-rT}\left(\frac{\eta N}{2\pi}\right)^{2}e^{-\epsilon x(\ell)^{\prime}}[\mbox{ifft2}(H)](\ell)

where

H(k)=(1)k1+k2Φ(u(k)+iϵ;T)P^(u(k)+iϵ).H(k)=(-1)^{k_{1}+k_{2}}\Phi(u(k)+i\epsilon;T)\hat{P}(u(k)+i\epsilon)\ .

The selection of suitable values for ϵ,N\epsilon,N and η\eta is a somewhat subtle issue when implementing 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\eta\to 0,N\to\infty keeping u¯=Nη/2\bar{u}=N\eta/2 fixed, can be made small if the integrand of (4) is small outside the square [u¯+iϵ1,u¯+iϵ1]×[u¯+iϵ2,u¯+iϵ2][-\bar{u}+i\epsilon_{1},\bar{u}+i\epsilon_{1}]\times[-\bar{u}+i\epsilon_{2},\bar{u}+i\epsilon_{2}]. Corollary 4, proved in the Appendix, gives an O(|u|2)O(|u|^{-2}) upper bound on P^\hat{P}, while Φ(u)\Phi(u) can generally been seen directly to have some uu-decay. Typically, with some caveats, if one picks u¯\bar{u} large enough so that |Φ|<δ11|\Phi|<\delta_{1}\ll 1 and has decay outside the square, then the truncation error will be less than O(δ1)O(\delta_{1}).

The pure discretization error, defined by taking u¯,N\bar{u}\to\infty,N\to\infty while keeping η\eta fixed, can be made small if eϵX0Spre^{\epsilon X_{0}^{\prime}}\mbox{Spr}, taken as a function of X02X_{0}\in\mathbb{R}^{2}, has rapid decay in X0X_{0}. This is related to the smoothness of Φ(u)\Phi(u) and the choice of ϵ\epsilon. The first two models are not very sensitive to ϵ\epsilon, but in the VG model the following conditions are needed to ensure that singularities in uu space are avoided:

a+<ϵ1,ϵ2,ϵ1+ϵ2<a.-a_{+}<\epsilon_{1},\epsilon_{2},\epsilon_{1}+\epsilon_{2}<a_{-}\ .

The error in the approximation (11) with N=N=\infty and η\eta finite, is given by the formula

Spr(η)(X0)Spr(X0)=2\{(0,0)}e2πϵ/ηSpr(X0+2x¯).\mbox{Spr}^{(\eta)}(X_{0})-\mbox{Spr}(X_{0})=\sum_{\ell\in\mathbb{Z}^{2}\backslash\{(0,0)\}}e^{-2\pi\epsilon\ell^{\prime}/\eta}\mbox{Spr}(X_{0}+2\ell\bar{x})\ .

Typically, with some caveats, the norm of this can be made smaller than O(δ2)1O(\delta_{2})\ll 1 for X0[cx¯,cx¯]2X_{0}\in[-c\bar{x},c\bar{x}]^{2} if 0<c10<c\ll 1 and eϵX0Spr(X0)e^{\epsilon X_{0}^{\prime}}\mbox{Spr}(X_{0}) is O(δ2)O(\delta_{2}) and rapidly decaying outside the square [x¯,x¯]2[-\bar{x},\bar{x}]^{2}.

In summary, one expects that the combined truncation and discretization error will be O(δ1+δ2)O(\delta_{1}+\delta_{2}) if u¯\bar{u} and η=π/x¯\eta=\pi/\bar{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 σ\sigma) takes the form:

Spr(S0;T)σ1\displaystyle\frac{\partial{\mbox{Spr}(S_{0};T)}}{\partial{\sigma_{1}}} =\displaystyle= (1)1+2erT(ηN2π)2eϵx()[ifft2(Hσ1)]();\displaystyle(-1)^{\ell_{1}+\ell_{2}}e^{-rT}\left(\frac{\eta N}{2\pi}\right)^{2}e^{-\epsilon x(\ell)^{\prime}}[\mbox{ifft2}(\frac{\partial{H}}{\partial{\sigma_{1}}})](\ell)\ ;
H(k)σ1\displaystyle\frac{\partial{H(k)}}{\partial{\sigma_{1}}} =\displaystyle= [(u(k)+iϵ)(iσ2σ1+Σσ1(u(k)+iϵ))T/2]H(k),\displaystyle\left[-(u(k)+i\epsilon)\left(i\frac{\partial{\sigma^{2}}}{\partial{\sigma_{1}}}^{\prime}+\frac{\partial{\Sigma}}{\partial{\sigma_{1}}}(u(k)+i\epsilon)^{\prime}\right)T/2\right]H(k)\ ,

where σ2σ1=[2σ1,0]\frac{\partial{\sigma^{2}}}{\partial{\sigma_{1}}}=[2\sigma_{1},0] and Σσ1=[2σ1,ρσ2;ρσ2,0]\frac{\partial{\Sigma}}{\partial{\sigma_{1}}}=[2\sigma_{1},\rho\sigma_{2};\rho\sigma_{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\epsilon_{1}=-3,\epsilon_{2}=1.

The strength of the FFT method is demonstrated by comparison with benchmarks. Based on a selection of {S10i,S20i,Ki},i1,2,3n\{S_{10}^{i},S_{20}^{i},K^{i}\},i\in 1,2,3\dots n, the objective function we measure is defined as

Err=1ni=1n|log(Mi)log(Bi)|\mbox{Err}=\frac{1}{n}\sum_{i=1}^{n}|\log(M^{i})-\log(B^{i})| (12)

where MiM^{i} and BiB^{i} are FFT computed prices and benchmark prices for the ithith combination. We chose logS10=iπ10,logS20=π5+jπ10,i,j1,2,3,4,5,6\log{S_{10}}=\frac{i\pi}{10},\log{S_{20}}=-\frac{\pi}{5}+\frac{j\pi}{10},i,j\in{1,2,3,4,5,6} and fixed the strike K=1K=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 Γ\Gamma^{*} corresponding to N=2nN=2^{n} and u¯/10=2m\bar{u}/10=2^{m} for integers n,mn,m, all 36 prices MiM^{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 NN and u¯\bar{u}. 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 u¯\bar{u}, the objective function decreases when NN increases. The u¯=20\bar{u}=20 curve flattens out near 10510^{-5} due to its truncation error of that magnitude. In turn, we can quantify its discretization errors with respect to NN by subtracting the truncation error from the total error. The flattening of the other three curves near 101410^{-14} should be attributed to Matlab round-off errors: because of the rapid decrease of the characteristic function Φ\Phi, their truncation error is negligible. For a fixed NN, increasing u¯\bar{u} brings two effects: reducing truncation error and enlarging discretization error. These effects are well demonstrated in figure 1.

Refer to caption
Figure 1: This graph shows the objective function Err\rm{Err} for the numerical computation of the GBM spread option versus the benchmark. Errors are plotted against the grid size for different choices of u¯\bar{u}. 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.1r=0.1,T=1.0,\rho=0.5,\delta_{1}=0.05,\sigma_{1}=0.2,\delta_{2}=0.05,\sigma_{2}=0.1.

For the stochastic volatility model, no analytical or numerical method we know is consistently 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,0001,000,000 simulations, each consisting of 2000 time steps. No variance reduction was employed. The resulting objective function is shown in Figure 2. The objective function only decreases to near 4×1044\times 10^{-4}, reflecting the inaccuracy of the benchmark. A comparable graph (not shown), using benchmark prices computed with the FFT method with N=212N=2^{12} and u¯=80\bar{u}=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.

Refer to caption
Figure 2: This graph shows the objective function Err\rm{Err} for the numerical computation of the SV spread option versus the benchmark Monte Carlo simulation values computed with 1,000,0001,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.05r=0.1,T=1.0,\rho=0.5,\delta_{1}=0.05,\sigma_{1}=1.0,\rho_{1}=-0.5,\delta_{2}=0.05,\sigma_{2}=0.5,\rho_{2}=0.25,v_{0}=0.04,\kappa=1.0,\mu=0.04,\sigma_{v}=0.05.

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 process, MC is here much more efficient than for the SV model, and we were able to run 10910^{9} simulations with antithetic variates for each price. The objective function is shown in Figure 3. The truncation error for u¯=20\bar{u}=20 is about 2×1052\times 10^{-5}. The other three curves flatten out near 7×1067\times 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=212N=2^{12} and u¯=80\bar{u}=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.

Refer to caption
Figure 3: This graph shows the objective function Err\rm{Err} for the numerical computation of the VG spread option versus the benchmark values computed with Monte Carlo simulation, where 10910^{9} simulations are performed for each price. Errors are plotted against the grid size for five different choices of u¯\bar{u}. The parameters are: r=0.1,T=1.0,ρ=0.5,a+=20.4499,a=24.4499,α=0.4,λ=10r=0.1,T=1.0,\rho=0.5,a_{+}=20.4499,a_{-}=24.4499,\alpha=0.4,\lambda=10

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=256N=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.

Table 1: Prices for the two-factor GBM model of [4] for different choices of NN. The parameter values are the same as Figure 1 except we fix S10=100,S20=96,u¯=40S_{10}=100,S_{20}=96,\bar{u}=40.
Strike K Analytic 64 128 256 512
0.4 8.312461 8.206666 8.312331 8.312461 8.312461
0.8 8.114994 8.009643 8.114864 8.114994 8.114994
1.2 7.920820 7.815913 7.920691 7.920820 7.920820
1.6 7.729932 7.625469 7.729804 7.729932 7.729932
2.0 7.542324 7.438304 7.542196 7.542324 7.542324
2.4 7.357984 7.254408 7.357857 7.357984 7.357984
2.8 7.176902 7.073770 7.176775 7.176902 7.176902
3.2 6.999065 6.896377 6.998939 6.999065 6.999065
3.6 6.824458 6.722213 6.824332 6.824458 6.824458
4.0 6.653065 6.551264 6.652940 6.653065 6.653065
Table 2: Prices for the 3 factor SV model of [4] for different choices of NN. The parameter values are the same as Figure 2 except we fix S10=100,S20=96,u¯=40S_{10}=100,S_{20}=96,\bar{u}=40. The interpolation is based on a matrix with discretization of N=256N=256 and a polynomial with degree of 8.
Strike K 64 128 256 512 Interpolation Simulation
2.0 6.996467 7.544853 7.548502 7.548502 7.548502 7.545784
2.2 6.902676 7.449895 7.453536 7.453536 7.453536 7.435475
2.4 6.809696 7.355748 7.359381 7.359381 7.359381 7.360184
2.6 6.717527 7.262411 7.266036 7.266037 7.266036 7.276051
2.8 6.626167 7.169883 7.173501 7.173501 7.173501 7.193546
3.0 6.535616 7.078165 7.081775 7.081775 7.081775 7.077421
3.2 6.445873 6.987254 6.990856 6.990857 6.990856 6.983995
3.4 6.356936 6.897150 6.900745 6.900745 6.900745 6.913994
3.6 6.268806 6.807853 6.811439 6.811440 6.811439 6.818526
3.8 6.181481 6.719360 6.722939 6.722939 6.722939 6.735112
4.0 6.094959 6.631670 6.635241 6.635242 6.635241 6.621617
Table 3: Prices for the VG model of for different choices of NN. The parameter values are the same as Figure 3 except we fix S10=100,S20=96,u¯=40S_{10}=100,S_{20}=96,\bar{u}=40. The interpolation is based on a matrix with discretization of N=256N=256 and a polynomial with degree of 8. For the last column, 10910^{9} simulations are used for each price.
Strike K 64 128 256 512 Interpolation Simulation
2.0 9.157674 9.723691 9.727458 9.727458 9.727458 9.727546
2.2 9.061487 9.626247 9.630006 9.630006 9.630006 9.629444
2.4 8.965876 9.529448 9.533200 9.533200 9.533200 9.533137
2.6 8.870896 9.433296 9.437040 9.437040 9.437040 9.437323
2.8 8.776560 9.337792 9.341527 9.341528 9.341527 9.341547
3.0 8.682870 9.242934 9.246662 9.246662 9.246662 9.246273
3.2 8.589828 9.148725 9.152445 9.152445 9.152445 9.152956
3.4 8.497433 9.055163 9.058875 9.058875 9.058875 9.058997
3.6 8.405687 8.962250 8.965954 8.965954 8.965954 8.966410
3.8 8.314590 8.869984 8.873681 8.873681 8.873681 8.874129
4.0 8.224140 8.778368 8.782057 8.782057 8.782057 8.781863

The FFT computes in a single iteration an N×NN\times N panel of prices spreadspread corresponding to initial values S10=ex10+1ηS_{10}=e^{x_{10}+\ell_{1}\eta^{*}}, S20=ex20+2ηS_{20}=e^{x_{20}+\ell_{2}\eta^{*}}, K=1K=1, (1,2){0,,N1}2\ell_{1},\ell_{2})\in\{0,\dots,N-1\}^{2}. If the desired selection of {S10,S20,K}\{S_{10},S_{20},K\} fits into this panel of prices, or its scaling, a single FFT suffices. If not, then one has to match (x10,x20x_{10},x_{20}) 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 S10S_{10} and S20S_{20} are approximated by a polynomial fit along the diagonal of the price panel: Spr(S0;K1)=K1spread(1,1)\mbox{Spr}(S_{0};K_{1})=K_{1}\cdot spread(1,1), Spr(S0;K1eη)=K1eηspread(2,2)\mbox{Spr}(S_{0};K_{1}e^{-\eta^{*}})=K_{1}e^{-\eta^{*}}\cdot spread(2,2), Spr(S0;K1e2η)=K1e2ηspread(3,3)\mbox{Spr}(S_{0};K_{1}e^{-2\eta^{*}})=K_{1}e^{-2\eta^{*}}\cdot spread(3,3)\dots. 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 S1S_{1} is close to the delta of the call option, which is about 0.5. And the delta of S2S_{2} 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 S1S_{1} volatility than to S2S_{2} 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 S1TS_{1T} develops a wide spread over S2TS_{2T}. This result is consistent with observations made by [6].

Table 4: The Greeks for the GBM model compared between the FFT method and the finite difference method. The FFT method uses N=210N=2^{10} and u¯=40\bar{u}=40. The finite difference uses a two-point central formula, in which the displacement is ±1%\pm 1\%. Other parameters are the same as Table 1 except that we fix the strike K=4.0K=4.0 to make the option at-the-money.
Delta(S1) Delta(S2) Theta Vega(σ1\sigma_{1}) Vega(σ2\sigma_{2}) Spr/ρ\partial{\mbox{Spr}}/\partial{\rho}
FD 0.512648 -0.447127 3.023823 33.114315 -0.798959 -4.193749
FFT 0.512705 -0.447079 3.023777 33.114834 -0.798972 -4.193728

Since the FFT method naturally generates a panel of prices, and interpolation can be implemented 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 HH in (11) and the subsequent FFT of HH. 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 HH matrix entries of the GBM model, which is not applicable for the SV and VG models. The number of calculations for HH is of orderN2N^{2} which for large NN exceeds the NlogNN\log{N} of the FFT of HH, and thus the advantage of this efficient algorithm for GBM is magnified as NN increases. However, our FFT method is still very fast for the SV and VG models and is able to generate a large panel of prices within a couple of seconds.

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

5 High Dimensional Spread Options

The ideas of section 2 turn out to extend naturally to basket options with payoffs (S~TS1TSMT1)+(\tilde{S}_{T}-S_{1T}-\dots-S_{MT}-1)^{+} for M2M\geq 2. The analysis is based on a simple result proved in the Appendix:

Proposition 2.

Let zz\in\mathbb{R} and u=(u1,,uM)Mu=(u_{1},\dots,u_{M})^{\prime}\in\mathbb{C}^{M} with m(um)>0\Im m(u_{m})>0 for all mMm\leq M. Then

Mezδ(ezm=1Mexm)eiuxdMx=m=1MΓ(ium)Γ(im=1Mum)ei(m=1Mum)z.\int_{\mathbb{R}^{M}}\ e^{z}\delta(e^{z}-\sum_{m=1}^{M}e^{x_{m}})e^{-iux^{\prime}}d^{M}x=\frac{\prod_{m=1}^{M}\Gamma(-iu_{m})}{\Gamma(-i\sum_{m=1}^{M}u_{m})}e^{-i(\sum_{m=1}^{M}u_{m})z}\ . (13)

As before we write xm=logSm,x~=logS~x_{m}=\log S_{m},\tilde{x}=\log\tilde{S} and seek to compute for uMu\in\mathbb{C}^{M}, u~\tilde{u}\in\mathbb{C}

P^(u,u~)=M+1(ex~m=1Mexm1)+eiu~x~eiuxdMx𝑑x~\hat{P}(u,\tilde{u})=\int_{\mathbb{R}^{M+1}}(e^{\tilde{x}}-\sum_{m=1}^{M}e^{x_{m}}-1)^{+}e^{-i\tilde{u}\tilde{x}}e^{-iu^{\prime}x}d^{M}xd\tilde{x}

We introduce the factor 1=δ(ezm=1Mexm)ez𝑑z1=\int_{\mathbb{R}}\delta(e^{z}-\sum_{m=1}^{M}e^{x_{m}})e^{z}dz and interchange the zz integral with the xx integrals. Then using Proposition 2 one finds

P^(u,u~)\displaystyle\hat{P}(u,\tilde{u}) =\displaystyle= 2eiu~x~(ex~m=1Mexm1)+[Mezδ(ezm=1Mexm)eiuxdMx]𝑑x~𝑑z\displaystyle\int_{\mathbb{R}^{2}}e^{-i\tilde{u}\tilde{x}}(e^{\tilde{x}}-\sum_{m=1}^{M}e^{x_{m}}-1)^{+}\left[\int_{\mathbb{R}^{M}}e^{z}\delta(e^{z}-\sum_{m=1}^{M}e^{x_{m}})e^{-iux^{\prime}}d^{M}x\right]d\tilde{x}dz
=\displaystyle= 2eiu~x~(ex~ez1)+[Mezδ(ezm=1Mexm)eiuxdMx]𝑑x~𝑑z\displaystyle\int_{\mathbb{R}^{2}}e^{-i\tilde{u}\tilde{x}}(e^{\tilde{x}}-e^{z}-1)^{+}\left[\int_{\mathbb{R}^{M}}e^{z}\delta(e^{z}-\sum_{m=1}^{M}e^{x_{m}})e^{-iux^{\prime}}d^{M}x\right]d\tilde{x}dz
=\displaystyle= m=1MΓ(ium)Γ(im=1Mum)2eiu~x~ei(m=1Mum)z(ex~ez1)+𝑑x~𝑑z\displaystyle\frac{\prod_{m=1}^{M}\Gamma(-iu_{m})}{\Gamma(-i\sum_{m=1}^{M}u_{m})}\int_{\mathbb{R}^{2}}e^{-i\tilde{u}\tilde{x}}e^{-i(\sum_{m=1}^{M}u_{m})z}(e^{\tilde{x}}-e^{z}-1)^{+}d\tilde{x}dz

When we can apply Proposition 1, we obtain the result:

Proposition 3.

For any real numbers ϵ~,ϵ=(ϵ1,,ϵM)\tilde{\epsilon},\epsilon=(\epsilon_{1},\dots,\epsilon_{M}) with ϵm>0\epsilon_{m}>0 for all mMm\leq M and ϵ~1m=1Mϵm\tilde{\epsilon}\leq-1-\sum_{m=1}^{M}\epsilon_{m}

(ex~m=1Mexm1)+=(2π)(M+1)M+1+i(ϵ,ϵ~)eiu~x~+iuxP^(u,u~)dMu𝑑u~(e^{\tilde{x}}-\sum_{m=1}^{M}e^{x_{m}}-1)^{+}=(2\pi)^{-(M+1)}\int_{\mathbb{R}^{M+1}+i(\epsilon,\tilde{\epsilon})}e^{i\tilde{u}\tilde{x}+iux^{\prime}}\hat{P}(u,\tilde{u})d^{M}u\ d\tilde{u} (14)

where

P^(u,u~)=Γ(i(u~+m=1Mum)1)m=1MΓ(ium)Γ(iu~+1).\hat{P}(u,\tilde{u})=\frac{\Gamma(i(\tilde{u}+\sum_{m=1}^{M}u_{m})-1)\prod_{m=1}^{M}\Gamma(-iu_{m})}{\Gamma(i\tilde{u}+1)}. (15)

6 Conclusion

This paper presents a fundamentally new approach to the valuation of spread options, an important 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 performance and little extra work.

Appendix A Proof of Theorem 1 and Proposition 2

Proof of Theorem 1 Suppose ϵ2>0,ϵ1+ϵ2<1\epsilon_{2}>0,\epsilon_{1}+\epsilon_{2}<-1. One can then verify either directly or from the argument that follows that eϵxP(x),ϵ=(ϵ1,ϵ2)e^{\epsilon\cdot x}P(x),\epsilon=(\epsilon_{1},\epsilon_{2}) is in 𝕃2(2)\mathbb{L}^{2}(\mathbb{R}^{2}). Therefore, application of the Fourier inversion theorem to eϵxP(x),ϵ=(ϵ1,ϵ2)e^{\epsilon\cdot x}P(x),\epsilon=(\epsilon_{1},\epsilon_{2}) implies that

P(x)=(2π)22+iϵeiuxg(u)d2uP(x)=(2\pi)^{-2}\iint_{\mathbb{R}^{2}+i\epsilon}e^{iu\cdot x}g(u)d^{2}u (16)

where

g(u)=2eiuxP(x)d2x.g(u)=\iint_{\mathbb{R}^{2}}e^{-iu\cdot x}P(x)d^{2}x\ .

By restricting to the domain {x:x1>0,ex2<ex11}\{x:x_{1}>0,e^{x_{2}}<e^{x_{1}}-1\} we have

g(u)\displaystyle g(u) =\displaystyle= 0eiu1x1[log(ex11)eiu2x2[(ex11)ex2]𝑑x2]𝑑x1\displaystyle\int^{\infty}_{0}e^{-iu_{1}x_{1}}\left[\int^{\log(e^{x_{1}}-1)}_{-\infty}e^{-iu_{2}x_{2}}[(e^{x_{1}}-1)-e^{x_{2}}]dx_{2}\right]dx_{1}
=\displaystyle= 0eiu1x1(ex11)1iu2[1iu211iu2]𝑑x1.\displaystyle\int^{\infty}_{0}e^{-iu_{1}x_{1}}(e^{x_{1}}-1)^{1-iu_{2}}\left[\frac{1}{-iu_{2}}-\frac{1}{1-iu_{2}}\right]dx_{1}\ .

The change of variables z=ex1z=e^{-x_{1}} then leads to

g(u)=1(1iu2)(iu2)01ziu1(1zz)1iu2dzz.g(u)=\frac{1}{(1-iu_{2})(-iu_{2})}\int^{1}_{0}z^{iu_{1}}\left(\frac{1-z}{z}\right)^{1-iu_{2}}\frac{dz}{z}\ .

The beta function

B(a,b)=Γ(a)Γ(b)Γ(a+b)B(a,b)=\frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}

is defined for any complex a,ba,b with e(a),e(b)>0\Re e(a),\Re e(b)>0 by

B(a,b)=01za1(1z)b1𝑑z.B(a,b)=\int_{0}^{1}z^{a-1}(1-z)^{b-1}dz\ .

From this, and the property Γ(z)=(z1)Γ(z1)\Gamma(z)=(z-1)\Gamma(z-1) follow the formulas

g(u)=Γ(i(u1+u2)1)Γ(iu2+2)(1iu2)(iu2)Γ(iu1+1)=Γ(i(u1+u2)1)Γ(iu2)Γ(iu1+1).g(u)=\frac{\Gamma(i(u_{1}+u_{2})-1)\Gamma(-iu_{2}+2)}{(1-iu_{2})(-iu_{2})\Gamma(iu_{1}+1)}=\frac{\Gamma(i(u_{1}+u_{2})-1)\Gamma(-iu_{2})}{\Gamma(iu_{1}+1)}\ . (17)

\sqcap\kern-8.0pt\hbox{$\sqcup$}

The above derivation also leads to the following bound on P^\hat{P}.

Corollary 4.

Fix ϵ2=ϵ,ϵ1=12ϵ\epsilon_{2}=\epsilon,\epsilon_{1}=-1-2\epsilon for some ϵ>0\epsilon>0. Then

|P^(u1,u2)|Γ(ϵ)Γ(2+ϵ)Γ(2+2ϵ)1Q(|u|2/5)1/2|\hat{P}(u_{1},u_{2})|\leq\frac{\Gamma(\epsilon)\Gamma(2+\epsilon)}{\Gamma(2+2\epsilon)}\cdot\frac{1}{Q({\lvert}u{\lvert}^{2}/5)^{1/2}} (18)

where Q(z)=(z+ϵ2)(z+(1+ϵ)2)Q(z)=(z+\epsilon^{2})(z+(1+\epsilon)^{2}).

Proof:   First note that for z1,z2z_{1},z_{2}\in\mathbb{C}, |B(z1,z2)|B(e(z1),e(z2))|B(z_{1},z_{2})|\leq B(\Re e(z_{1}),\Re e(z_{2})). Then (17) and a symmetric formula with u21u1u2u_{2}\leftrightarrow-1-u_{1}-u_{2} leads to the upper bound

|P^(u1i(ϵ+1),u2+iϵ)|B(ϵ,2+ϵ)min(1Q(|u2|),1Q(|u1+u2|)).{\lvert}\hat{P}(u_{1}-i(\epsilon+1),u_{2}+i\epsilon){\lvert}\leq B(\epsilon,2+\epsilon)\min\left(\frac{1}{Q(|u_{2}|)},\frac{1}{Q(|u_{1}+u_{2}|)}\right)\ .

But since QQ is monotonic and |u|5max(|u2|,|u1+u2|){\lvert}u{\lvert}\leq\sqrt{5}\max\left(|u_{2}|,|u_{1}+u_{2}|\right) for all u2u\in\mathbb{R}^{2}, the required result follows. \sqcap\kern-8.0pt\hbox{$\sqcup$}

Proof of Proposition 2 To simplify the proof, we make the change of variables p=ezp=e^{z} and qm=exmq_{m}=e^{x_{m}}. It becomes to prove that

Mpδ(pm=1Mqm)m=1Mqmium1dMq=m=1MΓ(ium)Γ(im=1Mum)pi(m=1Mum).\displaystyle\int_{\mathbb{R}^{M}}\ p\delta(p-\sum_{m=1}^{M}q_{m})\prod_{m=1}^{M}q_{m}^{-iu_{m}-1}d^{M}q=\frac{\prod_{m=1}^{M}\Gamma(-iu_{m})}{\Gamma(-i\sum_{m=1}^{M}u_{m})}p^{-i(\sum_{m=1}^{M}u_{m})}\ . (19)

We prove the proposition by induction. The above equation trivially holds when M=1M=1. Now suppose it holds for M=NM=N. Then for M=N+1M=N+1

LHS\displaystyle LHS =\displaystyle= N+1pδ(pqN+1m=1Nqm)qN+1iuN+11m=1Nqmium1dN+1q\displaystyle\int_{\mathbb{R}^{N+1}}\ p\delta(p-q_{N+1}-\sum_{m=1}^{N}q_{m})q_{N+1}^{-iu_{N+1}-1}\prod_{m=1}^{N}q_{m}^{-iu_{m}-1}d^{N+1}q (20)
=\displaystyle= m=1NΓ(ium)Γ(im=1Num)0pppqN+1(pqN+1)i(m=1Num)qN+1iuN+11𝑑qN+1.\displaystyle\frac{\prod_{m=1}^{N}\Gamma(-iu_{m})}{\Gamma(-i\sum_{m=1}^{N}u_{m})}\int_{0}^{p}\frac{p}{p-q_{N+1}}(p-q_{N+1})^{-i(\sum_{m=1}^{N}u_{m})}q_{N+1}^{-iu_{N+1}-1}dq_{N+1}\ .

The above step makes use of the result when M=NM=N. The proof is then complete when one notices that the qN+1q_{N+1} integral is simply pi(m=1N+1um)p^{-i(\sum_{m=1}^{N+1}u_{m})} multiplied by a beta function with parameters i(m=1Num)-i(\sum_{m=1}^{N}u_{m}) and iuN+1-iu_{N+1}.

\sqcap\kern-8.0pt\hbox{$\sqcup$}

References

  • [1] R. Carmona and V. Durrleman, 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. Carr and D. Madan, Option valuation using the fast Fourier transform, Journal of Computational Finance, 2 (2000).
  • [4] M. A. H. Dempster and S. S. G. Hong, 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. Kirk, Correlations in the energy markets, in In Managing Energy Price Risk, Risk Publications and Enron, London, 1995, pp. 71–78.
  • [6] M. Li, S. Deng, and J. Zhou, Closed-form approximations for spread option prices and greeks. Available at SSRN: http://ssrn.com/abstract=952747, 2006.
  • [7] D. Madan and E. Seneta, The VG model for share market returns, Journal of Business, 63 (1990), pp. 511–524.
  • [8] William Margrabe, The value of an option to exchange one asset for another, Journal of Finance, 33 (1978), pp. 177–86.
  • [9] W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, Numerical Recipes 3rd Edition: The Art of Scientific Computing, Cambridge University Press, 2007.