19 pages 1 Premia 14 Closed Formula Methods Routine cf_spm_nig.c Routine cf_hullwhite1d_zbputeuro.c Routine cf_hullwhite1d_zcbond.c Routine cf_hullwhite1d_payerswaption.c Routine cf_hullwhite1d_zbcalleuro.c Routine cf_hullwhite1d_floor.c Routine cf_hullwhite1d_receiverswaption.c Routine cf_hullwhite1d_cap.c Routine cf_libor_affine_cir1d_capfloor_fourier.c Routine cf_libor_affine_cir1d_swaption_fourier.c Routine cf_libor_affine_cir1d_capfloor_direct.c Routine cf_libor_affine_cir1d_swaption_direct.c Routine cf_carr_bns.c Routine cf_attari_bns.c Routine cf_callma.c Routine cf_echange.c Routine cf_putmin.c Routine cf_bharchiarella1d_zcbond.c Routine cf_cgmy_varianceswap.c Routine cf_rogersveraart2.c Routine cf_merhes_varianceswap.c Routine cf_carr_merhes.c Routine cf_attari_merhes.c Routine cf_put_merhes.c Routine cf_call_merhes.c Routine cf_swaptionhw2d.c Routine cf_caphw2d.c Routine cf_zcbondhw2d.c Routine cf_zbputeurohw2d.c Routine cf_floorhw2d.c Routine cf_zbcalleurohw2d.c Routine cf_attari_dps.c Routine cf_carr_dps.c Routine cf_jarrowyildirim1d_yyiis.c Routine cf_jarrowyildirim1d_iicaplet.c
19 pages 2 Routine cf_gaussianmapping_cds.c Routine cf_call_merton.c Routine cf_put_merton.c Routine cf_cirpp1d_zcbond.c Routine cf_cirpp1d_payerswaption.c Routine cf_cirpp1d_zbcalleuro.c Routine cf_cirpp1d_cap.c Routine cf_cirpp1d_receiverswaption.c Routine cf_cirpp1d_zbputeuro.c Routine cf_cirpp1d_floor.c Routine cf_hes_varianceswap.c Routine cf_attari_heston.c Routine cf_call_heston.c Routine cf_carr_heston.c Routine cf_put_heston.c Routine cf_libor_affine_gou1d_capfloor_fourier.c Routine cf_libor_affine_gou1d_swaption_fourier.c Routine cf_vasicek1d_cap.c Routine cf_vasicek1d_zcbond.c Routine cf_vasicek1d_floor.c Routine cf_vasicek1d_zbcalleuro.c Routine cf_vasicek1d_receiverswaption.c Routine cf_vasicek1d_zbputeuro.c Routine cf_vasicek1d_payerswaption.c Routine cf_rogersveraart1.c Routine cf_cir1d_zbcalleuro.c Routine cf_cir1d_zcbond.c Routine cf_cir1d_zbputeuro.c Routine cf_varianceswap_dhes.c Routine cf_carr_doubleheston.c Routine cf_callupout.c Routine cf_putdownout.c Routine cf_callupin.c Routine cf_putupout.c Routine cf_putdownin.c Routine cf_calldownin.c Routine cf_putupin.c Routine cf_calldownout.c Routine cf_call.c Routine cf_digit.c Routine cf_callspread.c
19 pages 3 Routine cf_put.c Routine cf_putin_kunitomoikeda.c Routine cf_callin_kunitomoikeda.c Routine cf_putout_kunitomoikeda.c Routine cf_callout_kunitomoikeda.c Routine cf_fied_calllookback.c Routine cf_floating_putlookback.c Routine cf_floating_calllookback.c Routine cf_fied_putlookback.c Routine cf_hullwhite1dgeneralized_receiverswaption.c Routine cf_hullwhite1dgeneralized_zbcalleuro.c Routine cf_hullwhite1dgeneralized_zbputeuro.c Routine cf_hullwhite1dgeneralized_floor.c Routine cf_hullwhite1dgeneralized_cap.c Routine cf_hullwhite1dgeneralized_payerswaption.c Routine cf_quadratic1d_zbputeuro.c Routine cf_quadratic1d_cap.c Routine cf_quadratic1d_zbcalleuro.c Routine cf_quadratic1d_floor.c Routine cf_quadratic1d_payerswaption.c Routine cf_quadratic1d_zcbond.c Routine cf_quadratic1d_receiverswaption.c Contents 1 The Black and Scholes model 4 2 Standard European Options 5 2.1 Call Options............................ 5 2.2 Put Options............................ 5 2.3 Call Spread Options....................... 5 2.4 Digit Options........................... 6 3 European Barrier Options 6 3.1 Down-Out Call Options..................... 8 3.2 Down-Out Put Options...................... 8 3.3 Up-Out Call Options....................... 9 3.4 Up-Out Put Options....................... 9 3.5 Down-In Call Options...................... 9 3.6 Down-In Put Options....................... 10
19 pages 4 3.7 Up-In Call Options........................ 10 3.8 Up-In Put Options........................ 11 4 Double Barrier European Option 11 4.1 Knock-Out Call Options..................... 12 4.2 Knock-Out Put Options..................... 13 4.3 Knock-In Call Options...................... 13 4.4 Knock-In Put Options...................... 13 5 Lookback European Options 14 5.1 Fied Lookback Call Options.................. 14 5.2 Fied Lookback Put Options................... 15 5.3 Floating Lookback Call Options................ 16 5.4 Floating Lookback Put Options................. 16 6 Standard 2D European Options 17 6.1 Call On the Maimum...................... 17 6.2 Put On the Minimum....................... 18 6.3 Echange Options........................ 18 6.4 Best Of Option.......................... 18 1 The Black and Scholes model Suppose the underlying asset price (S t, t 0) evolves according to the Black and Scholes model with continuous yield δ, that is ds s = S s ((r δ)ds + db s ), S t = From now on, we denote by T = maturity date (T t) θ = T t b = r δ K = strike price In the following, we state the closed form solutions for the price of options whose payoff is given by f(s T ), being f a suitable function, i.e. for the quantity F(t, ) = E [ e rθ f(s T ()) ].
19 pages 5 2 Standard European Options We have the general version of the Black-Sholes Formula [4] to price European options on stocks paying a continuos dividend yieald. In this section, we set: d 1 = log ( ) ( ) K + b + 2 d 2 = d 1 and N as the cumulative normal distribution function: 2.1 Call Options N(d) = 1 2π d Payoff C T = (S T K) + e 2 /2 d. Price C(t, ; K) = e δθ N(d 1 ) Ke rθ N(d 2 ) Routine cf_call.c C(t, ; K) = e δθ N(d 1 ) 2.2 Put Options Payoff P T = (K S T ) + Price P (t, ; K) = Ke rθ N( d 2 ) e δθ N( d 1 ) Routine cf_put.c P (t, ) = e δθ N( d 1 ) 2.3 Call Spread Options Payoff CS T = (S T K 1 ) + (S T K 2 ) + Price CS(t, ) = C(t, : K 1 ) C(t, ; K 2 ) CS(t, ) Routine cf_callspread.c = C(t, : K 1) C(t, : K 2)
19 pages 6 2.4 Digit Options Payoff : C T = { K if ST K, 0 Price : C(t, ) = Ke rθ N(d 1 ) : Routine cf_digit.c C(t, ) = e rθ K e d2 2 /2 2πθ 3 European Barrier Options Barrier options are known as knock-out if the value of the option nullifies if the underlying asset price reaches a fied barrier before the maturity date and knock-in if it does not. We use the names up-out and up-in call/put options, or down-out and down-in call/put options, to stress if the considered barrier is an upper or lower one. Reiner-Rubinstein [3] have developed formulas for pricing standard barrier options with cash rebate R. We set here: A = φe δθ N(φ 1 ) φke rθ N(φ 1 φ) B = φe δθ N(φ 2 ) φke rθ N(φ 2 φ) C = φ( L )2(µ+1) e δθ N(ηy 1 ) φke rθ ( L )2µ N(ηy 1 η) D = φ( L )2(µ+1) e δθ N(ηy 2 ) φke rθ ( L )2µ N(ηy 2 η) E = Re rθ [ N(η 2 η) ( L )2µ N(ηy 2 η) ] F = R( L )µ+λ N(ηz) + ( L )µ λ N(ηz 2ηλ))
19 pages 7 and da = φe δθ N(φ 1 ) db = φe δθ N(φ 2 ) + e δθ n( 2 ) (1 k) θ l dc = 1 φ2µ [ ) 2µ ( L e δθ L 2 N(ηy 2 1 ) Ke rθ N(ηy 1 η) φ ( ) 2(µ+1) L e bθ N(ηy 1 )] [ ) dd = 2µ φ 2µ ( L se δθ L 2 N(ηy 2 2 ) Ke rθ N(ηy 2 ) ( N ηy 2 η φ ( ) 2µ+2 L e δθ) N(ηy 2 ) φη ( ) 2µ+2 L e δθ] n(y ( ) 2) 1 k l [ de = 2 R e rθ ( L )2µ N(ηy 2 η)µ + η n(ηy 2 ] θ) where df = R ( L )µ+λ [ (µ + λ)n(ηz) + (µ λ)( L )2λ] 2ηR( L )µ+λ n(z) 1 = log(/k) y 1 = log(l2 /K) z = log(l/) + (1 + µ) 2 = log(/l) + (1 + µ) y 2 = log(l/) + λ µ = b 2 /2 2 λ = µ 2 + 2r 2 + (1 + µ) + (1 + µ) and η, φ are suitable numbers belonging to { 1, 1} (see net sections for details). Let M t,t = sup S τ and m t,t = inf S τ t τ T t τ T
19 pages 8 3.1 Down-Out Call Options and take Payoff C T = Price C(t, ) = C(t, ) Routine cf_calldownout.c = (S T K) + if m t,t L, R A C + F if KL B D + F da dc + df if KL db dd + df η = 1 φ = 1 3.2 Down-Out Put Options Payoff P T = Price P (t, ) = and take P (t, ) = Routine cf_putdownout.c (K S T ) + if m t,t L, R A B + C D + F if KL, F da db + dc dd + df if KL, df η = 1 φ = 1
19 pages 9 3.3 Up-Out Call Options Payoff C T = Price C(t, ) = and take C(t, ) = Routine cf_callupout.c (S T K) + if M t,t < L, R. F if KL, A B + C D + F df if KL, da db + dc dd + df η = 1 φ = 1 3.4 Up-Out Put Options and take Payoff P T = Price P (t, ) = Routine cf_putupout.c P (t, ) = η = 1 (K S T ) + if M t,t < L, R. B D + F if KL, A C + F db dd + df if KL, da dc + df φ = 1 3.5 Down-In Call Options Payoff C T = Price C(t, ) = P (t, ) = R if m t,t L, (S T K) +. C + E if KL, A B + D + E dc + de if KL, da db + dd + de
19 pages 10 and take η = 1 φ = 1 Routine cf_calldownin.c 3.6 Down-In Put Options and take Payoff P T = Price P (t, ) = P (t, ) Routine cf_putdownin.c = η = 1 R if m t,t L, (K S T ) +. B C + D + E if KL, A + E db dc + dd + de if KL, da + de φ = 1 3.7 Up-In Call Options and take Payoff C T = Price P (t, ) = C(t, ) = R if M t,t < L, (S T K) +. A + E if KL, B C + D + E da + de if KL, db dc + dd + de η = 1 φ = 1 Routine cf_callupin.c
19 pages 11 3.8 Up-In Put Options and take Payoff P T = Price P (t, ) = C(t, ) = η = 1 R if M t,t < L, (K S T ) +. A B + D + E if KL, C + E da db + dd + de if KL, dc + de φ = 1 Routine cf_putupin.c 4 Double Barrier European Option A double barrier option is knock-in or knock-out if the underlying price reaches or not a lower and/or an upper boundary prior to epiration. The eact value for double barrier call/put knock-out options is given by the Ikeda-Kunitomo formula [5], which allows to compute eactly the price when the boundaries suitably depend on the time variable t. More precisely, set U(s) = Ue δ 1s L(s) = Le δ 2s where the constants U, L, δ 1, δ 2 in are such that L(s) < U(s), for every s [t, T]. The functions U(s) and L(s) play the role of upper and lower barrier respectively. δ 1 and δ 2 determine the curvature and the case of δ 1 = 0 and δ 2 = 0 corresponds to two flat boundaries. The numerical studies suggest that in most cases it suffices to calculate the leading five terms of the series giving the price of the knock-out and knock-in double barrier call options. Let τ stand for the first time at which the underlying asset price S reaches at least one barrier, i.e. τ = inf{st ; S s L(s) or S s U(s)}.
19 pages 12 We define the following coefficients: µ 1 = 2 b δ 2 n(δ 1 δ 2 ) 2 + 1 µ 2 = 2 n(δ 1 δ 2 ) 2 µ 3 = 2 b δ 2 + n(δ 1 δ 2 ) 2 + 1 4.1 Knock-Out Call Options (S T K) + if τt Payoff C T = 0 + [ Price C(t, ) = e δθ (U n )µ1 ( L n= L n ( L n+1 U n [ (U n where F = Ue δ 1θ and Ke rθ + n= ) µ2 ( N(d + 1 ) N(d+ 2 )) ) µ3 ( N(d + 3 ) N(d+ 4 )) )µ1 2 ( ) L µ2 ( N(d L n 1 ) N(d 2 ) ) ( ) L n+1 µ3 2 ( N(d U n 3 ) N(d 4 ) ) ] d ± 1 = log(u 2n /KL 2n ) + ( ) b ± 2 d ± 3 = log(l2n+2 /KU 2n ) + ( ) b ± 2 d ± 2 = log(u 2n /FL 2n ) + ( ) b ± 2 d ± 4 = log(l2n+2 /FU 2n ) + ( b ± 2 2 ) θ Routine cf_callout_kunitomoikeda.c
19 pages 13 4.2 Knock-Out Put Options (K S T ) + if τt Payoff P T = 0 + [ Price P (t, ) = Ke rθ (U n )µ1 2 ( ) L µ2 ( N(y n= L n 1 ) N(y 2 )) ( ) L n+1 µ3 2 ( N(y U n 3 ) N(y 4 )) e δθ + n= [ (U n where E = Le δ2θ and y 1 ± = log(u 2n /EL 2n ) + ( ) b ± 2 y 3 ± = log(l2n+2 /EU 2n ) + ( ) b ± 2 Routine cf_putout_kunitomoikeda.c )µ1 ( L L n ( L n+1 U n ) µ2 ( N(y + 1 ) N(y + 2 ) ) ) µ3 ( N(y + 3 ) N(y + 4 ) ) y 2 ± = log(u 2n /KL 2n ) + ( ) b ± 2 y 4 ± = log(l2n+2 /KU 2n ) + ( b ± 2 2 ] ) θ 4.3 Knock-In Call Options The double barrier knock-in call option is priced via the no-arbitrage relationship between knock-out and knock-in option: European IN + European OUT = European Standard Routine cf_callin_kunitomoikeda.c 4.4 Knock-In Put Options The double barrier knock-in call option is priced via the no-arbitrage relationship between knock-out and knock-in option: European IN + European OUT = European Standard
19 pages 14 Routine cf_putin_kunitomoikeda.c 5 Lookback European Options Floating strike lookback options can be priced using Goldman-Sosin-Gatto formula [2] while fied strike lookback options can be priced using Conze- Viswanathen formula[7]. We set, as 0 u v T, M u,v = sup S τ and m u,v = inf S τ u τ v u τ v and d 1 = log ( ) ( ) K + b + 2 e 1 = log ( ) ( ) M 0,t + b + 2 f 1 = log ( ) ( ) M 0,t + b + 2 d 2 = d 1 e 2 = e 1 f 2 = f 1 5.1 Fied Lookback Call Options Payoff C T = (M t,t K) + Both price and delta depend on K and M 0,t. if K > M 0,t then Price C(t, ) = e δθ N(d 1 ) Ke rθ N(d 2 ) [ ( ) rθ 2 ( +e 2 N d 1 ) ] θ + e bθ N(d 1 ) K ( ) C(t, ) = e δθ N(d 1 ) 1 + 2 + e δθ n(d 1) K n(d 2 ) e rθ ( ) +e rθ 2 N ( ) ( ) d 1 t 1 2 K
19 pages 15 if K M 0,t then Price C(t, ) = e rθ (M 0,t K) + e δθ N(e 1 ) M 0,t e rθ N(e 2 ) ( ) ( rθ 2 +e 2 N e 1 ) θ + e bθ N(e 1 ) C(t, ) M 0,t = e δθ N(e 1 )(1 + 2 ) + n(e 1) e δθ M e rθ 0,t ) ( ) +e rθ M 0,t Routine cf_fied_calllookback.c 2 N ( e 1 t ) ( 1 2 n(d 2 ) 5.2 Fied Lookback Put Options Payoff P T = (K m t,t ) + Both price and delta depend on K and m 0,t. if K < m 0,t then Price P (t, ) = Ke rθ N( d 2 ) e δθ N( d 1 ) [ ( ) rθ 2 ( +e 2 N d 1 + ) ] θ e bθ N( d 1 ) K ( ) P (t, ) = e δθ N(d 1 ) 1 + 2 + e δθ n(d 1) K n(d 2 ) e rθ if K m 0,t then +e rθ ( K ) 2 N ( d 1 + t ) ( 2 1) e δθ ( 2 Price P (t, ) = e rθ (K m 0,t ) e δθ N( f 1 ) + m 0,t e rθ N( f 2 ) ( ) ( rθ 2 +e 2 N f 1 + ) θ e bθ N( f 1 ) P (t, ) m 0,t ( = e δθ 1 + 2 ) ( ) +e rθ M 0,t 1 (N(f 1 ) 1) + e δθ n(f 1) M e rθ 0,t 2 N ( ) ( f 1 + 2 ) t 1 ) n(d 2 )
19 pages 16 Routine cf_fied_putlookback.c 5.3 Floating Lookback Call Options Payoff C T = S T m t,t Price C(t, ) = e δθ N(f 1 ) m 0,t e rθ N(f 2 ) ( ) rθ 2 +e 2 N ( ) f 1 + θ e bθ N( f 1 ) C(t, ) m 0,t ( = e δθ N(f 1 ) rθ 2 e + e rθ ) 1 + 2 + e δθ n(a 1) ( ) ( 2 N f 1 + m 0,t Routine cf_floating_calllookback.c t ) ( 2 1 ) 5.4 Floating Lookback Put Options Payoff P T = M t,t S T Price P (t, ) = M 0,t e rθ N( e 2 ) e δθ N( e 1 ) ( ) rθ 2 +e 2 N ( ) e 1 θ + e bθ N(b 1 ) P (t, ) M 0,t ( ) ( = e δθ N(e 1 ) 1 + 2 + e rθ ( ) ( ) e rθ n(b1 ) M 0,t 1 Routine cf_floating_putlookback.c M 0,t ) ( 2 N + e δθ ( n(b1 ) 1 ) e 1 ) ) t (1 2 ]
19 pages 17 6 Standard 2D European Options Consider the pair of processes S t = (St 1, S2 t ) solution to ds 1 t = S1 t ((r δ 1)dt + 1 dw 1 t ), S1 0 = 1 ds 2 t = S2 t ((r δ 2)dt + 2 dw 2 t ), S2 0 = 2. where (Wt 1 2, t 0) and (Wt, t 0) denote two real valued Brownian motions with istantaneous correlation ρ. The price of option with payoff f is: F(t, 1, 2 ) = E [ e rt f ( S 1 T (1 ), S 2 T (, 2 ) )]. Here, closed formulas due to Johnson and Stulz are presented [1],[6]. We set d = log 1 2 + ( ) δ 2 δ 1 + 2 theta = 1 2 + 2 2 2ρ 1 2 log ( ) ( ) i K + r δ i + 2 i 2 θ d i =, i = 1, 2 1 θ ρ 1 = 1 ρ 2 ρ 2 = 2 ρ 1 and M as the cumulative bivariate normal distribution function: M(a, b; ρ) = 6.1 Call On the Maimum Payoff C T = (ma(s 1 T, S2 T ) K) + 1 a b 2π e 2 2ρy+y 2 1 ρ 2 2(1 ρ 2 ) ddy. Price C(t, 1, 2 ) = 1 e δ 1θ M(d 1, d; ρ 1 ) + 2 e δ 2θ M(d 2, d + ; ρ 2 ) Ke rθ ( 1 M( d 1 + 1 θ, d2 + 2 θ; ρ) ) C(t, 1, 2 ) 1 = e δ 1θ M(d 1, d; ρ 1 ) C(t, 1, 2 ) 2 = e δ 2θ M(d 2, d + ; ρ 2 )
19 pages 18 Routine cf_callma.c 6.2 Put On the Minimum Payoff P T = (K min(s 1 T, S 2 T)) + Price P (t, 1, 2 ) = Ke rθ c 0 + c 1 where P (t, 1, 2 ) 1 = e δ 1θ (1 N(d)) + e δ 1θ M(d 1, d; ρ 1 ) P (t, 1, 2 ) 2 = e δ 2θ N(d ) + e δ 2θ M(d 2, d ; ρ 2 ) c 0 = 1 e δ 1θ (1 N(d)) + 2 e δ 2θ N(d ) c 1 = 1 e δ 1θ M(d 1, d, ρ 1 ) + 2 e δ 2θ M(d 2, d ; ρ 2 ) Routine cf_putmin.c Ke rθ M(d 1 1 θ, d2 2 θ; ρ) 6.3 Echange Options Payoff E T = (S 1 T λs 2 T)) + where Price E(t, 1, 2 ) = 1 e δ 1θ N( d 1 ) λ 2 e δ 2θ N( d 2 ) d 1 = log ( ) ( ) 1 λ 2 + δ2 δ 1 + 2, d 2 = ˆd 1 θ Routine cf_echange.c 6.4 Best Of Option The payoff is B T = (ma(s 1 T K 1, S 2 T K 2 ))) +.
19 pages 19 References [1] H.JOHNSON. Options on the maimum ot the minimum of several assets. J.Of Finance and Quantitative Analysis, 22:227 283, 1987. 17 [2] B.M.GOLDMAN H.B.SOSIN M.A.GATTO. Path dependent options: buy at low, sell at high. J. of Finance, 34:111 127, 1979. 14 [3] E.REINER M.RUBINSTEIN. Breaking down the barriers. Risk, 4:28 35, 191. 6 [4] F.BLACK M.SCHOLES. The pricing of Options and Corporate Liabilities. Journal of Political Economy, 81:635 654, 1973. 5 [5] N.KUNIMOTO N.IKEDA. Pricing options with curved boundaries. Mathematical finance, 2:275 298, 1992. 11 [6] R.STULZ. Options on the minimum or the maimum of two risky assets. J. of Finance, 10:161 185, 1992. 17 [7] A.CONZE R.VISWANATHAN. Path dependent options: the case of lookback options. J. of Finance, 46:1893 1907, 1992. 14