This web page may contain mathematics; it was generated from a
T_{E}X
source file using the translator
T_{T}H.
Translation is not perfect, and may even produce garbage if you are browsing on an
X Window platform (e.g. Solaris, Linux). A fix for this problem is
here.
Due to font typesetting problems with mathematical symbols,
printing this web page is NOT recommended. Where possible a PostScript
file is available for hardcopy download.
This web page contains an applet that implements the Binomial Tree
Option Pricing technique, and, in Section 3,
gives a short outline of the mathematical
theory behind the method. For a quick start you can launch the
applet by clicking the start button, and remove it by clicking
the stop button.
If this is your first time using this applet then you may like to
read the usage guidelines below in Section 2.
Section 3 below outlines the theory behind
the approximation (for that is what it is-I haven't quality
controlled it either so don't bet real money on its
predictions).
My main source for the binomial pricing model is the excellent
Baxter and Rennie, [1]. But, Wilmott,
Howison and Dewynne, [6], flesh out a lot
of the statistical detail, and Wilmott, [5],
and Hull, [3], provide variants on the
approach which use consistent approximations to the random walk
parameters. Neftci, [4], also touches on
the lattice models as a warm up for what is to come in his
later chapters. My source for basic statistics is Bulmer,
[2], but there may well be other much better books out
there. I wouldn't know-it's not my kind of bedtime reading!
Select your claim (derivative) from the menus. At present only
a few test cases are included, mainly because the data input
(for the payoff function) is more involved for condors, butterflys,
etc. I'll get around to improving this one day but, since this is
only a hobby of mine, I don't get a lot of time to spend on this stuff.
Enter:
T, the time to expiry (in years).
m, the %age drift per annum as a decimal. For example: enter 0.1
for 10%. (Actually you can put what you like for m-we
don't use it for risk-neutral valuation.)
r, the risk-free rate of interest per annum: again, type 0.1
for 10%.
s, the volatility per annum (0.1 for 10%... Yawn...)
E (or if you'd like, X), the exercise, or strike price.
S, the current asset price.
N, the number of layers in the tree. Be careful here: choosing
N < 25 will give appalling accuracy, but N > 100 may well give your
machine memory problems...
Check the box if your claim is of American-style (i.e. allows
early exercise).
Once this little lot has been entered press ``Go!'' and wait for the
asset (or stock) price tree to be drawn. This is plotted on a ``real''
set of axes so it isn't a nice symmetric wedge like you see in the
books. It is coloured according to the stock value (but see below...)
with asset prices increasing from red to blue. Feedback on the claim
value and (some of) the Greeks can be obtained by dragging the mouse
over the plot.
To see the tree built with the claim value on the nodes click
the ``claim'' button. You'll notice that the colours change (according
now to the claim value). If you checked the ``American'' box then
the regions where early exercise is recommended are coloured green.
This colour change is irreversible:
if you now click on ``asset'' to get the
asset tree back the colours will have changed from the original plot.
This is because the claim values are now being used to colour
the nodes.
You'll notice that you cannot interrogate the claim tree for the
claim values. This is because the claim tree may ``fold over'' if the
claim isn't monotonic in the asset values (a straddle, for example) and
so it is impossible to tell which value the mouse is referring to.
This section gives some outline details of how the method is
implemented.
By the way, if the formulae below look messy to you then forgive me.
Web browsers are not yet that good at displaying math, so I use
a program called TtH (scroll to the bottom of the page for the link)
to convert L^{A}T_{E}X2e source. If you are using Netscape on an X window
platform then you may have complete garbage on your screen-follow
the TtH link for instructions on how to fix it.
At any node on time layer t_{i} the asset price, S, can branch up
to the value Su at time t_{i+1}, or down to the value Sd. The
probability of an ``up move'' is p and that of a ``down move''
is 1-p. In order to simulate Geometric Brownian Motion
(see www.brunel.ac.uk/~icsrsss/finance/options/sde)
these parameters are fixed as:
p
=
u e^{mk}-1
u^{2}-1
,
1-p
=
u^{2}-ue^{mk}
u^{2} -1
,
where k: = t_{i+1} - t_{i} is the time step, and m is the drift
(actually we use r in the model because we assume a risk-neutral
world). Evidently, these definitions satisfy,
p + (1-p) = 1,
so {p, 1-p} is a valid probability measure.
The parameters u and d are given by the formulae,
d
=
u^{-1},
u^{±1}
=
z±(z^{2}-1)^{1/2},
where,
z: =
1
2
(e^{-mk} + e^{(m+s2)k}).
These formulae come from setting the discrete and continuous
(conditional) expectation
and variance to be equal. Thus, for the expectation (given S(t_{i}))
we start with,
E(S(t_{i+1})|S(t_{i})) = p S(t_{i}) u + (1-p) S(t_{i}) d = S(t_{i}) e^{mk},
and for the conditional variance, Var(S(t_{i+1})|S(t_{i})):
Look at the The Stochastic Differential Equation section at
www.brunel.ac.uk/~icsrsss/finance/options/sde for the
calculations that lead to these right-hand-sides.
One now uses d = 1/u and solves these two equations to find
p and u.
The asset price tree is built by setting the value of the asset
on the (i+1)^{th} layer (that's at time t_{i}, since
we start at t_{0} = 0) to:
S(t_{i}) = S^{i}_{j} for j = 0,¼,N,
where j corresponds to the (j+1)^{th} node up the layer
(i.e. j increases upwards) and,
S^{i}_{j} : = u^{j} d^{i-j} S(0).
Once the asset price tree is built we recursively find the claim
values X(t), starting with the payoff function at time layer
T = t_{N}, via the discounted expectation:
X^{i}_{j} = e^{-rk}( q_{i} X^{i+1}_{j+1} + (1-q_{i})X^{i+1}_{j}), for i = N-1, ¼, 0.
One last thing: you'll notice that the applet generates more than one
root node. This requires a straightforward extension of the
above and allows the Greeks,
D =
¶X
¶S
, G =
¶^{2} X
¶S^{2}
Q =
¶X
¶t
,
to be approximated in a fairly simple way at S(0).