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)
8.3 Pricing Equity Basket Options
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.
8.3 Pricing Equity Basket Options
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
8.3 Pricing Equity Basket Options
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.
This Page Intentionally Left Blank
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-