Tải bản đầy đủ - 0 (trang)
Chapter 8. Project: Monte Carlo Pricer

# Chapter 8. Project: Monte Carlo Pricer

Tải bản đầy đủ - 0trang

332

CHAPTER 8

. Project: Monte Carlo pricer

that equation (8.2) is, of course, also valid for time-independent volatilities. Throughout this

project, however, we shall assume time-independent volatilities for implementation. Using

equation (8.2), with time-independent i , we can relate the correlations of the standardized

log-returns to the U matrix:

log St+dt i /St i − r − 21

dt

2

i

dt

= U x i ≡ yi

(8.3)

where superscript is the matrix transpose and the vector x has components xk . The yi

components are closely related to the standardized log-returns y˜ i , as defined within the

quantile-quantile project. Time series for these quantities can therefore be obtained from the

qq spreadsheet. The yi variables have correlation matrix elements

ij

Cij

≡ Corr yi yj =

(8.4)

Cii Cjj

in terms of the covariance matrix elements Cij = E yi yj , with E being an expectation over

the underlying probability distribution. The covariance matrix of standardized log-returns

is then:

n

Cov yi yj = E yi yj =

Uki Ulj E xk xl

k l=1

n

=

Uki Ukj = U U

≡ Cij

ij

(8.5)

k=1

since E xk xl = kl [i.e., the xk are independent standard normals, xk ∼ N 0 1 ]. This shows

that the U matrix used to generate correlated stock price movements is obtained from the

Cholesky factorization of the covariance matrix. One also observes that uncorrelated stock

price motion follows readily in the case of Cij = ij i2 = ij Cii , i.e., Uij = ij i = ij Cii .

We also have the useful result that

Cov y˜ i y˜ j =

Cov yi yj

Cii Cjj

=

(8.6)

ij

8.2 Calibration

In the mc spreadsheet application, the first phase is to calibrate the scenario-generation engine

to be used later for Monte Carlo pricing. This is accomplished by considering a basket of

options with known market prices on plain-vanilla calls. The second phase, discussed in the

next section, is to price the basket option of choice by running a Monte Carlo simulation

based on the calibrated volatilities as input. The spreadsheet table for the calibration basket,

duplicated in Figure 8.1, shows that for each ith stock (or index), we have a market plainvanilla call option price Ci on a single underlying equity i with fixed spot S0 i = \$100 (for

example), present calendar time t (e.g., today’s date), given maturity Ti , and strike Ki . From

this we extract an implied volatility iI for each underlying index i independently. This is

done by inverting the Black–Scholes formula for a call with i = iI ,

Market Call Pricei = C S0 i Ki r

I

i

Ti − t

(8.7)

TSE100COMPX

MEXISEX

SP500C

SPFINL

SPINDMV

BRINDEX

FRCAC40X

FT30X

IRDAVYX

NLCBSX

strike

99.22

99.59

105.67

106.64

101.54

95.48

104.72

96.04

100.14

101.15

maturity

22-Jan-2000

12-Feb-2000

5-Feb-2000

14-Jan-2000

9-May-2000

12-Feb-2000

15-Jan-2000

31-Jan-2000

14-May-2000

6-May-2000

price

5.18

5.44

2.85

1.74

6.28

7.84

2.03

7.38

7.98

5.70

333

implied vol

12.850%

13.003%

15.075%

13.508%

13.783%

9.793%

11.927%

11.443%

16.362%

15.578%

FIGURE 8.1 Calibration basket for 10 indices. All implied volatilities are computed with interest rate

r = 7%, spot 100, and present date 1-Sept-1999.

for each call contract in the calibration basket. Once the iI are obtained, the covariance

matrix of log-returns for the total number n of underlyings is estimated using the historical

returns in the qq spreadsheet. That is, we estimate the correlation from equation (8.6) using

the average

ij

1

Nret

Nret

k

y˜ i y˜ j

k

(8.8)

k=1

over the total number of historical returns Nret contained in the time series table of the qq

k

spreadsheet. Note that superscript k denotes the standardized return at time tk , and the y˜ i

are given by equation (7.5),

