IMPA Commodities Course : Forward Price Models Sebastian Jaimungal sebastian.jaimungal@utoronto.ca Department of Statistics and Mathematical Finance Program, University of Toronto, Toronto, Canada http://www.utstat.utoronto.ca/sjaimung February 19, 2008
Table of contents 1 Black s Forward Price Models 2 3 Initial Formulations String / Market Models
Basic Forward Price Models Basic Black(1976) Forward price model assumes df t (T ) F t (T ) = σ dw t where W t is a Q-Wiener process Each forward price evolves like a GBM on its own Option prices are trivial. Here is a call price C t = e r(t t) {F T (U) Φ(d + ) K Φ(d )} d ± = ln(f T (U)/K) ± 1 2 σ2 (T t) σ 2 (T t)
Multifactor forward price model assume instead where W (k) t d[w (k) t, W (l) t df t (T ) K F t (T ) = σ (k) t (T ) dw (k) t k=1 are correlated Q-Wiener process with ] = ρ kl dt. The covariance structure is estimated from principle component analysis (PCA) of forward price curves Volatility functions often assumed to be deterministic A further simplifying assumption is often made: σ (k) t (T ) = σ t σ (k) (T t)
A principal component analysis on forward curves is used to determine main factors The forward prices at a constant set of terms {τ 1, τ 2,..., τ n } are interpolated from given data F t1 (τ 1 ) F t1 (τ 2 ) F t1 (τ 3 )... F t1 (τ n ) F t2 (τ 1 ) F t2 (τ 2 ) F t2 (τ 3 )... F t2 (τ n )..... F tn (τ 1 ) F tn (τ 2 ) F tn (τ 3 )... F tn (τ n )
The daily returns are then computed R ti (τ k ) = F t i+1 (τ k ) F ti (τ k ) F ti (τ k ) The resulting time series used to estimate the covariance matrix Σ µ k = 1 N Σ jk = 1 N N R ti (τ k ) i=1 N (R ti (τ j ) µ j ) (R ti (τ k ) µ k ) i=1
Given the estimated covariance matrix, obtain eigenvectors (v 1, v 2,..., v n ) and eigenvalues (λ 1, λ 2,..., λ n ): Σ = V ΛV T The eigenvectors corresponding to the first n-largest eigenvalues are called the principal components For crude oil and heating oil, first three components account for 99% of variability: PC-1 accounts for parallel shifts PC-2 accounts for tilting PC-3 accounts for bending For electricity more than 10 PCs are required to account for 99% of variability
Crude Oil first 3 Principal Components 0.6 PC 1 λ =92.6934 PC 2 λ =6.4458 PC 3 λ =0.49371 0.4 0.2 PC Weight 0 0.2 0.4 0.6 0 1 2 3 4 5 6 7 Term
Heating Oil first 3 Principal Components 0.8 0.6 PC 1 λ =96.1985 PC 2 λ =2.9411 PC 3 λ =0.46599 0.4 PC Weight 0.2 0 0.2 0.4 0.6 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Term
Simulation of crude oil forward curves using 3 principal components
Simulation of crude oil forward curves using 3 principal components 110 105 100 95 Forward Price 90 85 80 75 70 65 60 0 1 2 3 4 5 6 7 Term (years)
Functional PCA Black s Forward Price Models (FPCA) developed by Ramsay & Silverman (book in 2005) views the data as sequence of random functions Allows domain specific knowledge to augment PCs Produces smooth PCs Allows interpolation and extrapolation between observation points Easily handles non-equal spaced and non-equal number of data per curve
Functional PCA Black s Forward Price Models Jaimungal & Ng (2007) introduced a consistent FPCA approach appropriate for commodity time-series: Project data onto a functional basis Fit a Vector Autoregressive (VAR) process to time-series coefficients Detrend the coefficients Remove predictable part of VAR process to extract true stochastic degrees of freedom Project covariance matrix onto a distortion metric associated with basis functions Solve a modified eigen-problem for PCs of basis coefficients Weight basis functions according to eigen-vectors
Consistent Functional PCA Project data points onto basis functions {φ 1 (τ),..., φ K (τ)} for each trading date t 1,..., t M F tm (t m + τ i ) = K β m,k φ k (τ i ) k=1 β m,i = arg min β m,i N m i=1 F t m (t m + τ i ) K β m,k φ k (τ i ) k=1 to produce a time-series of fitting coefficient estimates ˆβ m,i 2
Consistent Functional PCA β 1 (t) β 2 (t) 6 5 4 0 21 Jan 4, 2002 35 Jan 5, 2004 2 2 0 2 10/11/02 02/23/04 β 3 (t) 10/11/02 02/23/04 5 1 0 1 10/11/02 02/23/04 β 4 (t) 10/11/02 02/23/04 Prices [$] Prices [$] 20 19 18 0 2 4 6 τ Jun 6, 2005 58 56 54 Prices [$] Prices [$] 30 25 0 2 4 6 τ Dec 14, 2006 70 65 0.1 0 0.1 β 5 (t) 10/11/02 02/23/04 Rel. RMS Err [%] 52 0 2 4 6 τ 1.5 1 0.5 0 60 0 2 4 6 τ 07/03/02 01/19/03 08/07/03 02/23/04 09/10/04 03/29/05 10/15/05 05/03/06 11/19/06 (a) ˆβ m,i (b) Data Fit
Consistent Functional PCA Estimate vector auto-regressive (VAR) on time-series of projection coefficients β m = m + d t + Aβ m 1 + ε m m is a constant mean vector d is a linear trend vector (any detrending is allowed) A is a K K cross-interaction matrix ε m are iid N (0, Ω). Extract true stochastic degrees of freedom, i.e. the residuals ( ε m = β m m + d ) t + Âβ m 1
Consistent Functional PCA Let E = ( ε 1 ε 2... ε N ) T denote the matrix form of the residuals Define a variance-covariance function v(τ 1, τ 2 ) 1 N (Eφ(τ 1)) T Eφ(τ 2 ) The eigen-function problem is now < v, ξ > (τ) = λ ξ(τ) where the inner product < f, g > (τ) τ max τ min f (τ, s) g(s) ds
Consistent Functional PCA To solve the eigen-function problem, expand ξ onto the basis functions ξ(τ) = zφ(τ) Then the eigen-problem becomes here W ij < φ i, φ j > 1 N (Eφ(τ))T EWz = λφ T (τ)z Take inner product with φ to find that z satisfy the eigen-problem 1 ( ) WE T E (Wz) = λ (Wz) N
Consistent Functional PCA Comparison of extracted principal components Crude Oil data 2 1.5 Top 3 EigenFunctions PC1 : Score 92.5% PC2 : Score 6.27% PC3 : Score 0.76% 0.6 0.4 PC 1 λ =92.6934 PC 2 λ =6.4458 PC 3 λ =0.49371 1 0.2 0.5 0 PC Weight 0 0.2 0.5 0.4 1 0 1 2 3 4 5 6 7 Time to Maturity [Years] (c) Consistent FPCA 0.6 0 1 2 3 4 5 6 7 Term (d) Standard PCA
Consistent Functional PCA Principal component perturbations on a given curve 70 Std. Dev. 70 PC1 65 65 60 60 55 70 2 4 6 τ PC2 55 70 2 4 6 τ PC3 65 65 60 60 55 2 4 6 τ 55 2 4 6 τ
Consistent Functional PCA Simulation forward curves using 3 principal components
Consistent Functional PCA Simulation forward curves using 3 principal components 45 40 35 Forward Price 30 25 20 15 10 5 0 1 2 3 4 5 6 7 Term (years)
Consistent Functional PCA Simulation forward curves using 3 principal components 1 0 1 γ 1 γ 2 γ 3 2 3 4 5 6 7 8 9 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Initial Formulations String / Market Models Heath-Jarrow-Morton (HJM) inspired forward price models { T } F t (T ) = const. exp y t (s) ds t dy t (s) = µ t (s) dt + σ t (s) dw t This is an infinite system of SDEs (one for every maturity). The processes y t (s) are called forward cost of carry analogs of instantaneous forward rates of interest To avoid arbitrage, the drift and volatility must satisfy the HJM drift restrictions µ t (T ) = σ t (T ) T t σ t (s) ds
Initial Formulations String / Market Models Forward prices then evolve as df t (T ) T F t (T ) = σf t (T ) dw t, σt F (T ) = σ t (s) ds t Entire forward price curve is matched exactly With deterministic volatilities, the forward prices are GBMs { F t (T ) = F t0 (T ) exp 1 t t } (σu F (T )) 2 du + σu F (T ) dw t 2 t 0 t 0 Can match implied volatility term structure with constant volatilities Vol smiles will require state dependent vol or stochastic vol
Initial Formulations String / Market Models Spot price models can be recast into forward price models fairly easily The Schwarz (1997) stochastic convenience model corresponds to setting σ F (1) 1 e κ(t t) t (T ) = σ 1 ρσ 2 κ σ F (2) t (T ) = σ 2 1 ρ 2 1 e κ(t t) κ
Initial Formulations String / Market Models Volatility components in the Schwartz model 0.5 0.4 0.3 Vol Function 0.2 0.1 0 0.1 0.2 σ 1 ; ρ = 0 σ 2 ; ρ = 0 σ 1 ; ρ = 0.3 σ 2 ; ρ = 0.3 σ 1 ; ρ = +0.3 σ 2 ; ρ = +0.3 0.3 0 1 2 3 4 5 6 7 Term Notice that both components are affected by correlation
Initial Formulations String / Market Models Spot price models can be recast into forward price models fairly easily The HJ (2007) two-factor spot model corresponds to setting σ F (1) t (T ) = ηγ (e ) βτ e ατ [ ( ) σ F (2) t (T ) = σ 2 e 2βτ + η 2 γ 2 e βτ e ατ 2 γ = β α β +ρησγ (e ) ] βτ e ατ e βτ 1/2
Initial Formulations String / Market Models Volatility components in the HJ model 0.4 0.35 0.3 σ 1 σ 2 ; ρ = 0 σ 2 ; ρ = 0.5 σ 2 ; ρ = 0.5 Vol Function 0.25 0.2 0.15 0.1 0.05 0 0 1 2 3 4 5 6 7 Term Notice that only the tilting component is affected by correlation
String / Market Models Initial Formulations String / Market Models A continuum of maturity dates do not exist Model instead a discrete set of forward prices directly not through forward cost of carry df t (T i ) F t (T i ) = σf t (T i ) dw t Exactly fits market forward prices Exactly fits a given term structure of at-the-money implied volatilities Easy to compute call / put options on forward contracts
String / Market Models Initial Formulations String / Market Models Another way to account for the discrete nature of available maturity dates... Between pairs of maturity dates (T i, T i+1 ), define a discrete forward cost of carry ( ) y (i) 1 Ft (T i ) t T i T i 1 F t (T i 1 ) 1 Then forward prices can be recovered as F t (T n ) = S t n (1 + (T k T k 1 )y (k) k=1 t ) where T 0 = t and recall that F t (t) = S t.
String / Market Models Initial Formulations String / Market Models Each y (i) t is martingale under a measure induced by the Radon-Nikodym derivative process ( dq (i) dq ) t η (i) t = F t(t i 1 ) F 0 (T i 1 ) Then assuming a diffusive model, can write dy (i) t y (i) t = σ (i) t dw (i) t where W (i) t are Q (i) -Wiener processes
String / Market Models Initial Formulations String / Market Models Further assuming σ (i) t are deterministic (or even just constant) provides Magrabe like formula for nearby calendar spread options V t = E Q t [(F T (T i ) F T (T i 1 )) + ] [ ( E Q(i) t (F T (T i ) F T (T i 1 )) dq + = ] = F t (T i 1 )E Q(i) t [( Et Q(i) dq dq )T (i) [( Ft (T i ) F t (T i 1 ) 1 ) dq (i) )T + ] ]