462 Chapter 17
The VBA function works well for many more periods.
4
In the example
that follows we calculate the value of an American put and call for
options that expire at T = 0.75 of a year. The stochastic process that
defi nes the stock returns has mean m = 15 percent and standard deviation
σ = 35 percent. The annual continuously compounded interest rate r is 6
percent, and each year is divided into 25 subperiods, so that a single
period has length Δt = 1/25 = 0.04. Given these numbers, Up, Down, and
R are defi ned by
Up Down e===
+−
eeR
tt tt rt
μσ μσ
ΔΔ ΔΔ Δ
,,.
Here is the pricing of an American and European call and put:
4. The discussion that follows is perhaps best read after Chapters 18 and 19.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CBA
Mean return per year,
μ
15%
Standard deviation of annual return,
σ
35%
Annual interest rate, r 6%
Initial stock price, S 50.00
Option exercise price, X 50.00
Option exercise date (years) 0.75
Number of divisions of 1 year 25 <-- each year divided into 25 subperiods
Δ
t, the length of one division
0.04 <-- =1/B9
Up move per
Δ
t
1.078963 <-- =EXP(B2*B10+B3*SQRT(B10))
Down move per
Δ
t
0.938005 <-- =EXP(B2*B10-B3*SQRT(B10))
Interest rate per
Δ
t
1.002403 <-- =EXP(B4*B10)
Number of periods until maturity, n 19 <-- =ROUND(B8*B9,0)
American put 5.1311 <-- =binomial_amer_put(B11,B12,B13,B6,B7,B15)
European put 4.9213 <-- =binomial_eur_put(B11,B12,B13,B6,B7,B15)
American call 7.1501 <-- =binomial_amer_call(B11,B12,B13,B6,B7,B15)
European call 7.1501 <-- =binomial_eur_call(B11,B12,B13,B6,B7,B15)
VBA FUNCTIONS FOR CALLS AND PUTS
n divisions per year,
t = 1/n
Up=exp(
*
t +
*sqrt(
t)), Down = exp(
*
t -
*sqrt(
t))
Notice that we have compromised on the number of periods, by using
Excel’s Round function—since there are 25 divisions of one year and the
option’s maturity is T = 0.75, the actual number of periods to maturity
is 25
*
0.75, which is not a round number.
This procedure works well even for a very large number of periods. In
the next example, the option has a maturity T = 0.5, and the basic one-
year period is divided into 400 subperiods. Excel easily computes the