√ where t = tk . Equation (8.8) gives the correlation matrix. Note

that volatility varies as 1/ time, whereas covariance matrix elements vary as the square of

volatility (i.e., as 1/time). Equation (8.8) is very useful as it stands, since the matrix elements

are dimensionless and hence do not depend on the time scale of the returns (i.e., these can be

daily, weekly, yearly, etc.).

The calibrated covariance matrix is then obtained by using the correlation matrix in

conjunction with the yearly implied volatilities in equation (8.7). The covariance matrix that

is actually used for the Monte Carlo sampling, and hence used for pricing as discussed in the

next section, is given by

Cij =

ij

I

i

I

j

(8.9)

Note that from use of equation (8.1) the time scale of the covariance matrix is automatically

set by the unit used for the implied volatilities, i.e., yearly.

The price V S0 t = 0 of a basket option at present time t = 0 and present stock price vector

S0 n with maturity t = T can be expressed as a closed-form n-dimensional

S0 = S0 1

integral. In particular, the transition probability density function for an initial stock vector

S0 to attain value ST = ST 1

ST n , in time T , is given by an n-dimensional correlated

lognormal distribution [i.e., equation (1.198)]:

p ST S0 T = 2 T

− n2

det C

− 21

exp − 21 z · C−1 · z

(8.10)

334

CHAPTER 8

. Project: Monte Carlo pricer

where the n-dimensional vector z is defined by the components

zi ≡

log ST i /S0 i − r − 21

T

2

i

T

(8.11)

and i = iI (the implied volatilities). Note that these components are essentially the yi defined

in equation (8.3), with dt replaced by T . The covariance matrix C is given in terms of the

correlation matrix and the implied volatilities via equation (8.9). Risk-neutral pricing then

gives [i.e., equation (1.187)]

V S0 0 = e−rT

0

p ST S 0 T

ST dST

(8.12)

where is the payoff function.

For a Monte Carlo implementation it is useful to rewrite the n-dimensional integral in

equation (8.12) using a change of variables defined by z = U x, i.e,

n

zi =

Uki xk

(8.13)

k=1

where matrix U is obtained from the (upper) Cholesky factorization of the covariance matrix

with elements

given in equation (8.9): C = U U. The Jacobian of the transformation ST → x

n√

is T 2 det C, while for the inner product we have z · C−1 · z = x · x. Note that the inverse

transformation ST = ST x is given by equation (8.1). Combining these results with the

integrand in equation (8.12) gives the pricing formula as a discounted expectation over the

uncorrelated n-dimensional standard normal distribution:

V S0 0 =

e−rT

2 n/2

≈ e−rT

1

Ns

e− 2

1

x2

ST x dx

Ns

ST x i

(8.14)

i=1

This sum gives the Monte Carlo average of the pay-off evaluated at each ith scenario vector

ST x i , i.e., the stock price vector with components given by equation (8.1), where the

i

xk are n i.i.d. standard normal deviates for all Ns scenarios. The MFRangen numerical

library is useful for generating the standard normal deviates, while MFBlas can be used for

matrix-vector multiplication in the scenario generation.

Within the mc spreadsheet we consider the pricing of three types of basket options, as

entered within the user interface. These have the respective pay-offs

n

(i) Simple chooser: ST = max ST i i = 1

n , corresponding to

(ii) Chooser call:

ST = max Ci = max ST i − K 0 i = 1

the choice of one underlying that gives the maximum call pay-off.

n , corresponding to the

(iii) Chooser put: ST = max Pi = max K − ST i 0 i = 1

choice of maximum put pay-off. Note: The strike K is also a user input.

Figure 8.2 shows the results of a Monte Carlo simulation for pricing a simple chooser

option on a basket of 10 stocks. Fairly good convergence is obtained in the range of 5000 to

335

120.00

119.00

118.00

Price

117.00

116.00

115.00

114.00

113.00

9121

6311

4366

3021

2090

1446

1001

693

480

332

230

159

111

112.00

Number of scenarios

FIGURE 8.2 An example of the convergence pattern of an actual Monte Carlo simulation for the price

of a simple chooser option on a basket of 10 correlated stocks.

10,000 scenarios. Note that the spacing in the x-axis scale is not constant since the increments

were chosen using an exponentially increasing number of points. The user is encouraged to

experiment with pricing various contracts that are in-the-money, at-the-money, and out-ofthe-money for a varying number of total stocks in the basket. Whenever possible, compare

the results of your Monte Carlo simulations with exact results, as in the special case of two

correlated underlyings.

CHAPTER

.9

Project: The Binomial Lattice Model

The purpose of this project is to build a binomial lattice model to price both European and

American puts and calls. We demonstrate how to parameterize the lattice in terms of a drift

and a volatility parameter, adjust the drift to match forward prices, and adjust the lattice

volatility in such a way as to match the price of an at-the-money European call option. Once

calibrated, the binomial lattice is used to price European and American options. Extensions

to Derman–Kani trees are left to the interested reader.

Worksheet: bin

Required Libraries: MFioxl, MFBlas, MFFuncs, MFZero, MFStat

9.1 Building the Lattice

A binomial lattice is a recombining two-dimensional tree with a total number of time steps

M ≥ 1 over the time interval 0 T . Lattice nodes parameterize stock prices and calendar

time. Dates are denoted by tm , m = 0 1

M, where t0 is the date at which we seek the

price and tm = t0 + m t, where t = T − t0 /M is the elementary time step. At the mth

time step of size t, there are m + 1 nodes labeled by an index n = 0 1

m. The stock

price at node m n is given by

Snm = dm−n un S0

(9.1)

where u > 1 and d < 1. The value S00 = S0 is the spot price at the current time t = t0 when the

option is valued. Figure 9.1 depicts the binomial lattice geometry. The model is characterized

by the parameters d u t and by the risk-neutral probability p of an upward jump. An

upward move corresponds to a multiplication by u, whereas a downward move corresponds

to a multiplication by d. The parameter p is strictly between 0 and 1.

According to pricing theory covered in Chapter 1, arbitrage-free prices are achieved if the

discrete stochastic process defined by the binomial lattice is risk neutral. One-period returns

337

338

CHAPTER 9

. Project: The binomial lattice model

SMM

S

Snm

Snm––11

S22

S11

Snm– 1

S12

S00

S01

SjM

S02

S0M

t0

t1

t2

tm – 1

tM

tm

t

FIGURE 9.1 A binomial lattice originating at the current time t = t0 with stock level S00 to final

m−1

m−1

gives rise to two points, Snm = uSn−1

and

time tM = T . At every time slice tm−1 a grid point Sn−1

m

m−1

Sn−1 = dSn−1 , at a later time tm = tm−1 + t.

on the stock must equal the return on the prevailing risk-free rate r. Assuming r constant, we

find that the condition

puS + 1 − p dS = er t S

(9.2)

must be satisfied at all nodes S = Snm . Hence,

pu + 1 − p d = er

Let us introduce a lattice volatility parameter

t

(9.3)

by means of the following equation:

pu2 + 1 − p d2 = e 2r+

2

t

(9.4)

Proposition 9.1. In the limit as t → 0, the lattice volatility converges to the continuous-time

lognormal volatility in the Black–Scholes model.

Proof. For a lognormal distribution, we have

S i+1 = S i exp r − 21

t+

2

x∼N 0 1

tx

(9.5)

where S i denotes a stock price at time ti and t = ti+1 − ti . Conditional on the stock price

being S i at time ti , the following expected values at a later time ti+1 = ti + t obtain using

equation (9.5):

E S i+1 = S i er

E S i+1

2

t

= S i 2 e 2r+

(9.6)

2

t

(9.7)

Within the binomial lattice we have instead:

Eb S i+1 = pu + 1 − p d S i

Eb S

i+1 2

= pu + 1 − p d

Equating the variances E S i+1 2 − E S i+1

tion (9.3), gives equation (9.4).

2

2

2

and Eb S i+1

(9.8)

S

i 2

2

− Eb S i+1

(9.9)

2

, and using equa-

### Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chapter 8. Project: Monte Carlo Pricer

Tải bản đầy đủ ngay(0 tr)

×