Sanet - St-Introducing Financial Mathematics Theory Binomial Models and Applications
Sanet - St-Introducing Financial Mathematics Theory Binomial Models and Applications
Mathematics
Introducing Financial Mathematics: Theory, Binomial Models, and Applications
seeks to replace existing books with a rigorous stand-alone text that covers fewer
examples in greater detail with more proofs. The book uses the fundamental theo-
rem of asset pricing as an introduction to linear algebra and convex analysis. It
also provides example computer programs, mainly Octave/MATLAB® functions
but also spreadsheets and Macsyma scripts, with which students may experiment
on real data. The text’s unique coverage is in its contemporary combination of
discrete and continuous models to compute implied volatility and fit models to
market data. The goal is to bridge the large gaps among nonmathematical finance
texts, purely theoretical economics texts, and specific software-focused engineer-
ing texts.
Series Editors
Robert A. Jarrow
Rama Cont Lynch Professor of Investment Management
Department of Mathematics Johnson Graduate School of Management
Imperial College, UK Cornell University, USA
M.A.H. Dempster Dilip B. Madan
Centre for Financial Research Robert H. Smith School of Business
Department of Pure Mathematics and University of Maryland, USA
Statistics
University of Cambridge, UK
UPCOMING
Foundations of Quantitative Finance, Book I: Measure Spaces and Measurable Functions
Robert R. Reitano
Foundations of Quantitative Finance, Book II: Probability Spaces and Random Variables
Robert R. Reitano
Reasonable efforts have been made to publish reliable data and information, but the author and publisher
cannot assume responsibility for the validity of all materials or the consequences of their use. The authors
and publishers have attempted to trace the copyright holders of all material reproduced in this publica-
tion and apologize to copyright holders if permission to publish in this form has not been obtained. If any
copyright material has not been acknowledged please write and let us know so we may rectify in any future
reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmit-
ted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented,
including photocopying, microfilming, and recording, or in any information storage or retrieval system,
without written permission from the publishers.
For permission to photocopy or use material electronically from this work, access www.copyright.com or
contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-
8400. For works that are not available on CCC please contact [email protected]
Trademark notice: Product or corporate names may be trademarks or registered trademarks and are used
only for identification and explanation without intent to infringe.
DOI: 10.1201/9781003329695
Typeset in CMR10
by KnowledgeWorks Global Ltd.
Publisher’s note: This book has been prepared from camera-ready copy provided by the authors.
To Lauren Grace Plummer.
Contents
Preface xi
1 Basics 1
1.1 Assets and Portfolios . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Stocks and Bonds . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Foreign Exchange . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Derivatives . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Riskless Return . . . . . . . . . . . . . . . . . . . . . . 2
1.1.5 Interest Rates and Present Value . . . . . . . . . . . . 2
1.2 Payoff and Profit Graphs . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Payoff Graphs for Forward Contracts . . . . . . . . . . 4
1.2.2 Payoff and Profit Graphs for Options . . . . . . . . . . 4
1.2.3 Payoff and Profit Graphs for Contingent Options . . . 6
1.3 Arbitrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Random Variables and Stochastic Processes . . . . . . 7
1.3.2 Deterministic Arbitrages . . . . . . . . . . . . . . . . . 10
1.3.3 Arbitrage and Expected Value . . . . . . . . . . . . . 11
1.4 No Arbitrage and Its Consequences . . . . . . . . . . . . . . 12
1.4.1 Hedging . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.2 Martingales and Fair Prices . . . . . . . . . . . . . . . 14
1.4.3 No-Arbitrage Price Equalities . . . . . . . . . . . . . . 15
1.4.4 No-Arbitrage Inequalities . . . . . . . . . . . . . . . . 19
1.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 22
2 Continuous Models 23
2.1 Some Facts from Probability Theory . . . . . . . . . . . . . . 23
2.2 Understanding Brownian Motion . . . . . . . . . . . . . . . . 24
2.3 The Black-Scholes Formula . . . . . . . . . . . . . . . . . . . 27
2.3.1 Option Pricing . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2 Historical Note . . . . . . . . . . . . . . . . . . . . . . 31
2.3.3 Black-Scholes Greeks . . . . . . . . . . . . . . . . . . . 32
2.4 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.1 Numerical Differentiation . . . . . . . . . . . . . . . . 35
2.4.2 Interpolation . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.3 Regression . . . . . . . . . . . . . . . . . . . . . . . . . 40
vii
viii Contents
2.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 47
3 Discrete Models 49
3.1 One-Step, Two-State Models . . . . . . . . . . . . . . . . . . 49
3.1.1 Risk Neutral Probabilities . . . . . . . . . . . . . . . . 50
3.1.2 Pricing Derivatives by Hedging . . . . . . . . . . . . . 51
3.1.3 Pricing Foreign Exchange Derivatives by Hedging . . . 55
3.1.4 Zero-Coupon Bonds of Different Maturity . . . . . . . 57
3.2 One-Step, Multistate Models . . . . . . . . . . . . . . . . . . 59
3.3 Multistep Binomial Models . . . . . . . . . . . . . . . . . . . 61
3.3.1 Recombining Models . . . . . . . . . . . . . . . . . . . 62
3.3.2 Generalized Backward Induction Pricing . . . . . . . . 63
3.3.3 Arrow-Debreu Securities . . . . . . . . . . . . . . . . . 66
3.3.4 Jamshidian’s Forward Induction Formula . . . . . . . 68
3.3.5 Zero-Coupon Bonds and Interest Rate Constraints . . 71
3.4 The Cox-Ross-Rubinstein Model . . . . . . . . . . . . . . . . 73
3.4.1 Arrow-Debreu Decomposition in CRR . . . . . . . . . 74
3.4.2 Limit of CRR as N → ∞ . . . . . . . . . . . . . . . . 78
3.4.3 CRR Greeks . . . . . . . . . . . . . . . . . . . . . . . 82
3.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.6 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 86
4 Exotic Options 87
4.1 Recombining Binomial Tree Prices . . . . . . . . . . . . . . . 87
4.1.1 European-Style Options in CRR . . . . . . . . . . . . 88
4.1.2 American-Style Options in CRR . . . . . . . . . . . . 89
4.1.3 Binary Options in CRR . . . . . . . . . . . . . . . . . 90
4.1.4 Compound Options in CRR . . . . . . . . . . . . . . . 92
4.1.5 Chooser Options in CRR . . . . . . . . . . . . . . . . 93
4.1.6 Forward Start Options in CRR . . . . . . . . . . . . . 94
4.1.7 Barrier Options . . . . . . . . . . . . . . . . . . . . . . 96
4.1.8 Booster Options . . . . . . . . . . . . . . . . . . . . . 102
4.2 Path Dependent Prices . . . . . . . . . . . . . . . . . . . . . 104
4.2.1 Efficient Data Structures . . . . . . . . . . . . . . . . 104
4.2.2 Paths in Recombining Trees . . . . . . . . . . . . . . . 108
4.2.3 Path Dependent Arrow-Debreu Securities . . . . . . . 111
4.2.4 Asian-Style Options . . . . . . . . . . . . . . . . . . . 113
4.2.5 Floating Strike Options . . . . . . . . . . . . . . . . . 120
4.2.6 Lookback Options . . . . . . . . . . . . . . . . . . . . 122
4.2.7 Ladder Options . . . . . . . . . . . . . . . . . . . . . . 124
4.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.4 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 127
Contents ix
A Answers 219
A.1 . . . to Chapter 1 Exercises . . . . . . . . . . . . . . . . . . . . 219
A.2 . . . to Chapter 2 Exercises . . . . . . . . . . . . . . . . . . . . 227
A.3 . . . to Chapter 3 Exercises . . . . . . . . . . . . . . . . . . . . 239
A.4 . . . to Chapter 4 Exercises . . . . . . . . . . . . . . . . . . . . 249
A.5 . . . to Chapter 5 Exercises . . . . . . . . . . . . . . . . . . . . 258
A.6 . . . to Chapter 6 Exercises . . . . . . . . . . . . . . . . . . . . 264
A.7 . . . to Chapter 7 Exercises . . . . . . . . . . . . . . . . . . . . 273
A.8 . . . to Chapter 8 Exercises . . . . . . . . . . . . . . . . . . . . 279
Index 289
Preface
1 The Octave programs are simplified to run without modification on the commercial
xi
1
Basics
1
2 Basics
1.1.3 Derivatives
A derivative, or contingent claim, is also an asset. Its price is related to some
other underlying asset. The relationship is often a contract that creates rights
and obligations that depend upon the underlying asset prices. These may be
almost anything, but there are some standard contract types to study:
• Forward contract: an agreement to buy an asset at a future time for a
specified price;
• Option: the right, but not the obligation, to buy (Call) or sell (Put) an
asset by or on a future expiry time for a stated strike price;
• Swap: an obligation to exchange the cash flow, or income, from one
portfolio for that of another;
• Future: a forward contract with a required margin account, offering some
protection against default.
A portfolio of assets may contain derivatives of these and other kinds, in any
amounts, positive or negative.
This holds when interest rates are positive, as will always2 be assumed.
The price of a zero-coupon bond varies with time up to its maturity T . So,
define Z(t, T ) to be the price, at time 0 ≤ t ≤ T , of a zero-coupon bond with
face value F = 1 that was purchased at time 0 and matures at time T > 0.
Such a bond is a risky asset with spot price Z(0, T ) and known future payoff
Z(T, T ) = 1. It is a random variable3 for 0 < t < T , assumed to have an
expected value Z̄(t, T ) determined by spot discounts:
def Z(0, T )
Z̄(t, T ) = , 0 < t < T. (1.4)
Z(0, t)
FIGURE 1.1
Payoff graphs for the Long and Short sides of a Forward contract to buy asset
S for strike price K at time T .
Both Call and Put options have a strike price K and an expiry date T .
Some common variations are European style, where the right may only be
exercised at the expiry date, or American style, which may be exercised any
time up to expiry. More exotic options include Bermuda style, with a restricted
set of early exercise dates, or Asian style, where the strike price is an average
of the asset prices before expiry.
At expiry t = T , a Call option will only be exercised if S(T ) > K. This
makes the value of a Call option
def +
C(T ) = max{0, S(T ) − K} = [S(T ) − K] , (1.8)
which is read “the plus-part of S(T ) − K.” Similarly, a Put option will only
be exercised if S(T ) < K, and then its value is
+
P (T ) = max{0, K − S(T )} = [K − S(T )] . (1.9)
These functions giving the value of an option at expiry are nonnegative in all
states of the world, and positive in some states. It will be shown below, by
Theorem 1.1, that therefore an option must cost a positive premium, C(0) > 0
or P (0) > 0, at t = 0 when it is bought or sold.
The graph of C(T ) as a function of S(T ) is the Call payoff graph. If C(0) is
the premium paid for the Call option, then the Call profit graph is the graph
of C(T ) − C(0) as a function of S(T ). Simlarly, plot P (T ) as a function of
S(T ) to get the Put payoff graph. Plot P (T )−P (0) to get the Put profit graph.
These may be seen in Figure 1.2.
6 Basics
FIGURE 1.2
Payoff and profit for European-style Call and Put options on asset S, with
strike price K, expiry T , and respective premiums C(0) and P (0).
1.3 Arbitrage
Traditionally, an arbitrage is a trade that yields profit with no net investment.
An arbitrage arose when equivalent assets had different prices at the same
time. Arbitrageurs would buy at the lower price and simultaneously sell at
the higher price, thus making an instant riskless profit. Equivalently, they
could sell short at the higher price and buy to cover at the lower. Such trades
increased the lower-price demand and higher-price supply, causing equivalent
assets to converge in price across communicating markets.5
5 Arbitrageurs were big users of (initially expensive) rapid electronic communication!
Arbitrage 7
FIGURE 1.3
Payoff and profit graphs for European-style contingent premium Call and Put
options on asset S, with strike price K, expiry T , and contingent premium a.
• If {Sn : nS= 1, 2, . . . T
} is any countable collection of measurable sets,
then both n Sn and n Sn are measurable. Furthermore, if Si ∩ Sj = ∅
for all i 6= j, then !
[ X
Pr Sn = Pr(Sn ).
n n
which is a finite sum. It is easy to check that Pr has the requisite properties.
Similary, if Ω is a countably infinite set, then any subset is countable and Pr
may be similarly defined using one-point sets. The probability of any infinite
subset will be given by summing an infinite series of nonnegative terms, with
partial sums that increase but are bounded above (by Pr(Ω) = 1), making the
series convergent.
Uncountably infinite Ω require ideas from measure theory to understand
fully, something beyond the scope of a basic introduction. Fortunately, most
calculations involving such models may be done with real-valued functions of
real variables, not abstract Ω or Pr, and thus need only Calculus methods.
Observe that Pr((−∞, b]) = FX (b) and Pr(Ω) = 1. From this definition on
intervals, Pr may be extended to a countably additive probability function
on a collection of measurable subsets of R called the Borel sets.7 If FX is
also continuously differentiable, then X has a bounded, continuous probability
density function (p.d.f.), defined on Ω = R by
def d
fX (s) = FX (s), s ∈ Ω.
ds
This p.d.f. provides another way to compute probabilities:
Z
Pr(S) = fX (s) ds, for any Borel set S ⊂ R.
S
It is a necessary condition for certain results that X have finite expectation and
finite variance, which is true iff both E(X) and E(X 2 ) exist and are finite.
Fortunately, that holds for many important examples of random variables,
where explicit c.d.f., p.d.f., median, mean, and variance formulas are known.
Stochastic processes
The price of an asset A may be considered a function of two variables A(t, ω),
where the price at time t > 0 depends on the state ω of the world. The price
A(0, ω) at the present time t = 0 is assumed known and independent of ω.
Write A(0, ω) = A(0) for this spot price, or initial price.
Modeling the future means choosing the set Ω of possible states ω and
assigning them probabilities to define Pr. Then at each fixed t > 0, the price
of A is a random variable ω 7→ A(t, ω) on Ω. It will always be assumed to have
finite expectation and variance.
Such a function of t and ω is called a stochastic process.
As seen above, the distribution function of the r.v. completely determines a
model Ω, Pr, and vice versa. Which to use is a matter of convenience. Discrete
and finite models are simpler as Ω, Pr, while continuous models are more
simply described using c.d.f.s.
The model-dependent expected price E(A(T )) of an asset A at time T > 0 is
a weighted average. When the probability space Ω is finite, it may be computed
with a sum:
def
X
E(A(T )) = Pr({ω})A(T, ω)
ω∈Ω
used to price all other assets, whose value is the same at all times and states. Such an asset
plays the role of cash but is more generally called a numeraire.
12 Basics
∃ IA =⇒ ∃ AO =⇒ ∃ AE. (1.13)
@ AE =⇒ @ AO =⇒ @ IA. (1.14)
Theorem 1.1 If X is an option with expiry T > 0, then X(t) > 0 for all
times 0 ≤ t < T .
1.4.1 Hedging
Theorem 1.2 provides prices for derivatives through the technique of hedging,
or portfolio replication. Begin with a contingent claim X on a set of risky
assets {Ai : i = 1, 2, . . . , M }. Suppose also that there is riskless asset A0 = B.
Then a hedge for X is a portfolio containing assets {Ai : i = 0, 1, 2, . . . , M } in
proportions {hi : i = 0, 1, . . . , M } chosen so that its price matches the price
of X in every time and state:
M
X
X(t, ω) = hi (t)Ai (t, ω), 0 ≤ t ≤ T, ω ∈ Ω.
i=0
14 Basics
Finding these proportions is not always possible. However, there are special
cases where the hedge ratios {hi } are determined, at least in some model of
the future. So suppose that X is a contingent claim on a single risky asset
A1 = S. In that case, the hedge portfolio satisfies
X = h0 B + h1 S.
In the last two cases, where there are intermediate times between 0 and T , the
process of adjusting h0 and h1 to maintain price equality is called dynamic
hedging. Since these adjustments depend on the model of the future, there is
model risk with both procedures.
Namely, the expected value of P (t, ω), given that only the value P (0) = 0 at
present is known and there is no certainty about the future, is just P (0). In
particular, no portfolio assembled for zero cost is guaranteed to gain or lose
value on average. This may be called the Fair Price Theorem:
Theorem 1.4 If S is an asset and R is the riskless return over the time
t ∈ [0, T ] and there are no arbitrage expectations, then
E(S(T )) = RS(0).
Proof: Suppose first that E(S(T )) > RS(0). With no initial cash at time
t = 0, borrow S(0) from the bank and buy one S at S(0). Then at time
t = T , sell S and repay the bank RS(0), the borrowed capital plus interest.
The expected value is then
Similarly, if E(S(T )) < RS(0), then at t = 0 sell one S short and deposit
the proceeds S(0) into the bank. At t = T , withdraw RS(0) from the bank,
the initial deposit plus interest, and buy S to cover the short. The expected
value is then
RS(0) − E(S(T )) > 0,
again violating Axiom 1. 2
The spot price of an asset is determined in free markets by the collective
action of many traders. This “fair price” may be interpreted as an instanta-
neous consensus about the future.
Forward contracts
An agreed price K for a forward contract to buy a risky asset S at future
time T is negotiated so that there is no premium for either party. It is thus
the expected10 value of S(T ), which by the Fair Price Theorem above is
E(S(T )) = RS(0),
which depends on the current price S(0) and the riskless return R over the
period t = 0 to t = T . The fair strike price is then:
K = RS(0). (1.15)
But this formula actually follows from the weaker Axiom 1, regardless of the
model of the future. It may be proved by constructing two arbitrages.
Case 1: K > RS(0). At t = 0, starting with no money, do the following:
• Borrow S(0) cash from the bank at riskless rate R.
• Buy one share of S for S(0) cash.
• Sign a (short) Forward contract to sell S for K at time T .
These transactions have zero net cost, though of course they incur liabilities
and obligations. But at t = T , clear all these debts as follows:
• Execute the forward contract to obtain K in exchange for S.
• Repay the bank loan for RS(0) cash, which includes interest.
That leaves K − RS(0) > 0 with no unfunded liabilities, an arbitrage profit
prohibited by Axiom 1.
Case 2: K < RS(0).
10 The people doing the expecting are the traders of S.
16 Basics
for any number X. This may be proved by checking cases and is left as an
exercise. Applying this identity to the payoff values of European-style Call
and Put options for S at strike price K and expiry T yields another parity
formula:
+ +
C(T ) − P (T ) = [S(T ) − K] − [K − S(T )] = S(T ) − K = Flong (T ). (1.18)
Thus a long Call and a short Put have the same payoff as a long Forward
contract, if all strike prices and expiries are equal. Applying Theorem 1.2
gives another way to choose the agreed Forward price:
Corollary 1.5 The agreed price for a Forward contract to buy S at time
T > 0 is that K for which the Call and Put options on S with strike price K
and expiry T have the same premium.
Proof: By Eq.1.17, portfolio C − P and asset Flong have the same price at
time T in all states. Now let K be a strike price for which Flong (0) = 0. By
Theorem 1.2, conclude that C(0) − P (0) = Flong (0) = 0. 2
Rd
K= X(0). (1.19)
Rf
1.5 Exercises
1. Suppose that a risky asset S has spot price S(0) = 100 and that the
riskless return to T = 1 year is R = 1.0112. Assuming there are no
arbitrages, compute the following:
(a) current zero-coupon bond discount Z(0, T ),
(b) Forward price for one share of S at expiry T ,
(c) riskless annual interest rate given continuous compounding.
2. With S(0), R, and T as in Exercise 1, suppose that S(T ) is modeled by
the following table:
(a) Use this finite probability space model to estimate premiums C(0)
and P (0) for European-style Call and Put options, respectively, with
strike price K = 101 and expiry T .
(b) Does Call-Put Parity hold in this model? What might cause it to be
inaccurate?
3. Use the no-arbitrage Axiom 1 to prove that Eq.1.7 holds.
4. Prove Corollary 1.3. (Hint: review the proof of Theorem 1.2.)
5. Suppose that C(0) − P (0) < S(0) − K/R, in contradiction with Eq.1.16.
Construct an arbitrage.
6. Prove Eq.1.20, the Call-Put Parity Formula for foreign exchange options:
X(0) K
C(0) − P (0) = − .
Rf Rd
8. Plot the payoff and profit graphs for the following colorfully named
option portfolios as a function of the price S(T ) at expiry time T :
(a) Long straddle: buy one Call and one Put on S with the same expiry
T and at-the-money strike price K ≈ S(0). For what values of S(T ) will
this be profitable?
(b) Long strangle: buy one Call at Kc and one Put at Kp with the same
expiry T but with out-of-the-money strike prices Kp < S(0) < Kc . How
does its profitability compare with that of a long straddle?
9. A butterfly spread is a portfolio of European-style Call options purchased
at time t = 0 with the same expiry t = T but at three strike prices
L < M < H, where M = 12 (L + H):
• buy one Call CL at strike price L for CL (0),
• buy one Call CH at strike price H for CH (0),
• sell two Calls CM short at strike price M for 2CM (0).
(a) Plot the payoff graph for the butterfly spread at expiry when its
price is CL (T ) + CH (T ) − 2CM (T ). Mark the three strike prices on the
S(T ) axis.
(b) Conclude that CM (0) < 21 [CL (0) + CH (0)]. (Hint: apply the no-
arbitrage Axiom 1 to the graph plotted in part (a).)
10. An iron condor is a portfolio C1 − C2 − P3 + P4 of four European-style
options. To construct it, simultaneously buy one Call at K1 , sell one
Call at K2 , sell one Put at K3 , and buy one Put at K4 , all with the
same expiry T but with K1 < K2 < K3 < K4 .
(a) Describe the payoff graph for an iron condor portfolio at expiry.
(b) Assuming no arbitrage, prove that the portfolio must have a positive
net premium.
(c) Assuming no arbitrage, find inequalities bounding the maximum
profit and the maximum loss of an iron condor portfolio at expiry.
22 Basics
Asset prices are functions of time. In some financial models, prices and times
lie in a continuum, an interval of the real number line R.
In a continuous time model, changes in price are described by differential
equations. For example, a riskless asset B = B(t) with return rate r satisfies
dB
= r dt, (2.1)
B
since the relative or percentage change in price, per unit of time, is just the
return rate r. This is the continuous version of “interest equals principal times
the rate times time:”
∆B = Br∆t (2.2)
Its initial value problem for constant rate r and initial principal B0 = B(0) is
solved by
B(t) = B0 exp(rt), t ≥ 0. (2.3)
This describes the return from continuous compounding.
Now let S = S(t, ω) be the price of a risky asset at time t in state ω of
the world. The relative change of its price has two parts: a riskless rate r,
plus random fluctuations modeled by a stochastic process W (t, ω). Without
loss of generality, it may be assumed that W (0, ω) = 0 in all states and that
Var(W (1, ·)) = 1 so that it may be scaled by volatility v. The stochastic term
adds risk to the return rate and gives a generalization of Eq.2.2:
∆S = S [r∆t + v∆W ] . (2.4)
The continuous time version of this model is the stochastic differential equation
dS
= r dt + v dW, (2.5)
S
which, if solved, gives one solution for every state ω of the world. This simplifies
to Eq.2.1 for B in the riskless world where v = 0.
23
24 Continuous Models
showing how N (µ, σ 2 ), the normally distributed random variable with mean µ
and variance σ 2 , is easily obtained from N (0, 1), the standard normal random
variable with mean 0 and variance 1. Such a formula reduces the amount of
software that needs to be implemented for simulation and calculation.
The expected value E(X) of a contingent claim X depending on S(T, ω)
is computed by averaging over the states ω weighted by Pr(ω). Equivalently,
if the cumulative distribution function Q of S(T ) is known,
def
Q(s) = Pr{ω : S(T, ω) ≤ s}, −∞ < s < ∞,
then Z ∞
E(X) = X(s) dQ(s),
−∞
It remains to find this c.d.f. or p.d.f. and then compute the integral, if possible.
those states:
dS
= r dt + v dW
S
d dW
=⇒ log S = r+v
dt dt
Z t
dW (t, ω)
=⇒ log S(t, ω) = log S(0, ω) + [r + v ] dt
0 dt
Z t
dW (t, ω)
=⇒ S(t, ω) = S(0, ω) exp [r + v ] dt.
0 dt
In the case of constant r and v this gives the invalid solution
X(0, ω) = 0, all ω ∈ Ω;
(
X(i, ω) − 1, ωi = 0,
X(i + 1, ω) = i = 0, 1, . . . , n − 1;
X(i, ω) + 1, ωi = 1,
X(t, ω) = (t − i)X(i + 1, ω) + (i + 1 − t)X(i, ω), i < t < i + 1.
Now fix a time s with 0 < s < 1 and consider X(s, ω). For very large
n, X(s, ·) is distributed very much like N (0, s), with equality in the limit as
n → ∞. Also, the position X(s, ω) was reached by a path determined by the
first bsnc of the bits, namely ω0 , ω1 , . . . , ωbsnc . Where X goes after that is
determined by the remaining bits ωbsnc+1 , . . . , ωn , which are independent in
the sense that knowing the first bits of unknown ω ∈ Ω gives no information
about the last bits. Hence the random variable X(1, ω) − X(s, ω) will be
independent of X(s, ω) = X(s, ω) − X(0, ω). More generally, for 0 ≤ s < t <
u ≤ 1, X(u, ω) − X(t, ω) is independent of X(t, ω) − X(s, ω). This is called
the independent increments property.
The Black-Scholes Formula 27
E(X(t, ω)|X(s, ω) = x) = x.
More generally, the conditional expectation is the last known value, irrespec-
tive of prior positions:
This is called the martingale property. It means that knowledge of the current
and past positions does not provide certainty about future movements. It is a
standard assumption that excludes arbitrage expectations.
The limit of the standardized random walk X as n → ∞ is the Wiener
process, or standardized Brownian motion, and it shares the normal distri-
bution, variance t, bounded quadratic variation, independent increments, and
martingale properties. This makes it suitable for modeling financial markets.
v2
S(t, ω) = S0 exp (r − )t + vW (t, ω) , (2.8)
2
where S0 = S(0, ω) is the spot price of S, assumed to be the same for all ω.
This is an explicit function of W , so the distribution function for S may be
computed from that of Brownian motion. This is a good practical reason to
model risky price fluctuations with Brownian motion.
S and S0 will have the same sign, since exp() takes only positive values,
so without loss of generality both sides may be assumed positive and the
logarithm function applied to Eq.2.8 to give
v2
log S(t, ω) = log S0 + (r − )t + vW (t, ω). (2.9)
2
Thus, for each fixed time t ≥ 0, log S(t, ·) is a random variable with the
same distribution3 as W (t, ·) scaled by the constant volatility v and then
2
shifted by the constant mean log S0 + (r − v2 )t.
Now, W (t, ·), being the result of Brownian motion starting at 0 and running
for time t, is normally distributed with mean 0 and variance t:
W (t, ·) ∼ N (0, t), =⇒ vW (t, ·) ∼ N (0, v 2 t), (2.10)
in the notation of Eq.1.10, since multiplying a random variable by a constant
v multiplies its variance by v 2 . Likewise, adding a constant m to a random
variable adds m to its mean. Thus,
v2
log S(t, ·) ∼ log S0 + (r − )t + N (0, v 2 t)
2
v2
∼ N log S0 + (r − )t, v 2 t ,
2
so log S in this model, at each fixed time t ≥ 0, is a normal random variable
with mean and variance
def v2 def
µ = log S0 + (r − )t; σ 2 = v 2 t. (2.11)
2
Since log S is normally distributed, S itself has a lognormal distribution:
S(t, ·) ∼ Lognormal µ, σ 2 ,
(2.12)
where, by convention, the parameters are the mean and variance, respectively,
of the normal random variable log S. That is what must be used to compute
expected values of functions of S such as options payoffs.
It is known4 that Lognormal(µ, σ 2 ) has a probability density function
[log s − µ]2
1
q(s) = √ exp − , (2.13)
sσ 2π 2σ 2
for s ∈ (0, ∞). As a p.d.f., it satisfies the usual requirements:
Z ∞
(∀s) q(s) ≥ 0; q(s) ds = 1. (2.14)
0
where Φ is the c.d.f. of N (0, 1), a special function that is implemented in many
software packages:
Z z
def 1 x2
Φ(z) = √ exp(− ) dx. (2.17)
2π −∞ 2
The integrand in Eq.2.17 for Φ is the standard normal p.d.f.:
def 1 x2
φ(x) = √ exp(− ). (2.18)
2π 2
Because φ(−x) = φ(x), it is easily shown that
Φ(−z) = 1 − Φ(z). (2.19)
2
Also, the normal random variable X ∼ N (a, b ), with mean a and variance
b2 , has respective p.d.f. and c.d.f.
1 x−a x−a
φ and Φ ,
b b b
which may be derived by substitution within the integral defining Φ.
Deriving this equation or its solution is beyond the scope of this book, but
+
for the terminal condition V (T, x) = [x − K] , namely for a European Call
option with strike price K, it is
2
!
x
+ (r + v2 )t
log K
V (T − t, x) = xΦ √
v t
2
!
x
+ (r − v2 )t
−rt log K
−Ke Φ √ ,
v t
where Φ(d1 ) and Φ(d2 ) are the same risk-adjusted probabilities as before.
def ∂C(0)
∆C = = Φ(d1 ); (2.28)
∂S0
def ∂P (0)
∆P = = Φ(d1 ) − 1. (2.29)
∂S0
Note that ∆C −∆P = 1, which may also be derived directly from the Call-Put
Parity Formula.
Here φ(z) = Φ0 (z) is the standard normal p.d.f. The equality ΓC = ΓP is also
evident from ∆C − ∆P = 1.
The Black-Scholes Formula 33
2.4 Implementation
The Black-Scholes formulas for Calls and Puts break up nicely into stepwise
computations in Octave (or MATLAB) using Eqs.2.24, 2.25, and 2.26:
1 function [ C0 , P0 ] = BS(T, S0 , K, r , v )
2 % Octave /MATLAB f u n c t i o n t o e v a l u a t e
3 % t h e no−d i v i d e n d European−s t y l e
4 % C a l l and Put o p t i o n p r i c e u s i n g t h e
5 % Black−S c h o l e s f o r m u l a s .
6 % INPUTS : ( Example )
7 % T = time t o e x p i r y (1 year )
8 % S0 = a s s e t s p o t p r i c e ( $90 )
9 % K = strike price ( $95 )
10 % r = r i s k l e s s APR (0.02)
11 % v = volatility (0.15)
12 % OUTPUTS:
13 % C0 = European−s t y l e C a l l premium C( 0 )
14 % P0 = European s t y l e Put premium P( 0 )
15 % EXAMPLE:
16 % [ C, P ] = BS ( 1 , 9 0 , 9 5 , 0 . 0 2 , 0 . 1 5 )
17 %
18 normcdf = @( x ) 0 . 5 ∗ ( 1 . 0 + e r f ( x/ sqrt ( 2 . 0 ) ) ) ;
19 d1 = ( log ( S0 /K)+T∗ ( r+v ^2/2) ) / ( v∗ sqrt (T) ) ;
20 d2 = ( log ( S0 /K)+T∗ ( r−v ^2/2) ) / ( v∗ sqrt (T) ) ;
21 % A l t e r n a t i v e l y , d2=d1−v∗ s q r t (T) ;
22 C0 = S0 ∗ normcdf ( d1 )−K∗exp(− r ∗T) ∗ normcdf ( d2 ) ;
23 P0 = K∗exp(− r ∗T) ∗ normcdf(−d2 )−S0 ∗ normcdf(−d1 ) ;
24 return
25 end
1 /∗ BLACK−SCHOLES "GREEKS" ∗/
2 /∗ D e f i n e p h i ( ) u s i n g b u i l t −i n f u n c t i o n exp ( ) : ∗/
3 normpdf ( z ) := exp(−z ^2/2) / s q r t (2∗% p i ) ; /∗ N( 0 , 1 ) pdf ∗/
4 DeltaC : normcdf ( d1 ) ; DeltaP : normcdf ( d1 ) −1;
5 GammaC: normpdf ( d1 ) / ( v∗ S0 ∗ s q r t (T) ) ; GammaP: GammaC;
6 boTheta : −v∗ S0 ∗ normpdf ( d1 ) / ( 2 ∗ s q r t (T) ) ; /∗ common ∗/
7 ThetaC : boTheta − r ∗ exp(− r ∗T) ∗K∗ normcdf ( d2 ) ;
8 ThetaP : boTheta + r ∗ exp(− r ∗T) ∗K∗ normcdf(−d2 ) ;
9 VegaC : S0 ∗ normpdf ( d1 ) ∗ s q r t (T) ; VegaP : VegaC ;
10 RhoC : T∗ exp(− r ∗T) ∗K∗ normcdf ( d2 ) ;
11 RhoP : −T∗ exp(− r ∗T) ∗K∗ normcdf(−d2 ) ;
h2 00
f (x + h) = f (x) + hf 0 (x) + f (x) + O(h3 ),
2
h2
f (x − h) = f (x) − hf 0 (x) + f 00 (x) + O(h3 ),
2
so by subtracting and dividing one gets
f (x + h) − f (x − h)
= f 0 (x) + O(h3 )/h = f 0 (x) + O(h2 ),
2h
36 Continuous Models
whereas
f (x + h) − f (x)
= f 0 (x) + O(h).
h
The big-Oh notation O(hk ) means “smaller than a fixed multiple of |h|k for
all sufficiently small |h|.” For example, h2 = O(h) for all sufficiently small |h|.
The reverse is not true: O(h2 ) error will decrease faster and become strictly
smaller than O(h) error as h → 0.
If g = g(x1 , x2 , . . . ) is a function of two or more variables, then it is said
to be differentiable if it has continuous partial derivatives
2.4.2 Interpolation
The values of a function f (x) may only be known at certain values of x.
Under various assumptions on f , its values elsewhere may be computed, or at
least approximated, by interpolation. This is useful for functions such as asset
prices in discrete models, or to estimate interest rates from specific published
maturity times.
Polynomial interpolation
If a polynomial p of degree n or less has known values y0 , y1 , . . . , yn at n + 1
distinct points {x0 , x1 , . . . , xn }, then its values are determined at every x. This
is a generalization of the statement that “two points determine a line,”
y1 − y0
p(x) = y0 + (x − x0 ),
x1 − x0
38 Continuous Models
which is the point-slope equation of the line passing through (x0 , y0 ) and
(x1 , y1 ). This also has a more symmetrical form:
(x1 − x)y0 + (x − x0 )y1
p(x) = .
x1 − x0
In both cases, the polynomial is p(x) = p1 x + p0 with p1 , p0 determined by
the interpolation points (x0 , y0 ), (x1 , y1 ).
A degree n polynomial has the formula
10
0 polyfit(x,y,4)
spline(x,y)
(x,y)
-2
0 1 2 3 4
FIGURE 2.1
Comparison of two interpolation methods.
Spline interpolation
For large n, the polynomial interpolating {(x0 , y0 ), . . . , (xn , yn )} may have un-
desirably high degree. This may be avoided by using piecewise cubic polyno-
mials called splines between adjacent x-values. For x0 < x1 < · · · < xn , there
will be a different cubic polynomial ci for every interval [xi−1 , xi ], i = 1, . . . , n.
Hence the interpolating function is
def
s(x) = ci (x) = ci3 x3 + ci2 x2 + ci1 x + ci0 , if xi−1 ≤ x ≤ xi ,
2.4.3 Regression
The relationship between an independent variable x and another variable y
may not be known, but a hypothesis like y = f (x) can be tested by mea-
surements {(xi , yi ) : i = 1, . . . , n}, with f adjusted to minimize the errors
|yi − f (xi )|. This procedure is called regression, and the minimizing f is called
the best fit to the data. Confidence in the hypothesized relationship grows if
the errors remain small as the number n of measurements increases.
This same solution is returned by the function polyfit() with the degree
parameter set to 1:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; deg=1; polyfit(x,y,deg)
The normal equations for the overdetermined system to fit a quadratic poly-
nomial f (x) = p2 x2 + p1 x + p0 are similar:
2
x1 x1 1
x22 x2 1
QT Qp = QT y, for Q = . .. . (2.46)
..
.. . .
x2n xn 1
10
polyfit(x,y,1)
polyfit(x,y,2)
polyfit(x,y,4)
-5
0 1 2 3 4
FIGURE 2.2
Comparison of regression and interpolation.
The minimum will be at the unique critical point ∇E(p) = 0, giving a system
of m linear equations for the expansion coefficients p that is very similar to
the normal Eq.2.45:
f1 (x1 ) f2 (x1 ) · · · fm (x1 )
f1 (x2 ) f2 (x2 ) · · · fm (x2 )
FT Fp = FT y, for F = . .. . (2.47)
.. ..
.. . . .
f1 (xn ) f2 (xn ) · · · fm (xn )
For a more general example, put m = 3 and use f1 (x) = 1, f2 (x) = exp(x),
and f3 (x) = cos(x) to fit the data from before. The least squares p may be
found directly from Eq.2.47:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; % must be column vectors
f1=@(v) ones(size(v)); f2=@(v) exp(v); f3=@(v) cos(v); % functions
F=@(v) [f1(v),f2(v),f3(v)]; % regression matrix function
pF=(F(x)’*F(x))\(F(x)’*y); % least squares best fit coeffs
Setting ∇Ew (p) = 0 gives another system of linear equations for the unique
critical point p, generalizing the normal equations a bit further:
w1 0 · · · 0
..
0 w2 .
FT WFp = FT Wy; W= .
. (2.48)
.. ..
. 0
0 ··· 0 wn
Using the previous example with weights w = (1, 5, 8, 5, 1), the best unbiased
fit is computed with the following Octave/MATLAB commands:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; z=linspace(0,4,41)’; % columns
f1=@(v) ones(size(v)); f2=@(v) exp(v); f3=@(v) cos(v); % functions
F=@(v) [f1(v),f2(v),f3(v)]; % regression matrix function
w=[1;5;8;5;1]; W=diag(w); % weights and diagonal weight matrix
pW=(F(x)’*W*F(x))\(F(x)’*W*y); % weighted least squares coeffs
wi x2i
P P P
w i xi w i xi yi
XT WX = P P
; XT Wy = P .
wi xi wi wi yi
Then
p1
= p = (XT WX)−1 XT Wy
p2
give the slope and intercept of the best fit line f (x) = p1 x + p2 :
P P P
wi xi yi − ( wi xi )( wi yi )
Slope p1 =
wi x2i − ( wi xi )2
P P
X X
Intercept p2 = wi yi − m w i xi .
Using the previous example with weights w = (1, 5, 8, 5, 1), the slope and
intercept are computed in Octave/MATLAB as follows:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; w=[1;5;8;5;1]; W=diag(w);
X=[x ones(size(x))]; p=(X’*W*X)\(X’*W*y); slope=p(1),inter=p(2)
10
unweighted
0 weighted
zero-intercept
(x,y)
-2
0 1 2 3 4
FIGURE 2.3
Comparison of unweighted, weighted, and weighted zero-intercept linear re-
gression.
legend("unweighted","weighted","zero-intercept","(x,y)",
"location","southeast");
title("Unweighted, Weighted, and Weighted Zero-Intercept Regression");
2.5 Exercises
1. Let Z x
1 2
Φ(x) = √ e−t /2
dt
2π −∞
S0 √
d1 + d2 = 2(log + rT )/(v T ),
K
and thus (d21 − d22 )/2 = (d1 − d2 )(d1 + d2 )/2 = log(S0 /K) + rT .)
5. Derive ∆C and ∆P in Section 2.3.3 by differentiating the Black-Scholes
formulas.
6. Derive ΓC and ΓP in Section 2.3.3 from Black-Scholes.
7. Derive ΘC and ΘP in Section 2.3.3 from Black-Scholes.
Further Reading 47
The spot price for ABC is $47.58. Estimate the premium for the at-
the-money Call option in the following ways:
(a) Unweighted quadratic regression.
(b) Weighted quadratic regression.
(c) Polynomial interpolation.
(d) Spline interpolation.
A probability space is called discrete if its set of possible futures can be indexed
by integers:
Ω = {ω1 , . . . , ωN }.
This name also applies to countably infinite sets Ω where N is allowed to tend
to infinity. In both cases, it is possible to define a probability function1 Pr(ω)
on individual states ω ∈ Ω. The requirement
X
1= Pr(ω)
ω∈Ω
makes sense for countably infinite Ω using Calculus to evaluate infinite sums.
A stochastic process is called discrete on the interval [0, T ] ⊂ R if its time
variable takes values in a finite set:
t ∈ {ti : i = 0, 1, . . . , M }; 0 = t0 < t1 < · · · < tM = T.
This name also applies to countably infinite sequences of times as are needed
for T = ∞.
A model of future asset prices A(t, ω) is called discrete if both the time
variable and state variable are discrete. It is reasonable to suppose that such
discrete models can give realistic simulations of actual markets since spot
prices are decided after finitely many actions and are posted at discrete times.
49
50 Discrete Models
For a risky asset S(t, ω), the model assigns different prices2 at time t = T .
For definiteness, and without loss of generality, it may be assumed that
This can always be arranged by relabeling the up and down states, if necessary.
The no-arbitrage assumption imposes a relation with S(0):
Theorem 3.1 S(T, ↓) < RS(0) < S(T, ↑).
are no arbitrages. Its consequence is that market actions have moved S(0)
to the no-arbitrage price, averaging all opinions about S(T ). Solving for p in
Theorem 1.4 then gives
RS(0) − S(T, ↓) S(T, ↑) − RS(0)
Pr(↑) = p = ; Pr(↓) = 1 − p = .
S(T, ↑) − S(T, ↓) S(T, ↑) − S(T, ↓)
These are called risk neutral probabilities. Theorem 3.1 implies
The quantities h0 and h1 are called hedge ratios. In the one-step two-state
model they are determined algebraically from the system of two simultaneous
linear equations
where there is one equation for each state at expiry T . Such a system, with
two equations and two unknowns h0 , h1 , is solvable if S(T, ↑) 6= S(T, ↓) and
def
B(T, ↑) = B(T, ↓) = R > 0. Solving it, which is left as an exercise, gives
The hedge ratios depend upon the model prices S(T, ↑) and S(T, ↓), which
determine X(T, ↑) and X(T, ↓), and the riskless return R = B(T ). But it is
also useful to link X(0) directly to its own payoffs. Substituting the h0 , h1
formulas into Eq.3.2 and rearranging in terms of X(T, ↑) and X(T, ↓) gives
X(0) = h0 R + h1 S(0)
S(T, ↑)X(T, ↓) − S(T, ↓)X(T, ↑) X(T, ↑) − X(T, ↓)
= R+ S(0)
(S(T, ↑) − S(T, ↓))R S(T, ↑) − S(T, ↓)
S(0) − S(T, ↓)/R S(T, ↑)/R − S(0)
= X(T, ↑) + X(T, ↓)
S(T, ↑) − S(T, ↓) S(T, ↑) − S(T, ↓)
def pX(T, ↑) + (1 − p)X(T, ↓)
= ,
R
where p is evidently the risk neutral probability for the S model:
Likewise,
def S(T, ↑) − RS(0)
1−p = Pr(↓) = .
S(T, ↑) − S(T, ↓)
Then the equation
pX(T, ↑) + (1 − p)X(T, ↓)
X(0) = , (3.4)
R
together with Eq.3.3 for p, is called the backward pricing formula for deriva-
tives. It is important to note that it depends on the price model for the
underlying asset S and the riskless return R.
Similarly,
The second equality follows from the identity in Eq.1.17 which implies that
+ +
[S − K] − [K − S] = S − K. The last equality follows from Eq.3.4 applied
to S itself. Divide by R to deduce the Call-Put parity formula of Eq.1.16:
Note that all mention of the model has vanished. This equation may be viewed
as a prediction of the two-state model. Its agreement with the formula deduced
from the no-arbitrage Axiom 1 is a successful test of the model.
But then short-selling the “vanilla” European Call option gives an arbitrage.
Case 2: If S(T, ↑) > S(T, ↓) > K, then
p[S(T, ↑) − K − α] + (1 − p)[S(T, ↓) − K − α]
0 =
R
pS(T, ↑) + (1 − p)S(T, ↓) (p + 1 − p)(K + α)
= −
R R
= S(0) − (K + α)/R,
α = RS(0) − K = E(S(T )) − K,
using Theorem 1.4. The contingent premium option expires “in the money”
in all states, so the premium should just cancel the expected payoff. But in
this case, short-selling the “vanilla” European Put yields an arbitrage.
There remains one interesting, no-arbitrage case:
Case 3: If S(T, ↑) > K > S(T, ↓), then
+
p[S(T, ↑) − K − α] + (1 − p)[0] p [S(T, ↑) − K] pα pα
0= = − = C(0) − ,
R R R R
where C(0) is the “vanilla” European Call premium. Solving for α gives
α = RC(0)/p.
The spot price for each unit portfolio may be computed by substituting W
for X in Eq.3.4 and then using Eq.3.5:
where Wω is the unit portfolio that pays 1 in state ω and 0 in all other states.
The special case Ω = {↑, ↓} of this expansion recovers Eq.3.4:
p 1−p
X(0) = W↑ (0)X(T, ↑) + W↓ (0)X(T, ↓) = X(T, ↑) + X(T, ↓).
R R
The result is
V (T, ↓)X(T, ↑) − V (T, ↑)X(T, ↓) V (T, ↑) − V (T, ↓)
hd = ; hf = .
Rd (X(T, ↑) − X(T, ↓)) Rf (X(T, ↑) − X(T, ↓))
Applying Theorem 1.2, the one-price theorem, then gives
V (0) = hd + hf X(0)
V (T, ↓)X(T, ↑) − V (T, ↑)X(T, ↓) (V (T, ↑) − V (T, ↓))X(0)
= +
Rd (X(T, ↑) − X(T, ↓)) Rf (X(T, ↑) − X(T, ↓))
X(0)/Rf − X(T, ↓)/Rd X(T, ↑)/Rd − X(0)/Rf
= V (T, ↑) + V (T, ↓).
X(T, ↑) − X(T, ↓) X(T, ↑) − X(T, ↓)
This gives the same backward pricing formula as before:
pV (T, ↑) + (1 − p)V (T, ↓)
V (0) = , (3.7)
Rd
except that the risk neutral probabilities in this case are
Rd
def Rf X(0) − X(T, ↓)
p = Pr(ω =↑) = , (3.8)
X(T, ↑) − X(T, ↓)
and therefore
Rd
def
X(T, ↑) − Rf X(0)
1−p = Pr(ω =↓) = .
X(T, ↑) − X(T, ↓)
One-Step, Two-State Models 57
where p = Pr(↑) is the risk neutral probability, and Z(0, T ) is the spot price
of a zero-coupon bond with maturity T and face value 1. 2
Since the two future riskless returns have one constraint equation, they
are determined by one parameter. Two such parametrizations are popular:
def
Ho and Lee: Fix a ratio k = R(1, ↑)/R(1, ↓) between the future up and
down returns. Then Corollary 3.4 determines R(1, ↑) uniquely from k:
Z(0, 2)
= p(1 − σr(1, ↓)) + (1 − p)(1 − r(1, ↓)),
Z(0, 1)
so
1 − Z(0, 2)/Z(0, 1)
r(1, ↓) = , r(1, ↑) = σr(1, ↓).
1 + p(σ − 1)
For σ ≈ 1 and small values of r(1, ↓), this is as accurate and faster to compute
than the approximate numerical solution.
Note that the top row of this matrix has the riskless asset a0 , whose payoff is
R in every state.
Similarly, the asset spot prices may be arranged into a column vector:
1
a (0)
def 1
q = . .
..
am (0)
and payoffs
m m
!
X X
T
x A= xi ai (T, ω1 ), . . . , xi ai (T, ωn ) ,
i=0 i=0
(∀j) xT A(j) ≥ 0 =⇒ xT q ≥ 0.
q = Ak, (∀j)kj ≥ 0.
pn Pr(ωn )
The market is complete if every payoff vector can be hedged, which requires
that the row space of A is all of Rn and thus has the same dimension as the
number n of states. This requires that the number of assets m + 1 is at least n.
In such a complete market, there exists a basis of unit portfolios W1 , . . . , Wn
satisfying (
1, i = j,
Wi (T, ωj ) =
0, i 6= j.
Then any derivative X with payoffs X(T, ω1 ), . . . , X(T, ωn ) has a spot price
given by the Arrow-Debreu expansion
n
X
X(0) = Wi (0) X(T, ωi ).
i=1
X ∼ Binomial(N, p).
If, in addition, each ↑ step increases the price of asset A by a factor u > 1,
while each ↓ step decreases the price by a factor d < 1, then all future prices
A(T ) are determined from the spot price A(0):
A(T, ωk ) = A(0)uk dN −k ,
after combining terms. Divide by A(0) and apply the binomial theorem to get:
N
X N
R= (pu)k ([1 − p]d)N −k = (pu + [1 − p]d)N ,
k
k=0
R1/N − d u − R1/N
p= ; 1−p= .
u−d u−d
For these to be probabilities it is necessary that 0 ≤ p ≤ 1, but that follows
from
0 < d < R1/N < u,
which itself may be deduced from the no-arbitrage Axiom 1.
Both one-step and multistep binomial models have many applications.
The one-step case provides basic formulas that may be tested against the
no arbitrage axiom. Multistep models may be used to price contingent claims
from values at expiry. These can be compared to market prices in order to
find best-fit parameters. They may also be used in simulations with varying
parameters in order to estimate model risk.
Multistep binomial models converge to continuum models as the number
of states increases. One of these limits is the Black-Scholes formulas, Eqs.2.25
and 2.26 of Chapter 2. A proof of convergence is provided below in Section
3.4.2. The limits may also be used in simulations and to fit model parameters
to market data, applications that will be explored in Chapter 7.
j →
S(0, 0)
S(1, 0) S(1, 1)
n . (3.11)
↓ ... ..
S(n, j) .
S(N, 0) S(N, 1) · · · S(N, N )
j →
R(0, 0)
R(1, 0) R(1, 1)
n . (3.12)
↓
.. ..
. R(n, j) .
R(N, 0) R(N, 1) · · · R(N, N )
Eq.3.13 guarantees that 0 < p(n, j) < 1, so both p(n, j) and 1 − p(n, j) are
nonzero probabilities at all times in all states.
Note that:
• Value S(n, j), for 0 ≤ n ≤ N and 0 ≤ j ≤ n, is stored as S(n+1,j+1),
and so on, since Octave and MATLAB do not allow 0 as an index.
• Unless 0 ≤ p(n, j) ≤ 1 for all n, j, the S, R model is not arbitrage-free.
Multistep Binomial Models 65
Recombining means that the price S(n, j) does not depend on the path by
which state j was reached. That imposes conditions on {u(n, j)} and {d(n, j)}
such as
S(2, 1)
u(0, 0)d(1, 1) = = d(0, 0)u(1, 0),
S(0, 0)
and similar identities relating longer sequences of up and down steps leading
to the same price. One way to satisfy all these identities simultaneously is to
model the future {S(n, j)} assuming that the up factor u and down factor d
are constant for all (n, j), and that
S(n, j) = S(0, 0) uj dn−j , 0 ≤ n ≤ N, 0 ≤ j ≤ n.
Thus S(n + 1, j + 1) = uS(n, j) is the up state price and S(n + 1, j) = dS(n, j)
is the down state price at time tn+1 given price S(n, j) at time tn . Then,
to satisfy Eq.3.13, model the future {R(n, j)} with a constant riskless return
R satisfying d < R < u. Such stationary or time-invariant models have the
additional advantage of not requiring storage for the S and R trees.
Notice that the Arrow-Debreu security Wj is the “vector” here while the future
price W (T, ωj ) is a coefficient. Equality for all t follows from the One Price
Theorem, 1.2 above: if two assets have the same price in all states at some
future time, then they must have the same price between now and then.
In particular, the Arrow-Debreu decomposition gives a spot price for an
asset from knowledge of its price in all modeled future states:
N
X
W (0) = W (T, ωj )Wj (0). (3.20)
j=1
Of course, this requires computing the spot prices {Wj (0) : j = 1, . . . , N } for
all the Arrow-Debreu securities. That is equivalent to finding the probabilities
for all the states in Ω, since Fair Price Theorem 1.4 asserts
N
X
RW (0) = E(W (T )) = W (T, ωj )Pr(ωj ),
j=1
where R is the riskless return over time T . Thus Wj (0) = Pr(ωj )/R.
W=zeros(N+1,N+1); W(N+1,k+1)=1;
for n=N-1:-1:0
for j=0:n
pup=p(n+1,j+1); pdown=1-pup;
Wup=W(n+2,j+2); Wdown=W(n+2,j+1);
W(n+1,j+1)=(pup*Wup+pdown*Wdown)/R(n+1,j+1);
end
end
This code must be run N +1 times to find all the spot prices W0 (0), . . . , WN (0)
needed for Arrow-Debreu expansions.
Remark. Array indices start at 1 in Octave, so (n, j) must be implemented
as (n+1,j+1), and so on, to avoid problems if n = 0 or j = 0.
This measures how much time was spent by the costliest arithmetic operators
or functions while multiplying two N ×N matrices. Repeating the computation
with 5N ×5N matrices shows the O(N 3 ) order of complexity: the ratio of times
should be approximately 125 = 53 .
When these tools are applied to the algorithm of individual backward in-
duction for computing all Arrow-Debreu spot prices {Wk (0) : k = 0, 1, . . . , N }
at a fixed time step N , they show that it will cost O(N 3 ) FLOPS.
j 0 > j;
0,
1 − p(n − 1, j)
, j 0 = j;
R(n − 1, j)
0
W (n − 1, j ) = p(n − 1, j − 1)
, j 0 = j − 1;
R(n − 1, j − 1)
j 0 < j − 1.
0,
1 − p(n − 1, j) p(n − 1, j − 1)
λ(n, j) = λ(n − 1, j) + λ(n − 1, j − 1). (3.21)
R(n − 1, j) R(n − 1, j − 1)
The code handles these two special endpoint cases before the inner loop over
j = 1, . . . , n − 1.
Also, if n = 1, there are only the endpoint cases j = 0 and j = 1, with no
inner j loop. Thus row n = 1 gets its own special formula like the initial row
n = 0:
λ(0, 0) = 1;
λ(1, 0) = (1 − p(0, 0))λ(0, 0)/R(0, 0) = (1 − p(0, 0))/R(0, 0);
λ(1, 1) = p(0, 0)λ(0, 0)/R(0, 0) = p(0, 0)/R(0, 0).
0.25 0.25
0.2 0.2
0.15 0.15
0.1 0.1
0.05 0.05
0 0
0 2 4 6 8 10 12 0 2 4 6 8 10 12
Arrow-Debreu Binomial
FIGURE 3.1
Arrow-Debreu prices (left) versus binomial distribution (right).
D(N, j) = 1, j = 0, 1, . . . , N, (3.22)
formula:
p(n, j)D(n + 1, j + 1) + (1 − p(n, j))D(n + 1, j)
D(n, j) = , (3.23)
R(n, j)
for n = N − 1, . . . , 1, 0 and j = 0, . . . , n.
Notice that at n = N − 1, in any state j,
p(N − 1, j)D(N, j + 1) + (1 − p(N − 1, j))D(N, j)
D(N − 1, j) =
R(N − 1, j)
p(N − 1, j) + (1 − p(N − 1, j)) 1
= = ,
R(N − 1, j) R(N − 1, j)
since D(N, j) = D(N, j + 1) = 1 for all j, so the backward induction formula
for D does not require a row N for R, nor row N for p.
1 function D = ZCB( p , R, N)
2 % Octave /MATLAB f u n c t i o n t o compute Zero Coupon
3 % Bond d i s c o u n t s from r e c o m b i n i n g b i n o m i a l t r e e s o f
4 % r i s k n e u t r a l p r o b a b i l i t i e s and r i s k l e s s r e t u r n s .
5 % INPUTS : ( Example )
6 % p = NxN m a tr i x o f up p r o b s . ( all 0.5)
7 % R = NxN m a tr ix o f r i s k l e s s Rs ( a l l 1 . 0 0 2 )
8 % N = b i n o m i a l t r e e h e i g h t , must be >1 (9)
9 % OUTPUTS:
10 % Z = (N+1) rows o f z e r o −coupon bond d i s c o u n t s
11 % EXAMPLE:
12 % D = ZCB( 0 . 5 ∗ o n e s ( 9 , 9 ) , 1 . 0 0 2 ∗ o n e s ( 9 , 9 ) , 9 )
13 %
14 D = zeros (N+1 ,N+1) ; % i n i t i a l i z e output matrix
15 f o r ( j =0:N) % level N
16 D(N+1 , j +1) = 1 ;
17 end
18 f o r ( j =0:N−1) % l e v e l N−1
19 D(N, j +1) = 1/R(N, j +1) ;
20 end
21 f o r ( n=N−2: −1:0) % l e v e l s N− 2 , . . . , 1 , 0
22 f o r ( j =0:n ) % Compute D by backward i n d u c t i o n
23 D( n+1 , j +1) = ( p ( n+1 , j +1)∗D( n+2 , j +2) +
24 (1−p ( n+1 , j +1) ) ∗D( n+2 , j +1) ) /R( n+1 , j +1) ;
25 end
26 end
27 return ; % D has rows 1 :N+1
28 end
The Cox-Ross-Rubinstein Model 73
Since σ > 0 in all markets with risky assets, this pair of inequalities will hold
for all sufficiently large N , namely N > r2 T /σ 2 . In practice, r is smaller7 than
σ so that any N ≥ T is sufficiently large.
where S0 = S(0, 0) is the spot price, K is the strike price, and u > 1 is the up
factor over one of the N time steps to expiry T .
1 function [ C0 , P0 ] = CRReurAD(T, S0 , K, r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e European C a l l
3 % and Put o p t i o n s by Arrow−Debreu e x p a n s i o n
4 % i n t h e Cox−Ross−R u b i n s t e i n (CRR) model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time i n y e a r s (1)
7 % S0 = s p o t s t o c k p r i c e (90)
8 % K = strike price (95)
9 % r = r i s k l e s s y i e l d per year (0.02)
10 % v = v o l a t i l i t y ; must be >0 (0.15)
11 % N = height of the binomial t r e e (10)
12 % OUTPUTS:
13 % C0 = p r i c e o f t h e C a l l o p t i o n a t t =0.
14 % P0 = p r i c e o f t h e Put o p t i o n a t t =0.
15 % EXAMPLE:
16 % [ C0 , P0]=CRReurAD ( 1 , 9 0 , 9 5 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
17 %
18 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
19 Njs =0:N; % a l l j v a l u e s f o r n=N ( e x p i r y t=T)
20 SNj=S0 ∗up . ^ ( 2 ∗ Njs−N) ; % Terminal p r i c e s S (N, j )
The Cox-Ross-Rubinstein Model 77
The sum in Theorem 3.6, which is evidently an inner product, may be im-
plemented as matrix multiplication (1 × N times N × 1) in Octave. Also,
Octave functions max() and binopdf() accept matrix inputs and return ma-
trix output of the same shape. Finally, Octave allows componentwise power
operations such as the formula for SNj, and properly subtracts a scalar K from
each component of a matrix in expressions such as SNj-K, eliminating the need
for some loops.
only states {j : S0 u2j−N > K} will contribute to the sum in Lemma 3.6.
Those satisfy the inequality
def
X N
B(x | N, p) = pj (1−p)N −j . (3.28)
j
x<j≤N
78 Discrete Models
and
X N X N pu j 1−p N −j
R−N pj (1−p)N −j S0 u2j−N = S0
j j R Ru
a<j≤N a<j≤N
where
R − u1
p
exp(rT /N ) − exp(−σ T /N )
p = = ,
u − u1
p p
exp(σ T /N ) − exp(−σ T /N )
u − R1
p
exp(σ T /N ) − exp(−rT /N )
q = = ,
u − u1
p p
exp(σ T /N ) − exp(−σ T /N )
N log K
and a = + p S0 , as before.
2 2σ T /N
= q q 3
T T
2σ N +O N
2 r
1 r − σ2
T T
= + +O , as N → ∞, (3.31)
2 2σ N N
and similarly,9
2 r
1 r + σ2
T T
q= + +O , as N → ∞. (3.32)
2 2σ N N
These approximations suffice to prove that for fixed T , r, and σ > 0,
1 1
lim p = , lim q = . (3.33)
N →∞ 2 N →∞ 2
It remains to compute
lim B(a | N, p), lim B(a | N, q).
N →∞ N →∞
This may be done with the following version of the Central Limit Theorem,
together with the formulas relating a, p, q and N .
Theorem 3.7 (Berry-Esséen) Suppose that {Xn : n = 1, . . . , N } is a
sequence of independent, identically distributed random variables satisfying
E(Xn ) = 0, E(Xn2 ) = v 2 > 0, and E(|Xn |3 ) = w < ∞ for all n = 1, . . . , N .
Let FN be the cumulative distribution function of the normalized sum
def X1 + · · · + XN def
SN = √ ; FN (x) = Pr(SN ≤ x).
v N
Let Φ denote the cumulative distribution function of the standard normal ran-
dom variable N (0, 1), namely
Z x
1 2
Φ(x) = Pr(N (0, 1) ≤ x) = √ e−t /2 dt.
2π −∞
Then
3w
|FN (x) − Φ(x)| < √ ,
v3 N
for all x.
9 This is Exercise 8 at the end of this chapter.
80 Discrete Models
Pr(Y = 0) = 1 − s, Pr(Y = 1) = s.
def
Let X = Y − s. This X is just the random variable Y with its mean s
subtracted. Then
FN (x) = Pr(SN ≤ x)
1
= Pr √ (ZN,s − N s) ≤ x
v N
√
= Pr ZN,s ≤ xv N + N s
√
= 1 − Pr ZN,s > xv N + N s
√
= 1 − B xv N + N s | N, s .
w
< √
3
v N
s(1 − s)(s2 + [1 − s]2 )
= √
s3/2 (1 − s)3/2 N
s2 + [1 − s]2
= p
s(1 − s)N
10 Such Y is called a Bernoulli random variable.
The Cox-Ross-Rubinstein Model 81
def √
This inequality holds for all x, so substitute y = xv N + N s, which satisfies
y − Ns y − Ns
x= √ =p ,
v N s(1 − s)N
N log K
y=a= + p S0
2 2σ T /N
Finally, for both s = p and s = q, the right-hand side of Eq.3.35 tends to zero
as N → ∞, so conclude that
lim B(a | N, q) = Φ(z1 ),
N →∞
lim B(a | N, p) = Φ(z2 ),
N →∞
lim R−N = e−rT .
N →∞
Thus, taking the limit as N → ∞ in Eq.3.30 and using Eqs.3.36 and 3.37 gives
the Black-Scholes formula for pricing European-style Call options:
C(0) = S0 Φ(z1 ) − e−rT KΦ(z2 ) (3.38)
This produces C=5.017 and C0=5.0069, which also have a little more than two
decimal places of agreement. The accuracy of the quadratic interpolation ap-
proximation to Gamma from CRR will be roughly the difference between √ the
CRR approximation and its Black-Scholes limit. This difference is O(1/ N ),
by inequalities in the proof of the Berry-Esséen Theorem 3.7.
12 See Wickerhauser, p.110, cited in Further Reading after Chapter 2.
84 Discrete Models
Theorem 3.8 The derivatives DeltaC and GammaC, computed as above from
CRR values with N time steps using quadratic interpolation through the points
of Eq.3.39, converge to the Black-Scholes values in Eqs.2.28 and 2.30, respec-
tively, as N → ∞. The same is true for the corresponding Put formulas. 2
The other Greeks, Theta, Rho, and Vega/Kappa, come from differentiation
with respect to time T , riskless rate r, and volatility v, respectively. These
parameters all contribute smooth, many-times differentiable effects on the
option price. For them, the centered difference formula in Eq.2.41 has O(h2 )
error and agrees closely with the corresponding Black-Scholes Greeks for small
h and large N .
Theorem 3.9 The derivatives ΘC , κC , and ρC , computed by the centered
difference formula in Eq.2.41 above from CRR values with N time steps and
h = 1/N , converge to the Black-Scholes values in Eqs.2.32, 2.35, and 2.37,
respectively, using h = 1/N , as N → ∞. The same result holds for the corre-
sponding Put formulas. 2
The proofs of Theorem 3.8 and Theorem 3.9, along with estimates of the rate
of convergence, are left as an exercise.
3.5 Exercises
1. Suppose that S(t, ω), 0 ≤ t ≤ T is the price of a risky asset S, and that
the riskless return over time [0, T ] is R. Model the future at time t = T
using Ω = {↑, ↓} and assume that S(T, ↓) < S(T, ↑).
(a) Use the no-arbitrage Axiom 1 to conclude that
(b) Use the Fair Price Theorem 1.4 to prove the same inequalities.
2. In Exercise 1 above, model the future at time t = T using the N -step
binomial model Ω = {ω0 , ω1 , . . . , ωN } and assume that
S(T, ωk ) = S(0)uk dN −k ,
where S(0) > 0 is the spot price and 0 < d < u are the up factor and
down factor, respectively, over one time step T /N .
(a) Use the no-arbitrage Axiom 1 to conclude that
(b) Use the Fair Price Theorem 1.4 to prove the same inequalities.
Exercises 85
7. Compare the prices from parts (a) and (b) of previous Exercise 6 with
the Black-Scholes prices computed using Eqs.2.25 and 2.26. Plot the
logarithm of the differences against log N to estimate the rate of con-
vergence. (Hint: Use the programs in Chapter 2, Section 2.4.)
8. Derive Eq.3.32 on p.79:
2 r
1 r + σ2
T T
q= + +O .
2 2σ N N
Contingent claims other than European-style Call and Put options are some-
times called exotic, like flavors of ice cream in contrast to vanilla. They are
constructed by financial institutions to appeal to investors with specific goals,
but in such a way that they can be hedged. In this chapter, the CRR model
will be used to price various exotic options that are currently marketed.
87
88 Exotic Options
pC(n + 1, j + 1) + [1 − p]C(n + 1, j)
CBinomial = ,
R
C(n, j) = max CBinomial , CExercise , n = N −1, . . . , 0, 0 ≤ j ≤ n.
pP (n + 1, j + 1) + [1 − p]P (n + 1, j)
PBinomial = ,
R
P (n, j) = max PBinomial , PExercise , n = N −1, . . . , 0, 0 ≤ j ≤ n.
1 function [ C, P ] = CRRa(T, S0 , K, r , v , N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e American C a l l
3 % and Put o p t i o n s u s i n g t h e Cox−Ross−R u b i n s t e i n
90 Exotic Options
4 % (CRR) b i n o m i a l p r i c i n g model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time (1 year )
7 % S0 = s p o t s t o c k p r i c e (90)
8 % K = strike price (95)
9 % r = r i s k −f r e e y i e l d (0.02)
10 % v = v o l a t i l i t y ; must be >0 (0.15)
11 % N = height of the binomial t r e e (10)
12 % OUTPUT:
13 % C = p r i c e of the Call option at a l l (n , j ) .
14 % P = p r i c e o f t h e Put o p t i o n a t a l l ( n , j ) .
15 % EXAMPLE:
16 % [ C, P ] = CRRa( 1 , 9 0 , 9 5 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
17 % C( 1 , 1 ) ,P( 1 , 1 ) % t o g e t j u s t C( 0 ) and P( 0 )
18 %
19 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
20 C=zeros (N+1 ,N+1) ; P=zeros (N+1,N+1) ; % I n i t i a l C, P
21 f o r j = 0 :N % S e t t e r m i n a l v a l u e s a t time s t e p N
22 V = S0 ∗up ^(2∗ j −N)−K; % S (N, j ) − K
23 C(N+1 , j +1)=max(V, 0 ) ; P(N+1, j +1) = max(−V, 0 ) ;
24 end
25 f o r n = (N−1) :( −1) : 0 % P r i c e e a r l i e r g r i d v a l u e s
26 f o r j = 0 : n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
27 % Bi nom ial p r i c i n g model v a l u e
28 bC=(pu∗C( n+2 , j +2) + (1−pu ) ∗C( n+2 , j +1) ) /R;
29 bP=(pu∗P( n+2, j +2) + (1−pu ) ∗P( n+2, j +1) ) /R;
30 % E x e r c i s e v a l u e : X f o r C a l l , −X f o r Put
31 X = S0 ∗up ^(2∗ j −n )−K; % S ( n , j ) − K
32 % P r i c e a t t h i s node i s t h e l a r g e r :
33 C( n+1 , j +1)=max(bC ,X) ; P( n+1 , j +1)=max(bP,−X) ;
34 end
35 end
36 return ; % P r i c e s a r e i n m a t r i c e s C and P .
37 end
Remark. The premiums for a binary Call and Put are related by
C(0) + P (0) = B/R,
since a portfolio containing one of each will be worth a riskless B at expiry
time T . Such a portfolio, to avoid an arbitrage, must have a price equal to the
present value of B, which is B/R if the riskless return over time T is R.
92 Exotic Options
pC(n + 1, j + 1) + [1 − p]C(n + 1, j)
C(n, j) = ,
R
where n = N − 1, . . . , M and j = 0, 1, . . . , n. Here M = bT1 N/T c.
The second induction formula is
+
W (M, i) = [C(M, i) − L] , i = 0, 1, . . . , M,
pW (n + 1, j + 1) + [1 − p]W (n + 1, j)
W (n, j) = ,
R
where n = M − 1, . . . , 2, 1, 0 and j = 0, 1, . . . , n. This extracts W (0, 0) from a
CRR tree of depth N :
Note that the first tree does not need to be filled all the way back to
time 0, nor does the other option need to be priced with its own tree. How-
ever, the extra cost of filling the top of the tree is outweighed by the benefit
of reusing existing software CRReur() rather than writing and debugging a
custom function.
7 % S0 = s p o t s t o c k p r i c e (90)
8 % K = stock s t r i k e p r i c e at expiry T (95)
9 % L = o p t i o n s t r i k e p r i c e a t time T1 (4.50)
10 % r = r i s k −f r e e y i e l d (0.02)
11 % v = v o l a t i l i t y ; must be >0 (0.15)
12 % N = height of the binomial t r e e (10)
13 % OUTPUT:
14 % W = p r i c e o f t h e compound C a l l o p t i o n
15 % C = p r i c e o f t h e v a n i l l a European C a l l o p t i o n
16 % EXAMPLE:
17 % [W, C ] = CRRcc ( 1 , 0 . 5 , 9 0 , 9 5 , 4 . 5 0 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
18 % W( 1 , 1 ) ,C( 1 , 1 ) % t o g e t j u s t W( 0 ) and C( 0 )
19 %
20 [ pu , up ,R]=CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
21 [ C, P]=CRReur (T, S0 , K, r , v ,N) ; % v a n i l l a o p t i o n s a t T
22 M=round ( T1∗N/T) ; % number o f time s t e p s t o time T1
23 W=zeros (M+1 ,M+1) ; % s m a l l e r output matrix
24 f o r j =0:M % S e t t e r m i n a l v a l u e s a t (M, 0 ) , . . . , (M,M) :
25 W(M+1 , j +1) = max(C(M+1 , j +1)−L , 0 ) ; % p o s i t i v e p a r t
26 end
27 f o r n=M−1: −1:0 % Backward i n d u c t i o n
28 f o r j =0:n % Bin omial p r i c i n g model v a l u e
29 W( n+1 , j +1)=(pu∗W( n+2 , j +2)+(1−pu ) ∗W( n+2 , j +1) ) /R;
30 end
31 end
32 return % P r i c e s i n m a t r i c e s W and C a r e d e f i n e d .
33 end
prices. The final tree will price the forward start option by backward induction
from a bottom row filled with the different C(T1 ) or P (T1 ). The algorithm
separates naturally into three parts.
Let M = bT1 N/T c be the grid time corresponding to T1 in an N -step
binomial tree. First compute the strike prices, which are the modeled stock
prices S(M, j) for j = 0, 1, . . . , M :
def
K(j) = S(M, j) = S0 uj dM −j = S0 u2j−M .
(Note that both vC(j) and vP (j) are at-the-money premiums for options
expiring T − T1 after time T1 .)
Third and finally, use backward induction in an M -level binomial tree to
compute the forward start Call or Put option prices, f C or f P , respectively.
For Calls, this will be
f C(M, i) = vC(i), i = 0, 1, . . . , M ;
pf C(n + 1, j + 1) + [1 − p]f C(n + 1, j)
f C(n, j) = ,
R
and for Puts, it will be
f P (M, i) = vP (i), i = 0, 1, . . . , M ;
pf P (n + 1, j + 1) + [1 − p]f P (n + 1, j)
f P (n, j) = ,
R
where n = M − 1, . . . , 2, 1, 0 and j = 0, 1, . . . , n. This leaves the forward start
Call and Put premiums in f C(0, 0) and f P (0, 0), respectively.
9 % r = r i s k −f r e e annual y i e l d (0.02)
10 % v = v o l a t i l i t y ; must be >0 (0.15)
11 % N = height of the binomial t r e e (10)
12 % OUTPUT:
13 % C = p r i c e of the Call option at g r i d p o i n t s (n , j ) .
14 % P = p r i c e o f t h e put o p t i o n a t g r i d p o i n t s ( n , j ) .
15 % EXAMPLE:
16 % [ C, P ] = CRRfws ( 1 , 9 0 , 0 . 5 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
17 % C( 1 , 1 ) ,P( 1 , 1 ) % g e t j u s t C( 0 ) ,P( 0 ) a s output
18 %
19 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
20 M = round ( T1∗N/T) ; % s e t s t r i k e p r i c e g r i d time
21 f o r ( j =0:M)
22 SMj ( j +1)= S0 ∗up ^(2∗ j −M) ; % modeled S (M, j )
23 end
24 f o r ( j =0:M) % p r i c e at−the−money v a n i l l a o p t i o n s
25 [ C, P]=CRReur (T, S0 , SMj ( j +1) , r , v ,N) ; % v a n i l l a
26 CMj( j +1)=C(M+1 , j +1) ; % C a l l p r i c e a t (M, j )
27 PMj( j +1)=P(M+1 , j +1) ; % Put p r i c e a t (M, j )
28 end
29 % R e i n i t i a l i z e s m a l l e r f o r w a r d s t a r t C and P :
30 C=zeros (M+1 ,M+1) ; P=zeros (M+1,M+1) ;
31 f o r j =0:M % s e t t e r m i n a l v a l u e s a t time M
32 C(M+1 , j +1)=CMj( j +1) ; P(M+1 , j +1)=PMj( j +1) ;
33 end
34 f o r n = M−1: −1:0 % backward i n d u c t i o n
35 for j = 0 : n % binomial p r i c i n g
36 C( n+1 , j +1)=(pu∗C( n+2 , j +2)+(1−pu ) ∗C( n+2 , j +1) ) /R;
37 P( n+1, j +1)=(pu∗P( n+2, j +2)+(1−pu ) ∗P( n+2, j +1) ) /R;
38 end
39 end
40 return ; % P r i c e s i n C and P a r e a l l d e f i n e d .
41 end
strike price K, and may likewise be above or below the spot price S(0) of the
underlying asset.
Barrier monitoring is done at specified times, usually when the market
is closed after the end of a trading day. The closing price of the underlying
asset is compared with the barrier price, and any change in status of the
option is published before the next trading session begins. Continuous barrier
monitoring is also possible but with high computational cost, and likewise a
discrete binomial model of such an option with frequent or continuous barrier
monitoring requires a large number of time steps for accurate pricing.
In all cases, the premium to charge for such exotic options is heavily influ-
enced by the model of S prices. Several examples are priced below using the
CRR model for simplicity.
where p is the risk neutral up probability and R is the riskless return over one
time step, both computed from the CRR parameters.
1 function [ E xo ti c , V a n i l l a ] = CRRuiC(T, S0 , K, B, r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e up−and−i n b a r r i e r
3 % C a l l o p t i o n s u s i n g t h e Cox−Ross−R u b i n s t e i n (CRR)
4 % b i n o m i a l p r i c i n g model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time (1 year )
7 % S0 = s p o t s t o c k p r i c e (100)
8 % K = strike price (80)
9 % B = barrier price (120)
10 % r = r i s k −f r e e y i e l d (0.05)
11 % v = v o l a t i l i t y ; must be >0 (0.20)
12 % N = height of the binomial t r e e (40)
13 % OUTPUT:
14 % Exotic = p r i c e of the option at a l l (n , j ) .
15 % V a n i l l a = p r i c e o f European C a l l a t ( n , j ) .
16 % EXAMPLE:
98 Exotic Options
3 % b a r r i e r C a l l o p t i o n s u s i n g t h e Cox−Ross−R u b i n s t e i n
4 % (CRR) b i n o m i a l p r i c i n g model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time (1 year )
7 % S0 = s p o t s t o c k p r i c e (100)
8 % K = strike price (80)
9 % B = barrier price (120)
10 % r = r i s k −f r e e y i e l d (0.05)
11 % v = v o l a t i l i t y ; must be >0 (0.20)
12 % N = height of the binomial t r e e (4)
13 % N0 = f i r s t b a r r i e r t e s t time ; (3)
14 % must s a t i s f y 0 < N0 < N
15 % OUTPUT:
16 % C = p r i c e at a l l g r i d p o i n t s (n , j ) .
17 % EXAMPLE:
18 % puoCa = CRRpuoC ( 1 , 1 0 0 , 8 0 , 1 2 0 , 0 . 0 5 , 0 . 2 0 , 4 , 3 ) ;
19 %
20 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
21 C=zeros (N+1 ,N+1) ; % a l l o c a t e output ma tr ix
22 f o r j =0:N % s e t v a l u e s a t e x p i r y s t e p N
23 SNj=S0 ∗up ^(2∗ j −N) ; % a s s e t p r i c e S (N, j )
24 i f ( SNj < B) % then t h e b a r r i e r i s not e x c e e d e d
25 C(N+1 , j +1) = max( SNj − K, 0 ) ;
26 else % b a r r i e r exceeded , s o o p t i o n v a n i s h e s
27 C(N+1 , j +1) = 0 ;
28 end
29 end
30 % Use backward i n d u c t i o n t o p r i c e e a r l i e r v a l u e s :
31 f o r n = (N−1) :( −1) : 0 % g r i d t i m e s n={N− 1 , . . . , 0}
32 for j = 0 : n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
33 % Test t h e b a r r i e r
34 Snj = S0 ∗up ^(2∗ j −n ) ; % asset price S(n , j )
35 i f ( n < N0 | | Snj < B) % t o o e a r l y , o r e l s e
36 % b a r r i e r not e x c e e d e d
37 % . . . s o u s e t h e b i n o m i a l p r i c i n g model v a l u e
38 C( n+1 , j +1)=(pu∗C( n+2 , j +2)+(1−pu ) ∗C( n+2 , j +1) ) /R;
39 e l s e % time a f t e r N0 and b a r r i e r exceeded ,
40 % so option vanishes
41 C( n+1 , j +1) = 0 ;
42 end
43 end
44 end
45 return ; % P r i c e s i n C a r e now d e f i n e d .
46 end
Recombining Binomial Tree Prices 101
To price the option with a full rebate, start with an initial return x = 0. Now
iterate, replacing x with the price of the option, until the price of the option
with refund x equals x:
T=1; S=100; K=80; B=120;r=0.05; v=0.20; N=4;
X=[0]; % initial guess: zero price, zero refund
X=CRRruoC(T,S,K,B,X(1,1),r,v,N); X(1,1) % 6.2558
for i=1:10
X=CRRruoC(T,S,K,B,X(1,1),r,v,N); % fixed-point iteration
end
X=CRRruoC(T,S,K,B,X(1,1),r,v,N); X(1,1) % 10.765
X=CRRruoC(T,S,K,B,X(1,1),r,v,N); X(1,1) % 10.765
This also seems to have converged after 12 iterations. The premium is lower,
obviously, than for the full rebate barrier option.
A booster option can augment a Call at strike U and a Put with strike L.
It will pay off in case neither the Call nor the Put yield a profit.
A(n, k) k →
A(0, 0)
A(1, 0) A(1, 1)
n A(2, 0) A(2, 1) A(2, 2) A(2, 3)
↓ .. .. .. ..
. . . .
A(N, 0) A(N, 1) A(N, 2) ··· A(N, 2N − 1)
For large N it is inefficient to depict such a tree as part of a mostly empty
2N × 2N matrix. It is better to use a linear array {Ā(m) : 1 ≤ m < 2N +1 }
and an indexing function
def
m(n, k) = 2n + k, 0 ≤ n ≤ N, 0 ≤ k < 2n . (4.2)
Path Dependent Prices 105
Then A(n, k) = Ā(m(n, k)) is the path dependent price of the asset at time
step n reached along the path indexed by k. If m = 2n + k corresponds to the
current time and state indices, then 2m = 2n+1 +2k and 2m+1 = 2n+1 +2k+1
index the subsequent down state and up state, respectively. Conversely, the
unique predecessor of state m has index bm/2c.
Ā may be arranged as a tree in rows by time step:
Ā(2n +k) k →
Ā(1)
Ā(2) Ā(3)
n Ā(4) Ā(5) Ā(6) Ā(7)
↓ .. .. .. ..
. . . .
Ā(2N ) Ā(2N + 1) Ā(2N + 2) ··· Ā(2N + 2N − 1)
The no-arbitrage assumption implies that the future value of an asset price
(at riskless rate R, which may depend on time and state) must lie between its
two successor prices. Namely,
A(n + 1, 2k) < R(n, k)A(n, k) < A(n + 1, 2k + 1), 0 ≤ n < N, 0 ≤ k < 2n ,
Indexing examples
The unique path to any state (n, k) at time step n is determined by the binary
digits of k, or equivalently from those of the terminus index m = 2n + k using
Eq.4.4. For example,
m = 51 = 32 + 16 + 2 + 1 = 25 + 24 + 21 + 20 = 110011 (base 2)
=⇒ k = 19 = 16 + 2 + 1 = 24 + 21 + 20 = 10011 (base 2),
The price A(N, k), or equivalently Ā(m) = Ā(2N + k), is the spot price
A(0, 0) = Ā(1) times the product of factors s1 , s2 , . . . , sN where
(
u(i − 1, k(i − 1)), kN −i = 1,
si = (in A(N, k) indexing),
d(i − 1, k(i − 1)), kN −i = 0.
(
ū(m(i − 1)), mN −i = 1,
= ¯ (in the Ā(m) convention).
d(m(i − 1)), mN −i = 0,
For the example above, the price of path dependent asset A in state (N, k) =
(5, 19) is therefore
Observe how the factors udduu correspond to the bits of k = 10011 (base 2).
A single function can perform this injection from a given recombining tree
matrix into a non-recombining linear array:
1 function Xbar = NRTinject (X,N)
2 % Octave /MATLAB f u n c t i o n t o i n j e c t v a l u e s from a
3 % r e c o m b i n i n g b i n o m i a l t r e e X with depth N, s t o r e d
110 Exotic Options
Pr(1) = 1; (4.14)
N
Pr(2m) = (1 − p̄(m)) Pr(m), 1≤m<2 ,
Pr(2m + 1) = p̄(m) Pr(m), 1 ≤ m < 2N .
Note that the 2N longest paths that end at time step N correspond to the 2N
terminus indices m ∈ M(N ) = {2N , 2N + 1, . . . , 2N + (2N −1)} from Eq.4.6.
1 function Pr = PathPr ( pu ,N)
2 % Octave /MATLAB f u n c t i o n t o compute t h e p r o b a b i l i t y
3 % o f a path i n a r e c o m b i n i n g b i n o m i a l t r e e X with
4 % depth N, g i v e n up p r o b a b i l i t i e s pu s t o r e d i n an
5 % NxN matrix , and s t o r e them i n a non−r e c o m b i n i n g
6 % t r e e i n d e x e d by m=1:2∗2^N−1.
7 % INPUTS : ( Example )
8 % pu = r e c o m b i n i n g t r e e m at rix ( 3 x3 l o w e r )
9 % N = t r e e h e i g h t , must be >0 (3)
10 % OUTPUTS:
11 % Pr = p r o b a b i l i t y o f each m−path t o ( n (m) , j (m) )
12 % EXAMPLE:
13 % pu = [ . 5 1 , 0 , 0 ; . 5 2 , . 5 3 , 0 ; . 5 4 , . 5 5 , . 5 6 ] ;
14 % Pr = PathPr ( pu , 3 ) ;
15 % V i s u a l i z e the p r o b a b i l i t i e s o f the l o n g e s t paths :
16 % p l o t ( Pr ( 8 : 1 5 ) )
17 %
18 pubar = NRTinject ( pu , N−1) ; % i n j e c t rows 1 : ( N−1)
Path Dependent Prices 111
19 Pr = ones ( 1 , 2 ∗ 2 ^N−1) ; % . . . s o Pr ( 1 ) =1
20 f o r m=1:2^N−1 % a l l m i n d i c e s b e f o r e row N
21 Pr ( 2 ∗m) = (1− pubar (m) ) ∗Pr (m) ; % down s t a t e
22 Pr ( 2 ∗m+1) = pubar (m) ∗Pr (m) ; % up s t a t e
23 end
24 return
25 end
where λ(N, k) is the spot price of the unit security that, at time N , pays 1 in
state k but 0 in all other states k 0 6= k. This applies to path dependent assets
where k indexes each path from time 0 to time N .
As with the recombining binomial tree model, there is an efficient forward
induction for computing all the path dependent Arrow-Debreu spot prices
with a single non-recombining tree. It follows the construction of Eq.3.21.
The linear array “m” indexing notation will be used throughout.
Fix a time step n, 0 ≤ n ≤ N , and a state k, 0 ≤ k < 2n , and put
m = 2n + k. Let λ̄(m) = λ̄(2n + k) be the spot price at time t = 0 of the
Arrow-Debreu portfolio that, at time step n, is worth 1 in state k and 0 in
every other state k 0 6= k. These path dependent prices fill a non-recombining
tree of depth N .
The initial observation is that each λ̄(m) may be computed by backward
induction on its own non-recombining tree W̄ of depth n. The terminal condi-
tion applies to row n, which corresponds to terminus indices 2n ≤ m0 < 2n+1 :
(
0 0 1, k 0 = k;
n
W̄ (m ) = W̄ (2 + k ) = 0 ≤ k 0 < 2n . (4.15)
0, k 0 6= k,
1 − p̄(bm/2c)
, m even,
R̄(bm/2c)
λ̄(m) = λ(bm/2c) ×
p̄(bm/2c)
, m odd.
R̄(bm/2c)
Now substitute m ← 2m and m ← 2m + 1 to get the forward induction
formulas for the down and up descendents, respectively, to conclude:
Theorem 4.1 Path dependent Arrow-Debreu securities satisfy
1 − p̄(m) p̄(m)
λ̄(1) = 1, λ̄(2m) = λ̄(m), λ̄(2m + 1) = λ̄(m),
R̄(m) R̄(m)
for all m = 1, 2, . . . , 2N − 1. 2
The Octave function to find λ̄ is very similar to that for Pr:
19 f o r m=1:2^N−1 % a l l i n d i c e s b e f o r e t h e l a s t row
20 Lbar ( 2 ∗m) =(1−pbar (m) ) ∗ Lbar (m) /Rbar (m) ; % down
21 Lbar ( 2 ∗m+1) = pbar (m) ∗ Lbar (m) /Rbar (m) ; % up
22 end
23 return ; % Lbar (m) == barlambda (m) , 0<m<2∗2^N
24 end
Proof: This is evident since the path probability Pr(m) in Eq.4.14 satisfies
the same recursion as λ̄(m) only without the denominator factors R̄(m). 2
where the average price A(T ) is computed from samples at specific times
0 = t0 < t1 < · · · < tN = T :
N
def 1 X
A(T ) = S(ti ).
N + 1 i=0
If the option is exercised, the holder is paid a cash settlement by the counter-
party equal to the difference between the strike price and the average price.
This is a useful risk-reduction tool for volatile assets that are vulnerable to
price manipulation.
It is reasonable to use a discrete-time model to price such options since the
specific times are usually equispaced. The underlying asset S prices may be
modeled by a recombining binary tree such as in CRR. However, the averages
will be path dependent in all but the one-step case. To see this, suppose that
u, d are up and down factors, respectively, in a CRR model of depth N > 1.
At time n = 2 there is a single modeled price for S(2, 1):
since ud = du. However, there are two paths from (0, 0) to (2, 1) through the
recombining tree, namely
d u S(0, 0)[1 + d + ud]
(0, 0) → (1, 0) → (2, 1) =⇒ Aud = ,
3
u d S(0, 0)[1 + u + du]
(0, 0) → (1, 1) → (2, 1) =⇒ Adu = ,
3
and they must differ because d 6= u. Hence the averages must be stored in a
non-recombining tree of path dependent prices.
using the notation jn from Eq.4.7 for intermediate states along the path m.
Then the average of S along path m may be denoted by
def 1
A(N, m) = U (N, m),
N +1
since there are N + 1 summands in U (N, m). Hence, computing expectations
with path probabilities in the N -step CRR model gives
X
(N + 1)E(A(T )) = (N + 1) A(N, m)Pr(m)
m∈M(N )
def
X
= U (N, m)Pr(m) = E(U (N )),
m∈M(N )
Path Dependent Prices 115
The base case N = 0 holds since U (0, 0) = S0 is the one-element sum of just
the spot price.
For the inductive step, suppose that Eq.4.19 holds for N and consider
X
E(U (N + 1)) = U (N + 1, m)Pr(m)
m∈M(N +1)
X h
= U (N + 1, 2m)Pr(2m) +
m∈M(N )
i
+ U (N + 1, 2m + 1)Pr(2m + 1) ,
breaking the sum into two parts by odd and even descendent from step N .
But
where p and 1−p are the risk neutral up and down probabilities from the CRR
model for S, and S̄ is the price from the S tree injected into an m-indexed
tree by Eq.4.9. Use these to evaluate
X X
U (N +1, 2m)Pr(2m) = [U (N, m) + S̄(2m)]Pr(2m)
m∈M(N ) m∈M(N )
X
= (1 − p) U (N, m)Pr(m)
m∈M(N )
X
+ S̄(2m)Pr(2m),
m∈M(N )
and likewise
X X
U (N +1, 2m+1)Pr(2m+1) = p U (N, m)Pr(m)
m∈M(N ) m∈M(N )
X
+ S̄(2m+1)Pr(2m+1).
m∈M(N )
116 Exotic Options
using the inductive hypothesis and the fair price E(S(N + 1)) = RN +1 S0 from
the CRR model with N + 1 time steps and riskless return R per step. This
establishes Eq.4.19 for all N and completes the proof. 2
exp(rT ) − 1
E(A(T )) → S0
rT
Proof: Apply the geometric sum formula to Theorem 4.3:
1 1 RN +1 − 1
E(A(T )) = (1 + R + · · · + RN ) =
N +1 N +1 R−1
Substitute R = exp(rt/N ) and use the Taylor approximation ex − 1 ≈ x, valid
for small x, to find the limit of the denominator:
as N → ∞. 2
With Corollary 4.4, the Call-Put parity formula for average rate options may
be stated in a model-independent manner:
1 − exp(−rT )
C(0) − P (0) = S0 − exp(−rT )K. (4.20)
rT
Octave implementation of partial sums along paths
def
Let Ū (m) = U (n(m), m) be the partial sum along path m as used in the
proof of Theorem 4.3. This may be computed from the non-recombining tree S̄
by the following recursion: put Ū (1) = S̄(1), and then for m = 1, 2, . . . , 2N −1,
compute
Calculating path averages from these partial sums requires division by the
number of time steps on the path indexed by m. This may be done with a few
more lines:
Avgs=Ubar; % initialze an NRT array for path averages
for n=1:N % all time steps after now, to expiry
mn=2^n:(2*2^n-1) % all m indices for time step n
Avgs(mn)=Ubar(mn)/(n+1);
end
The loop is superfluous if only the terminal averages (to n = N ) are needed.
13 % [ C, P ] = C a l l and Put o p t i o n p r i c e s , a l l m
14 % EXAMPLE:
15 % [ C, P]=CRRaro ( 0 . 5 , 1 0 0 , 9 5 , 0 . 0 5 , 0 . 1 5 , 5 ) ; C( 1 ) ,P( 1 )
16 %
17 [ pu , up ,R]=CRRparams (T, r , v ,N) ;
18 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
19 Ubar=NRTpsums( Sbar ,N) ; % sums a l o n g each path
20 C=zeros ( s i z e ( Sbar ) ) ; P=zeros ( s i z e ( Sbar ) ) ;
21 f o r m=2^N: ( 2 ∗ 2 ^N −1) % m i n d i c e s a t e x p i r y
22 Avg = Ubar (m) / (N+1) ; % N+1 summands f o r t h e s e
23 C(m) = max( 0 , Avg−K) ; % C a l l p a y o f f a t e x p i r y
24 P(m) = max( 0 ,K−Avg ) ; % Put p a y o f f a t e x p i r y
25 end % . . . p r i c e s s e t a t e x p i r y .
26 f o r m=(2^N−1) : −1:1 % r e c u r s i v e p r e v i o u s i n d i c e s
27 C(m) = ( pu∗C( 2 ∗m+1) + (1−pu ) ∗C( 2 ∗m) ) /R;
28 P(m) = ( pu∗P( 2 ∗m+1) + (1−pu ) ∗P( 2 ∗m) ) /R;
29 end % . . . a l l p r i c e s s e t by backward i n d u c t i o n .
30 return
31 end
Average rate options may also be priced in the CRR model using path depen-
dent Arrow-Debreu securities. The implementation CRRaroAD() differs from
CRRaro() in three ways:
• It returns just the option premiums C(0), P (0), rather than two com-
plete non-recombining trees used to price the options.
• It uses PathAD(pu*ones(N,N), R*ones(N,N), N) to compute the path
dependent Arrow-Debreu spot prices. Note that the recombining up
probability and riskless return trees needed by PathAD() are entered
as constant N × N matrices.
• It replaces the backward recursion of CRRaro() that fills the non-
recombining C and R trees with two Arrow-Debreu expansions, the inner
products
X X
C0 = λ̄(m)C(m), P0 = λ̄(m)P (m),
m∈M m∈M
where C(m) and P (m) are the Call and Put option payoffs at expiry in
state m ∈ M = {2N , . . . , 2N + 2N − 1}.
8 % S0 = s t o c k p r i c e (100)
9 % K = strike price (95)
10 % r = r i s k l e s s y i e l d per year (0.05)
11 % v = v o l a t i l i t y ; must be >0 (0.15)
12 % N = height of the binomial t r e e (5)
13 % OUTPUTS:
14 % [ C0 , P0 ] = C a l l and Put o p t i o n premiums
15 % EXAMPLE:
16 % [ C0 , P0]=CRRaroAD ( 0 . 5 , 1 0 0 , 9 5 , 0 . 0 5 , 0 . 1 5 , 5 )
17 %
18 [ pu , up ,R]=CRRparams (T, r , v ,N) ;
19 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
20 Ubar=NRTpsums( Sbar ,N) ; % sums a l o n g each path
21 Lbar=PathAD ( pu∗ones (N,N) ,R∗ones (N,N) ,N) ;
22 mN=2^N: ( 2 ∗ 2 ^N−1) ; % a l l m−i n d i c e s a t e x p i r y
23 AvgN=Ubar (mN) / (N+1) ; % S a v e r a g e s a t e x p i r y
24 C0=max( 0 , AvgN−K) ∗ Lbar (mN) ’ ; % C a l l p a y o f f i . p .
25 P0=max( 0 ,K−AvgN) ∗ Lbar (mN) ’ ; % Put p a y o f f i . p .
26 return % A−D e x p a n s i o n o f C0 , P0 i s completed .
27 end
Compare (and test for bugs) by running both functions on the same suggested
example inputs:
[C0,P0]=CRRaroAD(0.5,100,95,0.05,0.15,5)
[C,P]=CRRaro(0.5,100,95,0.05,0.15,5); C(1),P(1)
The outputs agree: C0=6.5124=C(1) and P0=0.40545=P(1).
The geometric mean is more easily calculated using logarithms. This has the
added benefit of avoiding huge numbers when S and N are large:
N
1 X
log G(T ) = log S(ti ).
N + 1 i=0
Geometric rate options may also be priced using path dependent Arrow-
Debreu securities. The modifications needed to do this are left as an exercise.
where the average price A(T ) is computed as before from samples at specific
times 0 = t0 < t1 < · · · < tN = T :
N
def 1 X
A(T ) = S(ti ).
N + 1 i=0
using Eq.1.17. Then Fair Price Theorem 1.4 gives a parity formula for the
premiums at time t = 0:
C(0)
b − Pb(0) = exp(−rT )E(S(T ) − A(T )) = S0 − exp(−rT )E(A(T )),
where r is the riskless interest rate per year. In the CRR model of the future,
E(A(T )) is given by Theorem 4.3:
N
1 + R + ··· + R
C(0)
b − Pb(0) = S0 − exp(−rT ) S0 .
N +1
Letting N → ∞ and applying Corollary 4.4 then gives
exp(−rT ) + rT − 1
C(0)
b − Pb(0) = S0 . (4.23)
rT
For small values of rT , where exp(−rT ) ≈ 1 − rT + (rT )2 /2 by Taylor’s
theorem, this parity formula is well approximated by
rT
C(0)
b − Pb(0) ≈ S0 . (4.24)
2
Octave implementation of CRR for floating strike options
14 % EXAMPLE:
15 % [ C, P ] = CRRflt ( 1 , 9 0 , 0 . 0 2 , 0 . 2 0 , 4 ) ;
16 % To g e t j u s t t h e premiums a t t =0 , u s e
17 % C( 1 ) ,P( 1 )
18 %
19 [ pu , up ,R]=CRRparams (T, r , v ,N) ;
20 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
21 Ubar=NRTpsums( Sbar ,N) ; % path p a r t i a l sums
22 C=zeros ( s i z e ( Sbar ) ) ; P=zeros ( s i z e ( Sbar ) ) ;
23 f o r m=2^N: ( 2 ∗ 2 ^N −1) % m i n d i c e s a t e x p i r y
24 Avg = Ubar (m) / (N+1) ; % N+1 summands
25 C(m) = max( 0 , Sbar (m)−Avg ) ; % C a l l p a y o f f
26 P(m) = max( 0 , Avg−Sbar (m) ) ; % Put p a y o f f
27 end % . . . p r i c e s s e t a t e x p i r y .
28 f o r m=(2^N−1) : −1:1 % r e c u r s i v e p r e v i o u s i n d i c e s
29 C(m) = ( pu∗C( 2 ∗m+1) + (1−pu ) ∗C( 2 ∗m) ) /R;
30 P(m) = ( pu∗P( 2 ∗m+1) + (1−pu ) ∗P( 2 ∗m) ) /R;
31 end % . . . a l l p r i c e s s e t by backward i n d u c t i o n .
32 return
33 end
where minimum and maximum stochastic processes derived from S are de-
fined, respectively, by
def def
Smin (T ) = min{S(t) : 0 ≤ t ≤ T }; Smax (T ) = max{S(t) : 0 ≤ t ≤ T }.
(The state variable ω is omitted for simplicity.) Note that the plus-part is not
needed in these payoff formulas as the arguments are always nonnegative.
In practice, these maximum and minimum prices are computed as before
from samples at specific times 0 = t0 < t1 < · · · < tN = T . Abusing notation:
def def
Smin (N ) = min{S(ti ) : 0 ≤ i ≤ N }; Smax (N ) = max{S(ti ) : 0 ≤ i ≤ N }.
12 % C = C a l l o p t i o n NRT
13 % P = Put o p t i o n NRT
14 % EXAMPLE:
15 % [ C, P]=CRRlb ( 1 , 1 0 0 , 0 . 0 5 , 0 . 2 0 , 4 ) ; C( 1 ) ,P( 1 )
16 %
17 [ pu , up ,R]=CRRparams (T, r , v ,N) ;
18 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
19 MinS=NRTmin( Sbar ,N) ; MaxS=NRTmax( Sbar ,N) ;
20 C=zeros ( s i z e ( Sbar ) ) ; P=zeros ( s i z e ( Sbar ) ) ;
21 f o r m=2^N: ( 2 ∗ 2 ^N −1) % s t a t e s a t e x p i r y N
22 C(m)=Sbar (m)−MinS (m) ; % C a l l p a y o f f
23 P(m)=MaxS(m)−Sbar (m) ; % Put p a y o f f
24 end % . . . p a y o f f s a t e x p i r y a r e s e t .
25 f o r m=(2^N−1) : −1:1 % i n d i c e s down t o t=0
26 C(m) = ( pu∗C( 2 ∗m+1) + (1−pu ) ∗C( 2 ∗m) ) /R;
27 P(m) = ( pu∗P( 2 ∗m+1) + (1−pu ) ∗P( 2 ∗m) ) /R;
28 end % . . . backward i n d u c t i o n i s c o m p l e t e
29 return % C( 1 ) ,P( 1 ) c o n t a i n t h e premiums
30 end
Lookback options may also be priced using path dependent Arrow-Debreu
securities. The modifications needed to do this are left as an exercise.
An easy experiment with this function shows how much more the ladder Call
costs than the vanilla European-style Call, using the same model for the un-
derlying asset:
LadC=CRRladC(1,50,50,[55,60,65],0.05,0.20,4); LadC(1)
[eC,eP]=CRReur(1,50,50,0.05,0.20,4); eC(1,1)
The returned values are $6.98 for the ladder Call versus $4.99 for the vanilla
European Call.
4.3 Exercises
1. Implement a compound Put option, the option to purchase a European-
style Put option, with expiry T and strike price K, for price L at time
T1 satisfying 0 < T1 < T . Use your code to price such an option with
parameters (T, T1 , S0 , K, L, r, v, N ) = (1, 0.5, 90, 95, 4.50, 0.02, 0.15, 20).
(Hint: modify CRRcc.m.)
2. Let M(n) be the number of paths in a recombining binomial tree to
depth n, as defined in Eq.4.6. Prove that
4. Use CRRaro to compute the average-rate Call and Put premiums in the
CRR model for S0 = K = 100, T = 1, r = 0.05, v = 0.15, and different
values of N . Compare C(0) − P (0) with the limit value in Eq.4.20.
5. Implement floating strike option pricing in the CRR model using geo-
metric means instead of arithmetic means, as in CRRgro versus CRRaro.
Compare the results on the suggested example inputs.
6. Implement floating strike option pricing in the CRR model using path-
dependent Arrow-Debreu securities. Check that the results agree with
CRRflt.
7. Write an Octave program to compute the maximums along all paths in
a non-recombining binary tree of depth N . (Hint: modify NRTmin().)
8. Implement lookback option pricing in the CRR model using path-
dependent Arrow-Debreu securities. Check that the results agree with
CRRlb.
9. Implement ladder Put option pricing in the CRR model by modifying
CRRladC appropriately. Check that the premium is at least as great as
that for the vanilla European-style Put with the same parameters.
def S0
F0 = ,
Z(0, T )
129
130 Forwards and Futures
where Z(0, T ), as defined in Section 1.1.5, is the spot discount factor for a
zero-coupon bond maturing at time T .
Now suppose that the price of S is S(n, j) at time index n and state index
j in a discrete model of the future for which n = N represents time T . Then
S(0, 0) = S0 is the spot price of S. The fair price at time 0 in the unique state
0 for a Forward contract to buy S at time step N is
def S(0, 0)
F0 = F (0, 0) = ,
D(0, 0)
where D(n, j) is the modeled discount factor, at time step n in state j, for
that zero-coupon bond maturing at time T , namely at time step N . Note that
D(N, j) = 1, j = 0, 1, . . . , N. (5.1)
as the zero-coupon bond is worth its face value at maturity in any state.
As time advances, the fair price may change. In the discrete model, at time
n in state j, the fair price for a Forward contract that expires at time N is
S(n, j)
F (n, j) = , (5.2)
D(n, j)
D(n, j)
V (n, j) = S(n, j) − F (0, 0)D(n, j) = S(n, j) − S(0, 0).
D(0, 0)
The technique is to construct a portfolio whose value at time n in state j is
S(n, j) − F (0, 0)D(n, j) and then show that it is a hedge for the Long Forward
contract. This may be done as follows:
• Short-sell S for S(n, j);
• Buy a zero-coupon bond maturing at N with face value F (0, 0) for the
discounted price F (0, 0)D(n, j).
The net proceeds will be S(n, j) − F (0, 0)D(n, j). This could be positive or
negative. To show that the portfolio is a hedge, evaluate it at expiry time N
in any state:
• Redeem the bond for F (0, 0);
• Execute the Forward contract to buy S for F (0, 0);
Discrete Models for Futures 131
This covers all liabilities of the Long Forward, so it and the hedge portfolio
must have the same price at time N in any state. Conclude by the One Price
Theorem 1.2 that, to avoid an arbitrage opportunity, the value V (n, j) of the
Long Forward contract at time n in state j must equal S(n, j)−F (0, 0)D(n, j)
as claimed.
where p(n, j) is computed by Eq.3.16. The terminal condition from which the
backward induction procedes is Eq.5.1. An immediate consequence is that
namely that the zero-coupon bond yields the riskless return R(N − 1, j) if it is
purchased in state j one time step before maturity. Combine this with Eq.5.2
to compute
which is the Forward price given by any discrete model with one time step.
accounts at time n in state j will be Mlong (n, j) and Mshort (n, j), respectively.
They contain positive amounts above some minimum set by the institution,
and they earn interest at the riskless rate on their contents.
Suppose that at the initiation of the contract at time 0 in unique state 0,
the accounts hold Mlong (0, 0) and Mshort (0, 0), respectively. The Long party
agrees to buy S at time N from the Short party for a price denoted by G(0, 0).
More generally, denote by G(n, j) the price at time n in state j for a
Futures contract also maturing at time N . This price is affected by S and R
as derived below. It is evident that
Thus the Long side is paid immediately for increases in G while the Short side
is debited its loss immediately. Decreases in G have the reverse effect.
Proof: This may be proved by induction on time n. First assume that there
are no margin calls.
At time n = 0, since j(0) = 0, both inequalities evidently hold as equalities.
Now assume the inductive hypothesis that the inequalities hold at time n.
Compare sides at time n+ 1 by applying the margin adjustments from Eqs.5.6
and 5.7 with j = j(n) and j 0 = j(n + 1). This gives, for the Long side,
The middle inequality follows since R(n, j) ≥ 1 for all states and times
when riskless interest rates are positive. The last inequality follows from the
inductive hypothesis.
The proof for the Short side is similar but for a change of sign.
Finally, if either side covers a margin call by adding cash at some (n, j(n)),
then its margin account balance will be larger for all subsequent times, pre-
serving the claimed inequality. 2
Margin account requirements differ but, by Theorem 5.1, if Mlong (0, 0)
contains enough money to pay G(0, 0) at expiry N , it will contain enough
money at time n to pay G(n, j(n)) at expiry N . Hence the Long party may
withdraw from the contract by forfeiting Mlong (n, j(n)) to the supervising
institution which may then serve as a replacement Long side with no cost of
its own.
Similarly, the Short party may withdraw by forfeiting Mshort (n, j(n)) to
the supervising institution which may then find a replacement Short side at
the current Futures price G(n, j(n)).
Solving for G(n, j) in terms of future values gives the backward induction
formula for G:
The induction starts at N , as usual, with the terminal conditions from Eq.5.5
specifying G(N, j) for 0 ≤ j ≤ N .
Observe that p, and thus R, need only be given down to time N − 1.
Notice too that there is no division by R(n, j), which for other assets represents
adjustment for present value. That is because in Futures contracts the present
value is realized by adjustments to the margin account. These adjustments
accumulate differently along different paths through the R model and thus
may differ from the path independent discount encoded in D(n, j). However,
if the riskless return at each time n is not dependent on the state j, then the
two adjustments will be the same, so Futures and Forwards will have equal
fair prices:
Theorem 5.2 If R(n, j) = R(n, ·) is independent of j, then F (n, j) = G(n, j)
for all 0 ≤ n ≤ N and all 0 ≤ j ≤ n.
Proof: First note that at expiry,
Next, show that F and G satisfy the same backward recursion and thus that
F and G have the same price in all prior states. But
S(n, j)
F (n, j) =
D(n, j)
def 1 1 1
D(n, j) = D(n, ·) =
R(n, ·) R(n + 1, ·) R(N − 1, ·)
for every 0 ≤ n < N , so
This is the same backward recursion as Eq.5.8, with the same terminal values.
Conclude that F (n, j) = G(n, j) for all n, j. 2
Modeled Forwards and Futures prices may differ when interest rates are
not independent of state. Here is a simple example with three time steps:
S= 100 R= 1.025
85 115 1.03 1.02
75 100 130 1.035 1.025 1.015
65 85 115 150
Mf (t) − B(t), 0 ≤ t ≤ T,
where B(t) is the time-evolving debt incurred to fund the margin account
Mf (t) which is adjusted according to changes in the Futures price for the
underlying asset. Because of that margin account, whose balance is path de-
pendent, the value of a Futures contract is path dependent.
The no-arbitrage Futures prices G have the same values for any margin
account balance. They may be modeled by a recombining binomial tree just
like the underlying asset prices. However, the margin account balance needs
to be modeled by a non-recombining tree of paths using Eqs.5.6 and 5.7.
19 %
20 ML = zeros ( 1 , 2 ∗ 2 ^N−1) ; ML( 1 ) = ML0 ;
21 MS = zeros ( 1 , 2 ∗ 2 ^N−1) ; MS( 1 ) = MS0 ;
22 [ nm, jm ] = NJfromM (N) ; % r e c o m b i n i n g i n d e x f u n c t i o n s
23 f o r (m=1:2^N−1)
24 Rnj=R(nm(m) +1 ,jm (m) +1) ; Gnj=G(nm(m) +1,jm (m) +1) ;
25 Gup=G(nm(m) +2 ,jm (m) +2) ; Gdown=G(nm(m) +2 ,jm (m) +1) ;
26 dGup = Gup−Gnj ; dGdown = Gdown−Gnj ;
27 ML( 2 ∗m)=ML(m) ∗ Rnj+dGdown ; ML( 2 ∗m+1)=ML(m) ∗ Rnj+dGup ;
28 MS( 2 ∗m)=MS(m) ∗Rnj−dGdown ; MS( 2 ∗m+1)=MS(m) ∗Rnj−dGup ;
29 end
30 return
31 end
How does entering a Futures contract for S at strike price G(0) with initial
margin deposit Mf (0) compare with simply depositing B(0) = Mf (0) into a
riskless account without the Futures contract? With MarFut() and PathBal()
it is possible to experiment and gain some intuition through discrete binomial
138 Forwards and Futures
modeling. The fair price of the contract is computed with a path dependent
Arrow-Debreu expansion as returned by PathAD(pu,R,N), given the risk neu-
tral probabilities pu=RiskNeut(S,R,N) implied by asset prices S and riskless
returns R down to time step N :
All three values will be the same $200. This experimental result suggests that
both the Long and Short Futures contracts with margin accounts at t = 0 are
worth the same as the margin deposit in a riskless account. But that result
holds in general for Futures contracts priced by the discrete binomial model:
Theorem 5.3 The value of the Futures contract at its fair price is equal to
the value of the initial margin deposit without the contract.
Proof: This will be proved by induction in a discrete model of underlying
asset prices S and riskless returns R, using recombining binomial trees but
with path dependent prices for the accounts and the Arrow-Debreu securities.
Let p̄ be the risk neutral probabilities corresponding to S and R, injected
into a non-recombining tree with the m notation. Likewise, let R̄ be the riskless
returns injected into another such tree. Then the Futures margin account Mf
satisfies the backward induction
p̄(m)Mf (2m + 1) + (1 − p̄(m))Mf (2m)
Mf (m) = , 0 < m < 2N , (5.9)
R̄(m)
λ̄(1) =
1,
1 − p̄(m)
λ̄(2m) = λ̄(m),
R̄(m)
p̄(m)
λ̄(2m + 1) = λ̄(m), m = 1, 2, . . . .
R̄(m)
Discrete Models for Futures 139
as in the proof of Theorem 4.3. For the current theorem, it suffices to prove
that X X
Mf (m)λ̄(m) = B(m)λ̄(m),
m∈M(N ) m∈M(N )
This may be done by induction. The base case, N = 0, is evident since then
M(0) = {1}, and B(1) = Mf (1) by hypothesis.
Now suppose that Eq.5.10 holds for N and consider the case N + 1:
X
Mf (m) − B(m) λ̄(m) =
m∈M(N +1)
X
= Mf (2m) − B(2m) λ̄(2m) +
m∈M(N )
X
+ Mf (2m + 1) − B(2m + 1) λ̄(2m + 1)
m∈M(N )
X 1 − p̄(m)
= Mf (2m) − B(m)R̄(m) λ̄(m) +
m∈M(N )
R̄(m)
X p̄(m)
+ Mf (2m + 1) − B(m)R̄(m) λ̄(m)
m∈M(N )
R̄(m)
X
= Mf (m) − B(m) λ̄(m) = 0,
m∈M(N )
using Eq.5.9 and the inductive hypothesis. This completes the proof. 2
The defaulting party thereby covers the default with funds from its margin
account. In extraordinary circumstances, that margin balance may fall below
zero. In that case, the defaulting party will owe the supervising institution
additional funds. This creates a risk for the institution since the defaulting
party may not have the funds to pay this bill, so margin balance requirements
must be set high enough so that falling below zero is vanishingly unlikely in
the modeled future.
The returned linear arrays are the non-recombining trees of modeled Long
and Short margin acccount balances and the path probabilities.
For this example, the Long Futures margin deposit of $50, or 50% of S0 ,
was enough to cover all modeled declines, whereas the Short Futures margin
deposit of $30, or 30% of S0 , was not. Thus there exists the possibility that
the Short side defaults and loses the contract.
To compute the probability of a margin call, it is necessary to sum the
path probabilities Pr(m) from the model over all the paths m that terminate
in a first negative margin account balance. Each such path is found with a
depth-first search of the margin account tree. This is a problem well suited to
a recursive programming solution:
1 function Pneg = PrNeg (X, Pr ,m, n )
2 % R e c u r s i v e Octave /MATLAB f u n c t i o n t o compute t h e
3 % p r o b a b i l i t y of h i t t i n g a negative element in a
4 % non−r e c o m b i n i n g t r e e by depth− f i r s t s e a r c h −−DFS .
5 % INPUTS : ( Example )
6 % X = data NRT ( [ 1 2 −1 3 −4 −5 6 ] )
7 % Pr = prob . NRT ([1 .49 .51 .1 .2 .3 . 4 ] )
8 % m = index of the current root (1)
9 % N = r e m a i n i n g t r e e depth , must be >0 (2)
10 % OUTPUTS:
11 % Pneg = p r o b a b i l i t y o f f i r s t n e g a t i v e s i n DFS
12 % EXAMPLE:
13 % Pneg = PrNeg ( [ 1 2 −1 3 −4 −5 6 ] , . . .
14 % [ 1 . 4 9 . 5 1 . 1 . 2 . 3 . 4 ] , 1 , 2 ) % Pneg =0.7100
15 %
16 Pneg =0; % d e f a u l t v a l u e f o r s e v e r a l c a s e s
17 i f n<0 % l e a f t e r m i n a t i o n c o n d i t i o n f o r DFS
18 return % z e r o c o n t r i b u t i o n from below l e v e l N
19 end % . . . s o n>=0 h e r e a f t e r
20 i f X(m)<0 % then t h i s n o n l e a f i s n e g a t i v e
21 Pneg=Pr (m) ; % . . . s o count i t s p r o b a b i l i t y
22 else % otherwise t h i s nonleaf i s nonnegative
23 P0=PrNeg (X, Pr , 2 ∗m, n−1) ; % s o check path 2m
24 P1=PrNeg (X, Pr , 2 ∗m+1 ,n−1) ; % . . . and path 2m+1
142 Forwards and Futures
PrNeg() descends the binary tree X along every path, in depth-first order,
until it encounters a negative element. It then records the probability of that
path, discarding any descendent paths, and passes the value back to be added
to that of other paths.
For the margin accounts modeled as the output of CRRmargin() above,
the probabilities are
PrNeg(ML, Pr, 1, N) % ans = 0, no risk, as expected
PrNeg(MS, Pr, 1, N) % ans = 0.072998, somewhat risky
Remark. Inputs m=1 and n=N indicate the root m = 1 of a tree of depth N .
Remark. The spot price S0 plays no role so it may be set to any convenient
positive value such as $100.
5.3 Exercises
1. Suppose that S and R are modeled with a recombining binomial tree of
N ≥ 1 levels. Prove that
Some assets provide a cash flow to the owner. Bonds with coupons pay periodic
interest, some stocks pay dividends, some properties pay rent or royalties, and
so on. The prices of derivatives on those assets must account for this cash flow
as well as the asset price itself.
For example, Bank of America paid a quarterly cash dividend over the period
2015-2020 with the times and amounts in Table 6.1.1
1 This schedule was published on the website
https://www.nasdaq.com/market-activity/stocks/bac/dividend-history
145
146 Dividends and Interest
TABLE 6.1
Historical dividends on BAC from 2015–2020.
The most suitable date for the purpose of evaluating derivatives on stocks
is the ex-dividend date tei . The value of the dividend di should be discounted
by the riskless return over tpi − tei , but since this is a small and nearly constant
discount it may be ignored at the cost of a small error in a known direction.
after canceling nonzero S(n + 1, j) − S(n + 1, j + 1). But then One Price
Theorem 1.2 applied to W and the hedge portfolio implies
p1
W (n, j) = H0 + H1 V (n, j) = H0 = ,
R(n, j)
since V (n, j) = 0. At the same time, the generalized backward pricing formula
applied to W implies
p(n, j)W (n + 1, j + 1) + (1 − p(n, j))W (n + 1, j) p(n, j)
W (n, j) = = ,
R(n, j) R(n, j)
from which it follows that p1 = p(n, j). The two derivations of p may be
combined into a technical lemma:
Lemma 6.1 In the binomial model S, R with no arbitrage opportunities, the
Forward price F1 (n, j) at (n, j, ) with expiry n + 1 satisfies
if and only if
R(n, j)S(n, j) − S(n + 1, j)
p1 = p(n, j) = ,
S(n + 1, j + 1) − S(n + 1, j)
namely p1 is the risk neutral up probability. 2
Now suppose that S has a per-share dividend dn+1 with record date tp = n
and ex-dividend date te = n + 1, for some 0 ≤ n < N . For simplicity, suppose
also that the dividend is paid immediately, so tp = n + 1 as well. Then the
generalized backward pricing formula Eq.3.18 for S implies that
p(n, j)[S(n+1, j+1) + dn+1 ] + (1−p(n, j))[S(n+1, j) + dn+1 ]
S(n, j) =
R(n, j)
p(n, j)S(n+1, j+1) + (1−p(n, j))S(n+1, j) + dn+1
= , (6.2)
R(n, j)
since the owner of record at (n, j) benefits from dn+1 in either state, (n + 1, j)
or (n + 1, j + 1). Substitution into Eq.6.1 yields
Note the similarity with the annualized riskless return rate r if R(n, j) = R is
a constant independent of (n, j):
R = exp(rT /N ) ≈ 1 + rT /N.
Lemma 6.3 If d1 > (R − 1)K and S(1, 1) > S(1, 0) > K, then early exercise
is optimal at time 0.
Proof: In this one-step, two-state model, there is only one riskless return R
and only one risk neutral up probability p. The generalized backward pricing
formula gives the positive binomial value
pC(1, 1) + (1 − p)C(1, 0)
CB (0, 0) =
R
+ +
p [S(1, 1) − K] + (1 − p) [S(1, 0) − K]
=
R
p[S(1, 1) − K] + (1 − p)[S(1, 0) − K]
=
R
F1 (0, 0) − K
= , by Lemma 6.1,
R
S(0, 0)R − d1 − K
= , by Eq.6.3,
R
K + d1
= S(0, 0) − .
R
On the other hand, the early exercise value is
+
CX (0, 0) = [S(0, 0) − K] ≥ S(0, 0) − K,
+
since [Z] ≥ Z for every Z. Finally, if d1 > (R − 1)K, then
K + d1
K< ,
R
and so CX (0, 0) > CB (0, 0) > 0. Conclude that early exercise at time 0 is
optimal. 2
Remark. The proof of Lemma 6.2, at Eq.6.7, actually leads to the stronger
result that if early exercise is optimal, then dn+1 > [R(n, j) − 1]K. Thus no
smaller dividend will suffice in Lemma 6.3.
The cash flow portion I is treated as riskless because dividends are typically
constant or change slowly over time and are paid at regular intervals. Eq.1.7
gives the present value, at time t, of the dividend cash flow:
X
I(t) = di Z(t, Ti ),
{i:Ti >t}
where di is the dividend paid at time Ti , and Z(t, T ) is the discount factor
at time t for a zero-coupon bond maturing at time T . In a discrete model
with times t0 < t1 < t2 < · · · and a riskless return Rn over [tn , tn+1 ], the
zero-coupon bond discount has a simple form:
k−1
1 1 Y 1
Z(tn , tn+1 ) = , Z(tn , tn+k ) = = , k = 1, 2, . . .
Rn Rn · · · Rn+k−1 i=0
Rn+i
def
(abusing notation by writing I(n) = I(tn )).
dN +1 I(n + 1) + dn+1
I(N ) = ; I(n) = , n = N − 1, . . . , 1, 0, (6.9)
RN Rn
corresponding to the terminal condition I(N + 1) = 0 from which all previous
values I(N ), I(N − 1), . . . , I(0) are computed by backward recursion. 2
Stocks with Dividends 153
Inputs for this calculation may be obtained from several sources. The fu-
ture dividend sequence may be inferred from historical data such as that in
Table 6.1. Future riskless returns must be modeled from bond interest rates,
as will be done in Section 6.2 below. Past riskless returns, to use with past
dividend sequences as in Exercise 3 below, may be obtained from historical
interest rates. Table 6.2 shows an example sequence2 of three-month US Trea-
sury annualized interest rates which may be used to compute riskless returns
over one year, one month, and three months (one quarter). Dates were chosen
to align with the ex-dividend dates from Table 6.1.
Given a tree of riskless returns R(n, j), the up and down factors and risk
neutral probabilities are given by Eqs. 3.14–3.17, substituting S ← S 0 . Thus
the ex-dividend portion S 0 satisfies the generalized backward pricing formula
In particular, S 0 (n+1, j+1) = u(n, j)S 0 (n, j) and S 0 (n+1, j) = d(n, j)S 0 (n, j),
where u(n, j), d(n, j) are the time and state dependent up and down factors,
respectively, from the discrete model for S 0 .
2 This data was published on the website
https://fred.stlouisfed.org/series/DGS3MO
154 Dividends and Interest
TABLE 6.2
Quarterly three-month US Treasury rates from 2015–2020.
Now suppose that the up and down factors u, d are constant in all times
and states, and given by the CRR model in terms of volatility σ and the
number of time steps N to expiry T :
√ 1 √
u = eσ T /N , d = = e−σ T /N .
u
Then there is a familiar formula for S 0 :
Since S 0 (0, 0) = S(0, 0)−I(0), Eqs.6.10 and 6.11 may be combined as a formula
for the original S:
This has two applications: to compute the initial ex-dividend price S 0 (0, 0)
from the spot price S0 = S(0, 0), and then to obtain the asset price model
S(n, j) from S 0 (n, j) and I(n).
Next, modify the constant riskless return formula R = erT /N to use a
time-varying yield curve with annualized rate rn at time step tn :
Rn = ern T /N ,
def Rn − d u − Rn
pn = , =⇒ 1 − pn = .
u−d u−d
The usual backward pricing formula for S 0 is also modified:
pn S 0 (n + 1, j + 1) + (1 − pn )S 0 (n + 1, j)
S 0 (n, j) = . (6.12)
Rn
The riskless cash flow portion I(n) satisfies Eq.6.9 with riskless returns Rn ,
so there is a similar backward pricing formula for I:
10 % Di = 2 :N+2 d i v i d e n d s i n a v e c t o r ( s e e below )
11 % r i = 1 :N+1 annual y i e l d c u r v e ( s e e below )
12 % v = v o l a t i l i t y ; must be >0 (0.15)
13 % N = height of the binomial t r e e (12)
14 % OUTPUTS:
15 % S = cum−d i v i d e n d b i n o m i a l t r e e a t a l l ( n , j ) .
16 % Sx = ex−d i v i d e n d b i n o m i a l t r e e a t a l l ( n , j ) .
17 % Ipv = d i v i d e n d p r e s e n t v a l u e a t a l l n .
18 % EXAMPLE:
19 % Di =[0 1 0 0 1 0 0 2 0 0 2 0 0 2 ] ; % Di ( k+1)=D_k
20 % r i =[1 1 1 1 1 2 2 2 2 2 3 3 3 ] / 1 0 0 ; % r i ( k+1)=r_k
21 % [ S , Sx , Ipv ]=CRRD( 1 , 1 0 0 , Di , r i , 0 . 1 5 , 1 2 ) ;
22 %
23 [ pui , up , Ri ] = CRRparams (T, r i , v ,N) ; % M o d i f i e d CRR
24 Sx=zeros (N+1,N+1) ; S=zeros (N+1,N+1) ;
25 Ipv=zeros ( 1 ,N+1) ; % . . . a l l o c a t e output m a t r i c e s
26 Ipv (N+1)=Di (N+2)/ Ri (N+1) ; % i g n o r e d_n i f n>N+1
27 f o r n=(N−1) :( −1) : 0 % t e x t b o o k time i n d e x n i s . .
28 Ipv ( n+1)=( Ipv ( n+2)+Di ( n+2) ) / Ri ( n+1) ; % a t n+1
29 end % . . . backward r e c u r s i o n f o r Ipv .
30 Sx ( 1 , 1 )=S0−Ipv ( 1 ) ; S ( 1 , 1 )=S0 ; % i n i t i a l v a l u e s
31 f o r n=1:N % t e x t b o o k time i n d i c e s
32 f o r j =0:n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
33 Sx ( n+1 , j +1)=Sx ( 1 , 1 ) ∗up ^(2∗ j −n ) ;
34 S ( n+1 , j +1)=Sx ( n+1, j +1)+Ipv ( n+1) ;
35 end
36 end % . . . f o r w a r d r e c u r s i o n f o r Sx and S .
37 return ; % P r i c e s a r e i n S , Sx , and Ipv .
38 end
These two functions may be tested on historical data from Table 6.1 (p.146)
and Table 6.2 (p.154). Suppose that it is January 2, 2015, and consider January
2021 Calls, expiring in 6 years, on the dividend-paying stock BAC.
First, define BACdivQ, the sequence of 24 quarterly dividends from Table
6.1, starting at time index 0 (which will not be used), noting that there is a
dividend every three months:
% Quarterly BAC dividends 0:25 from the table:
BACdivQ=[0.05,... % textbook time index 0 value
0.05,0.05,0.05,0.05, 0.05,0.05,0.075,0.075,...
0.075,0.075,0.12,0.12, 0.12,0.12,0.15,0.15,...
0.15,0.15,0.18,0.18, 0.18,0.18,0.18,0.18, 0.18];
158 Dividends and Interest
Next, define ri, the annualized riskless rates assumed constant for one
quarter, using the DGS3MO column and starting at time index 0:
% Annualized riskless interest rates 0:24 from the table:
ri=[0.02,... % textbook time index 0 value
0.02,0.02,0.03,0.21, 0.36,0.30,0.33,0.48,...
0.63,0.98,1.03,1.27, 1.63,1.93,2.13,2.41,...
2.35,2.33,1.97,1.54, 0.62,0.15,0.11,0.08]/100;
Remark. The volatility σ = 17.79% used here is the VIX closing value for
January 2, 2015, published at
https://finance.yahoo.com/quote/^VIX/history
Its range that day was 17.05–20.14%.
The spot price S0 = $17.90 used here is the closing price for BAC on January
2, 2015, published at
https://finance.yahoo.com/quote/BAC/history
There is also an adjusted closing price S00 = $15.65 for BAC on that day on
the same web page. That is an approximation to the ex-dividend spot price
as it is “adjusted for splits and dividend and/or capital gain distributions.”
Of these factors, the first two are fixed in every contract between lender (buyer
of the bond) and borrower (seller). The remaining factors contribute to risk
which is managed by other contract terms and derivatives.
In Chapter 1, Eq.1.1, a bond’s price was denoted by B(t) and it was treated
as a riskless asset because its value at maturity T > 0 was known. Then in
Chapter 2, Eq.2.3, a simple continuous model using the differential Eq.2.1
gave B(t) = B0 ert , where B0 was the spot price at t = 0, r was a rate param-
eter from the model, and maturity T was not mentioned. If that differential
def
equation is solved for a specified terminal, or face value F = B(T ), then the
formula becomes
B(t) = F er[t−T ] .
162 Dividends and Interest
But even if both B(0) and B(T ) are known, a bond’s price at intermediate
times t with 0 < t < T may not follow the simple exponential formula from
continuous compounding at a constant riskless rate. A more accurate financial
model must in fact treat it as a risky asset, with market forces resulting in
deviations from the exponential function. So, denote the price at time t of a
bond by B(t, T ), with the goal of estimating this function from data available
at time t = 0.
Bond prices are sometimes quoted after normalization to a discount (or
premium, in some cases) through division by the face value F = B(T, T ). It
is more common, however, to use the yield to maturity, a fluctuating interest
rate r = r(t, T ) implied by the discount (or premium) to face value, plus any
remaining coupons.
For example, a zero-coupon bond with maturity date T has discount Z
and yield to maturity r that are related at time t < T by:
log Z
Z = er[t−T ] , =⇒ r = , (6.14)
t−T
Both are risky and fluctuate with t. Discounts are dimensionless quantities.
The units for T and t are usually years, making r an annualized interest rate.
1 function [ Ze , Zs ] = ZT(Tn , Zn , Ti )
2 % Octave /MATLAB f u n c t i o n t o compute Zero Coupon
3 % Bond s p o t d i s c o u n t s by i n t e r p o l a t i o n .
4 % INPUTS : ( Example )
5 % Tn = m a t u r i t i e s with known d i s c o u n t s (1:5)
6 % Zn = s p o t d i s c o u n t a t each Tn ( c o s (Tn/ 1 0 ) )
7 % Ti = e v a l u a t i o n p o i n t s ([0.5 ,1.5 ,3.2 ,4.7])
8 % OUTPUTS:
9 % Ze = p i e c e w i s e e x p o n e n t i a l v a l u e s a t Ti
10 % Zs = s p l i n e i n t e r p o l a t i o n v a l u e s a t Ti
11 % EXAMPLE:
12 % Tn= 1 : 5 ; Zn= c o s (Tn/ 1 0 ) ; Ti = [ 0 . 5 , 1 . 5 , 3 . 2 , 4 . 7 ] ;
13 % [ Ze , Zs ]=ZT(Tn , Zn , Ti )
14 % p l o t (Tn , Zn , " k " , Ti , Ze , " r " , Ti , Zs , " b " ) ;
15 %
16 [ Tn , n s o r t ]= sort (Tn) ; Zn=Zn ( n s o r t ) ; % 0<T1<T2 < . .
17 Ze = zeros ( s i z e ( Ti ) ) ; % i n i t i a l i z e Ze
18 f o r i =1: length ( Ti ) % e v a l u a t i o n t i m e s
19 T = Ti ( i ) ;
20 t 1 =0; t 2=Tn ( 1 ) ; z1 =1; z2=Zn ( 1 ) ; % 0<T<T1
21 f o r j=length (Tn) : −1:2 % s e e k from h i g h end
22 i f (T>Tn( j −1) )
23 t 1=Tn( j −1) ; t 2=Tn( j ) ;
24 z1=Zn ( j −1) ; z2=Zn ( j ) ;
25 break ;
26 end
27 end
28 a l p h a =(t1−T) / ( t1−t 2 ) ; % Compute Ze by exp ( )
29 Ze ( i )=z1 ^(1− a l p h a ) ∗ z2 ^ a l p h a ; % i n t e r p o l a t i o n
30 end % Then , compute Zs by s p l i n e
31 Zs=s p l i n e ( [ 0 , Tn ] , [ 1 , Zn ] , Ti ) ; % i n t e r p o l a t i o n
32 return ;
33 end
The last coefficient is 1 since Z(0, 0) = 1 in all cases. The system of equations
derived from the present value identity becomes a linear system of equations
for the remaining coefficients a = (a1 , . . . , aM ):
M Ni M
!
X X X
m m
Bi = 1 + (Ni ∆) am + ci 1+ (n∆) am
m=1 n=1 m=1
M Ni
!
X X
m m
= 1 + Ni ci + (Ni ∆) + ci (n∆) am ,
m=1 n=1
where Ni ci is the sum of the coupons over the Ni payments. The matrix Â
for the system will be M × M and its i, j coefficient will be
Ni
def
X
j
Â(i, j) = (Ni ∆) + ci (n∆)j .
n=1
166 Dividends and Interest
Solving the system Âa = b̂ for a will provide the coefficients from which the
zero-coupon bond discounts may be calculated.
Estimating creditworthiness
One application is to estimate the creditworthiness of a company issuing
coupon bonds but not zero-coupon bonds. Using the company’s zero-coupon
debt discount Ẑ(0, T ) in the present value equation and solving for it gives
a market-based estimate for default risk. The ratio Ẑ(0, T )/Z(0, T ) of the
company’s zero-coupon discount is a measure of creditworthiness since US
government debt is considered maximally creditworthy.
when the variable interest payments are made. Assume that the interest rate
remains constant over these small time intervals:
The expected values r̄n of these future piecewise constant rates satisfy
Z(0, tn+1 )
e−r̄n [tn+1 −tn ] = e−r̄n ∆t = Z̄(tn , tn+1 ) = , (6.19)
Z(0, tn )
for n = 0, 1, . . . , N − 1, by Eqs.1.4 and 1.6 on p.3. Thus
Z(0, tn )
r̄n ∆t = log , n = 0, 1, . . . , N − 1. (6.20)
Z(0, tn+1 )
But r̄n ∆t is very small for typical interest rates and payment intervals so that
the approximation er̄n ∆t = 1 + r̄n ∆t is accurate. Use it when exponentiating
both sides of Eq.6.20 to get
Z(0, tn )
1 + r̄n ∆t = , n = 0, 1, . . . , N − 1. (6.21)
Z(0, tn+1 )
Interest Rates 167
Now consider the expected cash flow to the party that pays variable interest
and receives constant interest. At tn+1 , the net flow per dollar of principal is
κ∆t − r̄n ∆t, which is the same as [1 + κ∆t] − [1 + r̄n ∆t], so the present value
of the expected net flow may be computed by Eq.1.7:
N
X −1
PV = ([1 + κ∆t] − [1 + r̄n ∆t])Z(0, tn+1 )
n=0
N
X −1 N
X −1
= [1 + κ∆t] Z(0, tn+1 ) − [1 + r̄n ∆t]Z(0, tn+1 )
n=0 n=0
N
X N
X −1
= [1 + κ∆t] Z(0, tn ) − Z(0, tn )
n=1 n=0
after reindexing the first sum and using Eq.6.21 in the second. But P V = 0
with a fair fixed rate κ, implying
PN −1
Z(0, tn ) 1 − Z(0, T )
κ∆t = Pn=0
N
− 1 = PN ,
n=1 Z(0, tn ) n=1 Z(0, tn )
using the fact that Z(0, t0 ) = Z(0, 0) = 1 and Z(0, tN ) = Z(0, T ). Thus
!
1 1 − Z(0, T )
κ= PN , (6.22)
∆t n=1 Z(0, tn )
TABLE 6.3
Spot US T-bill rates and discounts on December 15, 2021.
TABLE 6.4
Quarterly US T-bill rates and discounts, with interpolation.
Table 6.3, plus a fourth that must be interpolated. This is done in Table 6.4,
where α = (3/4 − 1/2)/(1 − 1/2) = 1/2 is used in Eq.6.15 to find Z(0, 3/4).
Remark. Notice how increasing riskless yields, over [0, T ] with increasing
maturity T ∈ { 41 , 12 , 34 }, are amplified into increasing expected forward yields
over [t, t+1/4] with increasing t ∈ {0, 41 , 12 , 34 }. The last expected forward yield
over [ 34 , 1] is the same as for [ 12 , 34 ] since the intermediate discount Z(0, 43 ) is
exponentially interpolated.
If both κ(T, 0.5) and κ(T, 0.25) are published, the error in the approxima-
tion may be estimated by comparing the published κ(T, 0.5) with the approx-
imation from Eq.6.23. For example, suppose that the market rate κ(1, 0.5)
agrees exactly with the value given by Eq.6.22 with Table 6.3 data. Then
1 1 − Z(0, 1)
κ(1, 0.5) = = 0.0027045 = 0.27045%,
1/2 Z(0, 1/2) + Z(0, 1)
giving a difference κ(1, 0.5) − κ̂(1, 0.5) = 0.0000001.
More generally, with two exchange intervals ∆1 and ∆2 , the swap rate
relation is
1/∆1 1/∆
(1 + κ(T, ∆1 )∆1 ) = (1 + κ(T, ∆2 )∆2 ) 2 ,
1 h ∆ /∆
i
=⇒ κ(T, ∆1 ) = (1 + κ(T, ∆2 )∆2 ) 1 2 − 1 . (6.24)
∆1
6.2.4 Benchmarks
Riskless returns may be calculated from various published zero-coupon bond
discounts, or coupon bond prices, or swap rates. There are many so-called
benchmarks, available for specific currencies, that are compiled and published
by both private and public institutions.
Benchmark interest rates are typically calculated from market rates using
published formulas. The market and formula are chosen to make the result
robust against manipulation. In stochastic process language, the benchmark
should be a martingale. This is impossible to guarantee mathematically in
practice, but there are some accepted principles that boost faith:
• large numbers of constituent rates, averaged together,
• volume weighting of the averages,
• consistency among related benchmarks.
Overnight lending rates among many large banks satisfy the first two condi-
tions for very short terms. Longer-term rates may be computed from govern-
ment bond discounts set at auctions and may be checked for consistency with
market-derived swap rates.
170 Dividends and Interest
TABLE 6.5
ASX Australian dollar Bank Bill Swaps rates by tenor.
BBSW date 1 mo 2 mo 3 mo 4 mo 5 mo 6 mo
(dd/mm/yyyy) (%) (%) (%) (%) (%) (%)
11/03/2022 0.0150 0.0661 0.1450 0.2550 0.3859 0.5100
10/03/2022 0.0186 0.0700 0.1450 0.2531 0.3700 0.5000
09/03/2022 0.0150 0.0700 0.1458 0.2550 0.3650 0.5086
08/03/2022 0.0150 0.0650 0.1385 0.2254 0.3250 0.4450
07/03/2022 0.0150 0.0650 0.1350 0.2050 0.2950 0.4043
04/03/2022 0.0156 0.0500 0.1183 0.1800 0.2700 0.3798
03/03/2022 0.0150 0.0450 0.0983 0.1583 0.2300 0.3385
02/03/2022 0.0161 0.0350 0.0850 0.1400 0.2050 0.2810
01/03/2022 0.0175 0.0430 0.0850 0.1250 0.1850 0.2550
28/02/2022 0.0166 0.0406 0.0798 0.1250 0.1767 0.2500
using the 30/360 convention that treats one year as 12 equal 30-day months.
To get the expected riskless rates r̄0 , . . . , r̄5 , put ∆t = 1/12 and combine
Eqs.6.25 and 6.20:
Z(0, k∆t)
r̄k ∆t = log = BBSW(k+1)−BBSW(k), k = 0, . . . , 5, (6.26)
Z(0, [k+1]∆t)
with the convention that BBSW(0) = 0 since Z(0, 0∆t) = 1. Note that
r̄k is annualized: the one-month expected riskless return is R̄ = exp(r̄∆t) =
exp(r̄/12). For example, get monthly expected riskless rates from the 1 March
2022 row (01/03/2022) with these Octave commands:
bbsw=[0.0175,0.0430,0.0850,0.1250,0.1850,0.2550]; % 1/3/2022
rbar=12*diff([0,bbsw]) % 0.210 0.306 0.504 0.480 0.720 0.840
Here diff(x)=[x(2)-x(1),x(3)-x(2),...] is the discrete difference func-
tion. It computes Eq.6.26 correctly, with leading term x(1), if given the zero-
padded input x=[0,bbsw].
EUR rates. The European Central Bank (ECB) currently has two short-
term benchmarks, EONIA and eSTR, and an intermediate-term benchmark
called EURIBOR. Their values are published by the ECB at the URLs
https://www.ecb.europa.eu/stats/financial_markets_and_interest_
rates/euro_short-term_rate/html/index.en.html
https://www.ecb.europa.eu/paym/interest_rate_benchmarks/WG_euro_
risk-free_rates/html/index.en.html
The eSTR was negative, at −0.577%, computed on 11 March 2022 from 565
transactions among 32 banks totaling more than e55 billion.
There are also informal indicators, published by brokerages and similar
institutions on URLs such as
https://www.fxempire.com/macro/euro-area/interest-rate
A best lending rate, which was around 0.25% in January 2022, is typically
adjusted from the ECB rates to reflect creditworthiness and monetary policy.
As a result, different European Union member states and other nations that
trade in euros have different lending rates.
USD benchmarks. Riskless rates for US dollars (USD) can be derived from
several benchmarks, listed here with their range of tenors or maturities:
• Fed funds effective rate, overnight;
• Secured Overnight Financing Rate (SOFR), overnight;
• USD London Interbank Offered Rate (LIBOR), 1–12 months;
• US Treasury bills, notes, and bonds, 1–30 years;
• 1-month Term SOFR swap rates, 1–30 years;
• Semiannual coupon bond swap rates, 1–30 years;
• Prime lending rate for consumer credit and real estate loans, 1 month –
30 years.
Their market values are published online, for example at the URL
https://www.chathamfinancial.com/technology/us-market-rates
See Tables 6.6, 6.7, and 6.8 below for some examples.
172 Dividends and Interest
TABLE 6.6
Historical benchmark USD rates (%): Prime lending rate; Fed Funds overnight
rate; Secured Overnight Financing Rate (SOFR) with 30- and 90-day moving
averages (MA).
TABLE 6.7
USD LIBOR benchmark interest rates at closing on 11 March 2022 and three
earlier dates.
USD LIBOR 1 mo 3 mo 6 mo 12 mo
11 Mar 2022 0.39657 0.82600 1.13057 1.59600
10 Mar 2022 0.38700 0.80286 1.10286 1.53486
11 Feb 2022 0.19114 0.50643 0.84043 1.39229
11 Mar 2021 0.10600 0.18388 0.19275 0.27725
6.3 Exercises
1. Suppose that S is a dividend paying stock with a declared dividend
amount D at ex-dividend date te . Let S(te −) denote the closing price
of S on the day before the ex-dividend date, and S(te +) denote the
opening price of S on the ex-dividend date. Show that
S(te +) = S(te −) − D
TABLE 6.8
Intermediate and long-term benchmark USD interest rates at closing on 11
March 2022 and two earlier dates.
BENCH- Date 1 yr 2 yr 3 yr 5 yr 7 yr 10 yr 30 yr
MARK (d/m/y) (%) (%) (%) (%) (%) (%) (%)
U.S.A. 11/03/22 1.155 1.734 1.906 1.941 1.996 1.990 2.355
Treasury 14/02/22 1.086 1.581 1.800 1.911 1.989 1.992 2.296
bonds 12/03/21 0.074 0.150 0.338 0.839 1.283 1.624 2.385
1-month 11/03/22 1.168 1.630 1.736 1.729 1.738 1.786 1.790
SOFR 14/02/22 1.108 1.557 1.692 1.740 1.764 1.803 1.801
swaps 15/03/21 0.060 0.107 0.282 0.693 1.022 1.359 1.768
Swaps— 11/03/22 1.356 1.796 1.875 1.868 1.875 1.911 1.914
monthly 14/02/22 1.229 1.682 1.814 1.865 1.889 1.925 1.924
money 15/03/21 0.141 0.196 0.369 0.803 1.154 1.474 1.886
Swaps— 11/03/22 1.506 1.949 2.035 2.030 2.040 2.078 2.084
semi- 14/02/22 1.293 1.785 1.941 2.011 2.045 2.086 2.096
bond 15/03/21 0.205 0.256 0.440 0.911 1.281 1.618 2.057
Both the Black-Scholes pricing formula and its CRR approximation assume
constant volatility σ for the duration of the options contract. Since the Call
and Put premiums vary with volatility, the actual market prices for C and P
at various expiries and strike prices can be used to estimate σ. Existence of
this implied volatility for the model can be shown using Calculus, and there
is an efficient numerical method for actually calculating it.
175
176 Implied Volatility
To find the implied volatility x = σ for a Call (or Put) premium y, use
bisection with f being a function that returns the price of a European-style
Call (or Put) option computed from some model. Fixed parameters are spot
price S0 , strike price K, time T to expiry, and riskless rate r. Volatility σ is
the only variable x to solve for. The target value y is the market price of the
Implied Volatility Surfaces 177
option. The initial interval 0 < a < b < ∞ must satisfy f (a) ≤ y ≤ f (b),
but this is assured by choosing a close to 0 and b sufficiently large. A solution
to f (x) = y is therefore the implied volatility parameter for the model that
uniquely fits the market conditions.
with target market values for C(0, Ti , Kj ) at the available expiries and strike
prices in the options chain. Here f is a European-style Call option premium
pricing function such as CRR or Black-Scholes. Each value costs one call to
bisection() and a bounded number of f evaluations.
Some options chain publishers compute these implied volatilities and in-
clude them in the table, for example:
https://finance.yahoo.com/quote/BAC/options
Table 7.1 shows American-style Call option premiums for BAC on Decem-
ber 14, 2021 (t = 0), when the closing price was $44.13. The most recent
ex-dividend date was December 2, 2021, and the one before that was Septem-
ber 2, 2021. Both were $0.21. BAC has a history of quarterly dividends with
ex-dividend dates near the beginning of March, June, September, and Decem-
ber, so no dividend is expected between t = 0 and the latest expiry, February
18, 2022. By Lemma 6.2, early exercise will not be optimal without a dividend
before expiry, so the American-style and European-style options will have the
same premium. Hence the implied volatilities may be computed using the
Black-Scholes formula for pricing Call options.
For the riskless rate, use recently published US Treasury Bill APRs for ma-
turities similar to the option expiries. On December 14, 2021, the value from
https://www.treasury.gov/, found by searching online for “T-bill rates,”
was 0.05% APR for 56 days. For time to expiry, use fractions of a year com-
puted by (days to expiry)/365.
TABLE 7.1
Implied volatilities from December 14, 2021 closing prices for BAC American-
style Call options at r = 0.05% and S0 = 44.13.
Dec17 (3) Dec23 (9) Jan7 (21) Jan21 (35) Feb18 (63)
K C σ C σ C σ C σ C σ
40 4.14 .50 4.35 .54 4.85 .55 4.60 .35 5.15 .37
41 3.20 .56 3.42 .49 3.50 .35 4.00 .39 4.35 .35
42 2.24 .47 2.72 .52 2.89 .39 3.15 .36 3.65 .34
43 1.30 .36 1.51 .30 1.96 .32 2.44 .34 2.87 .31
44 0.63 .35 0.86 .29 1.34 .30 1.71 .30 2.39 .32
45 0.23 .35 0.45 .29 0.84 .29 1.24 .30 1.76 .29
46 0.07 .36 0.22 .30 0.52 .29 0.88 .30 1.39 .29
Once the Call market prices C have been read from Table 7.1, a bisection
search for the implied volatility produces the values σimp in the table.
0.65
0.6
0.55
0.5
0.45
0.4
0.35 0
0.3 10
0.25 20
30
40
41 40
T (days)
42
50
43
K 44 60
45
70
46
FIGURE 7.1
Implied volatility from BAC Call options as a function of strike price K and
days to expiry T .
180 Implied Volatility
Its rows are the values at expiry time T of a riskless bond, the various Call
options, and the underlying asset S. The vectors it relates are
1
C1 (0) Q(N, 0)
Q(N, 1)
q = ... , k= , (7.3)
..
Cm (0)
.
Q(N, N )
S(0)
Implied Binomial Trees 181
which are the spot prices of the assets and the probabilities of the future
states, respectively. The system in Eqs.7.1 then becomes
meaning that the spot prices are the present values of the expected payoffs.
The existence of a solution to Eq.7.4 is guaranteed by Theorem 8.4 in
Chapter 8, under the hypothesis that the combination of spot prices q and
payoffs A offers no arbitrage opportunities. To avoid arbitrage, N and v must
satisfy √ √
d < R < u, ⇐⇒ e−v T /N < erT /N < ev T /N .
The left inequality is immediate since r > 0 and v > 0. The right inequality
holds if and only if
√ √
r
T T
r <v , ⇐⇒ r T < v N .
N N
Additionally, the modeled range of prices {S(N, j); j = 0, 1, . . . , N } must in-
clude all the strike prices, so
√ Ki √
(∀i) S(0)u−N < Ki < S(0)uN , ⇐⇒ (∀i) e−v TN
< < ev T N .
S(0)
Thus each individual path (0, 0) → (n, j) has probability Q(n, j)/ nj .
182 Implied Volatility
Now let p(n, j) be the risk neutral up probability at state (n, j). It satisfies
n+1 n
Q(n + 1, j + 1)/ = p(n, j)Q(n, j)/
j+1 j
n+1 n
Q(n + 1, j)/ = (1 − p(n, j))Q(n, j)
j j
Multiplying by Q(n, j) and then adding gives the backward induction formula
for this construction:
j+1 j
Q(n, j) = Q(n + 1, j + 1) + 1 − Q(n + 1, j). (7.6)
n+1 n+1
Q(n, j)
λ(n, j) = , n = 0, 1, . . . , N ; j = 0, 1, . . . , n. (7.7)
Rn
For any such weight, Q(n, j) remains a positive probability function on the
states j = 0, 1, . . . , n at each time step n:
Implied Binomial Trees 183
PN
Lemma 7.2 Suppose that Q(N, j) > 0 for all j and j=0 Q(N, j) = 1. Then
Q(n, j) defined by Jackwerth’s formula (Eq.7.8) satisfies
n
X
(∀j) Q(n, j) > 0 and Q(n, j) = 1,
j=0
for every 0 ≤ n ≤ N .
Proof: Proceed by induction on n, starting with n = N where the conclusion
holds by hypothesis.
Now suppose that the conclusion holds for n + 1. Fix j with 0 ≤ j ≤ n
and note that Q(n, j) > 0 since Pnall terms on the right-hand side of Eq.7.8 are
positive. Then, to show that j=0 Q(n, j) = 1, use Eq.7.8 to separate it into
two sums, extract the j = 0 and j = n terms where w(0/(n + 1)) = 0 and
w((n + 1)/(n + 1)) = 1, and recombine the two sums after substituting j for
j + 1 in the first to get the same index range:
n n
X X j+1
Q(n, j) = w Q(n + 1, j + 1)
j=0 j=0
n+1
n
X j
+ 1−w Q(n + 1, j)
j=0
n+1
n−1
X j+1
= Q(n + 1, n + 1) + w Q(n + 1, j + 1)
j=0
n+1
n
X j
+ Q(n + 1, 0) + 1−w Q(n + 1, j)
j=1
n+1
n
X j
= Q(n + 1, n + 1) + w Q(n + 1, j)
j=1
n+1
n
X j
+ Q(n + 1, 0) + 1−w Q(n + 1, j)
j=1
n+1
n+1
X
= Q(n + 1, j) = 1,
j=0
by the inductive hypothesis. Conclude that the result holds for n as well, and
thus for all 0 ≤ n ≤ N . 2
Note that Lemma 7.2 implies that Q(0, 0) = 1.
Q(n, j) may be interpreted as the probability of state (n, j) in a recombin-
ing binomial model of the future. Apply a constant riskless return R per time
step as a discount to get the spot prices for Arrow-Debreu unit securities in
the model:
def Q(n, j)
λ(n, j) = . (7.10)
Rn
184 Implied Volatility
From Q and λ so defined, the risk neutral up probability in state (n, j) should
be
def j + 1 Q(n + 1, j + 1)
p(n, j) = w > 0, (7.11)
n+1 Q(n, j)
which then implies
j+1
Q(n, j) − w n+1 Q(n + 1, j + 1)
1 − p(n, j) =
Q(n, j)
j Q(n + 1, j)
= 1−w > 0. (7.12)
n+1 Q(n, j)
Q(0, 0)
V (0, 0)λ(0, 0) = V (0, 0) = V (0, 0).
R0
Now suppose that 0 ≤ n < N . Put
def V (n, j)
Z(n, j) = , =⇒ V (n, j)λ(n, j) = Q(n, j)Z(n, j),
Rn
noting that therefore
Apply this formula, substitute for p(n, j) and 1 − p(n, j), cancel Q(n, j),
and separate the sums as in the proof of Lemma 7.2 to get
n
X n
X
V (n, j)λ(n, j) = Q(n, j)Z(n, j)
j=0 j=0
Xn h i
= Q(n, j) p(n, j)Z(n+1, j+1) + (1−p(n, j))Z(n+1, j)
j=0
n
X j+1
= w Q(n + 1, j + 1)Z(n + 1, j + 1)
j=0
n+1
n
X j
+ 1−w Q(n + 1, j)Z(n + 1, j)
j=0
n+1
n+1
X n+1
X
= Q(n+1, j)Z(n+1, j) = V (n+1, j)λ(n+1, j),
j=0 j=0
after combining the telescoping sums and canceling terms. Conclude that the
expansion is independent of n, so it equals V (0, 0) for all 0 ≤ n ≤ N . 2
These should be near the money, namely close to the spot price.
• Market prices for the corresponding European-style Call options with
common expiry T :
C1 , . . . , Cm ,
where Ci has strike price K, i = 1, . . . , m. By convention, the ask price
is used. If there is no dividend in the interval [0, T ], then American-style
options may be used as they will have the same premiums.
• The riskless return factor for the period [0, T ]:
R = exp(rT ) = 1/Z(0, T ),
If there is no arbitrage, then these will all be nonnegative, with Q(N, 0) chosen
so that they sum to one.
The S and Q trees are then pruned to remove the bottom row elements
corresponding to negative and zero values Q(N, j). At least two will be re-
moved, since Q(N, 1) = Q(N, N − 1) = 0 by construction. Negative values
should not occur, but when they do they indicate mispriced options, or ar-
bitrage. If N1 is the largest index in the pruned and re-indexed bottom row,
then N1 ≤ N − 2.
14 % Q = tree of p r o b a b i l i t i e s of a l l states (n , j )
15 % up = u p f a c t o r s a t ( n , j )
16 % down = d o w n f a c t o r s a t ( n , j )
17 % pu = r i s k n e u t r a l up p r o b a b i l i t i e s a t ( n , j )
18 % N1 = depth o f t h e pruned t r e e
19 % NOTE: s i n c e Octave a r r a y i n d i c e s s t a r t a t 1 , output
20 % a r r a y v a l u e f o r ( n , j ) i s s t o r e d a t i n d e x ( n+1, j +1) .
21 % EXAMPLE:
22 % S0 = 4 4 . 2 2 ; Ks = 4 0 : 4 6 ; % BAC s p o t p r i c e and s t r i k e s
23 % Cs = [ 5 . 6 , 4 . 8 , 4 . 1 , 3 . 4 5 , 2 . 8 7 , 2 . 2 9 , 1 . 8 1 ] ; % C a l l a s k s
24 % r = 0 . 0 6 / 1 0 0 ; rho=exp ( r ∗ 1 0 9 / 3 6 5 ) ; % 13−wk T− b i l l APR
25 % [ S , Q, up , down , pu , N1 ] = IBT123J ( S0 , Ks , Cs , rho , w)
26 %
27 m = length ( Ks ) ; % e x p e c t v a l i d Ks ( 1 ) , . . . , Ks (m)
28 % Check t h a t Ks and Cs have t h e same l e n g t h
29 i f ( length ( Cs ) != m ) % e x p e c t v a l i d Cs ( 1 ) , . . . , Cs (m)
30 error ( " l e n g t h ( Cs ) != l e n g t h ( Ks ) " ) ;
31 end
32 N=m+1; % i n i t i a l t r e e depth , b e f o r e p r u n i n g
33 Del=Ks ( 2 )−Ks ( 1 ) ; % e x p e c t Del=Ks ( j )−Ks ( j −1) , a l l j
34 i f ( ! ( Del >0) ) % e x p e c t Ks ( 1 )<Ks ( 2 ) < . . .
35 error ( " must have Ks ( 1 )<Ks ( 2 ) " )
36 end
37 f o r j =3:m % e x p e c t e q u i s p a c e d Ks
38 i f ( Ks ( j ) != Ks ( j −1)+Del )
39 error ( " must have e q u i s p a c e d Ks " )
40 end
41 end
42 %% Generate time−T r i s k n e u t r a l p r o b a b i l i t i e s Q(N, j ) :
43 QN=ones ( 1 ,N+1) ; % s o QN( j +1)=Q(N, j ) f o r j = 0 , . . . ,N=m+1
44 f o r j =2:m−1 % n o r m a l i z e d b u t t e r f l y s p r e a d premiums :
45 QN( j +1)=rho ∗ ( Cs ( j −1)−2∗Cs ( j )+Cs ( j +1) ) / Del ;
46 end
47 QN( 2 ) =0; QN(m+1)=0; % Q(N, 1 ) and Q(N,m) a r e s p e c i a l
48 QN(N+1)=rho ∗ ( Cs (m−1)−Cs (m) ) / Del ; % Q(N,N) i s s p e c i a l
49 QN( 1 )=1−sum(QN( 2 : (N+1) ) ) ; % s o sum (Q(N, j ) ) =1 , a s prob .
50 %% Generate t h e i n i t i a l bottom row o f s t o c k p r i c e s
51 SN=zeros ( 1 ,N+1) ; % s o SN( j +1)=S (N, j ) f o r t h e i n i t i a l t r e e
52 b=(Cs ( 2 )−Cs ( 1 ) ) / Del ; % temporary " s l o p e " v a r i a b l e
53 SN( 1 )=rho ∗ ( S0−Cs ( 1 )+Ks ( 1 ) ∗b ) /(1+ rho ∗b ) ; % S (N, 0 ) i s s p e c i a l
54 SN ( 2 :m+1)=Ks ( 1 :m) ; % S (N, j )=Ks ( j ) f o r j =1:m
55 SN(N+1)=Ks (m)+Del ∗Cs (m) / ( Cs (m−1)−Cs (m) ) ; % S (N,N) s p e c i a l
56 %% Prune t h e bottom row o f S t o u s e o n l y p o s i t i v e Qs :
57 Q1=QN(QN>0) ; % s u b v e c t o r o f t h e p o s i t i v e Q(N, j )
58 S1=SN(QN>0) ; % . . . and t h e c o r r e s p o n d i n g S (N, j )
59 N1=length (Q1) −1; % depth o f t h e pruned t r e e
60 R=rho ^(1/N1) ; % new one−s t e p r i s k l e s s r e t u r n
61 %% I n i t i a l i z e and a s s i g n t h e output b i n o m i a l t r e e s
62 S = zeros (N1+1 ,N1+1) ; % array of stock p r i c e s .
188 Implied Volatility
7.4 Exercises
1. Suppose that C and P are European-style Call and Put options, respec-
tively, at strike price K and expiry T , for a risky underlying asset S
with spot price S0 . Show that 0 < C(0) ≤ S0 and 0 < P (0) ≤ K. (Hint:
construct an arbitrage otherwise.)
2. Show that the Eq.7.11 and Eq.7.12 probabilities produce the Arrow-
Debreu spot prices λ(n, j) in Eq.7.10 using Jamshidian’s forward induc-
tion, Eq.3.21 on p.69.
Further Reading 189
3. Compute implied volatility for the data in Table 7.1 using both Black-
Scholes and CRR with N = 20. Tabulate and compare the results.
4. The table below gives part of the options chain for American-style Calls
on Bank of America common stock (BAC) as of closing on March 17,
2022, when the spot price was $43.03:
Strike T= 1 d 8 d 15 d 21 d 27 d
price K (3/18) (3/25) (4/01) (4/08) (4/14)
42.00 1.10 1.44 1.76 1.96 2.18
43.00 0.34 0.86 1.10 1.33 1.58
44.00 0.06 0.44 0.69 0.88 1.06
45.00 0.02 0.18 0.35 0.53 0.71
46.00 0.01 0.07 0.16 0.31 0.44
47.00 0.01 0.02 0.09 0.17 0.27
Use this data to compute and plot the volatility surface for BAC.
5. Suppose that a share of XYZ has a spot price of $47.12, that riskless
interest rates for the next month are expected to be a constant 0.66%
APR, and that the premiums for European-style Call options expiring
in 4 weeks (T = 4/52) are as follows:
Strike price: 45.00 46.00 47.00 48.00 49.00
Call premium: 3.52 2.78 2.10 1.44 1.37
(a) Construct an implied binomial tree for these inputs using Rubin-
stein’s 1-2-3 algorithm. Display it along with the implied risk neutral up
probabilities.
√
(b) Plot the three weight functions w1 (x) = x, w2 (x) = x2 , and
w3 (x) = (1 − cos(x/π))/2, for 0 ≤ x ≤ 1, on the same graph.
(c) Apply Rubinstein’s 1-2-3 algorithm with Jackwerth’s generalization
to the data, using weights w1 , w2 , w3 from part (b). Compare S, p, and
Q for the three weights.
• Emanuel Derman and Iraj Kani. “Riding on a Smile.” RISK 7:2 (1994),
pp.139–145.
191
192 Fundamental Theorems
xT A ∈ K =⇒ xT q ≥ 0.
Proof: Read this as “If IA2, then not IA1.” This implication holds iff IA1 and
IA2 cannot both be true, iff there cannot exist an immediate arbitrage. 2
xT A ∈ K \ 0 =⇒ xT q > 0.
Proof: Read this implication as “If AO2 and AO3, then not AO1,” which
prevents all three conditions from holding simultaneously for any portfolio x.
Thus there cannot exist an arbitrage opportunity. 2
Applications of the Fundamental Theorems 195
q = Ak.
Proof: ( ⇐= ): Suppose that there exists k ≥ 0 that solves q = Ak, and let
x be a profitable portfolio. Then xT A ≥ 0, so
q = Ak.
function, expanding the spot prices of assets as the present value of a weighted
average of their modeled future values:
where ai is the payoff vector of one of the assets in the market. The expectation
is taken with respect to the risk neutral probabilities, k without its discount.
The same k may be used to find the spot price of any derivative with a
known payoff d at the same future time as A. This d is a row vector, like the
asset payoffs {ai } making up the rows of A. Its spot price is therefore
def
d0 = dk = PV(E(d)),
where again the expectation uses the risk neutral probabilities implied by A, q.
8.2.1 Hedges
Sellers of a contingent claim incur a liability, the payoff vector d of the deriva-
tive. To protect against loss, they seek to hedge, or replicate it, with a portfolio
of other assets, often including the underlying as well as some riskless assets.
To cover the liability exactly at minimal cost to the seller, a hedge portfolio
hs for d in a market A, q must satisfy
At spot prices q, the cost of the hedge portfolio is hsT q, so the seller of the
derivative must charge at least this much in order to hedge the sale. Hence
the “ask price” is the minimum cost found by solving the problem in Eq.8.1.
The potential buyer of a derivative contingent claim has the opposite per-
spective on hedges. They provide the same payoff, so if one were available at a
lower spot price than the derivative, there would be an immediate arbitrage.
Assuming no arbitrages, the prospective buyer has a maximum “bid price” for
any hedge portfolio hb that has a payoff equal to the derivative’s. That is the
maximum cost found by solving
Theorem 8.5 In an arbitrage-free market A, q, the bid and ask prices for
any derivative with an exact hedge must be equal.
Proof: First note that if there exists an exact hedge, then Eqs.8.1 and 8.2
both have solutions. These may be denoted hs and hb , respectively, and they
satisfy
hsT A = d = hbT A.
Since A, q is arbitrage-free, there exists k ∈ K o such that q = Ak. But then
hbT q = hbT (Ak) = (hbT A)k = (hsT A)k = hsT (Ak) = hsT q.
Applications of the Fundamental Theorems 197
Conclude that the bid price must equal the ask price. 2
Remark. Two exact hedge portfolios hb and hs need not be the same, only
their payoffs (and thus their spot prices) must be equal.
1
R(S ↑ − S ↓)
S↑ −R
A−1 = , =⇒ k = A−1 q = .
R(S↑ − S↓ ) −S↓ R RS0 − S↓
R(S↑ − S↓ )
198 Fundamental Theorems
and both expectations use the same probability function. In particular, a port-
folio containing just a and the riskless asset can be hedged by one containing
just b and riskless. It follows that there are infinitely many hedge portfolios,
combining a and b, for any derivative in this market.
Remark. This example illustrates how new assets added to an arbitrage-
free complete market have unique no-arbitrage spot prices determined by their
modeled future payoffs. Derivatives or contingent claims on existing assets fall
into this category.
pT A ≥ 0 =⇒ pT q ≥ 0.
pT A = hsT A − hbT A ≥ d − d = 0,
200 Fundamental Theorems
p1 = p3 − 0.36
p2 = 1.36 − 2p3
P
(Notice that i pi = 1.) To find a positive solution p > 0 requires solving the
simultaneous inequalities
which imply that 0.36 < p3 < 0.72. Taking the midpoint gives one of the
infinitely many positive solutions:
p3=(0.36+0.72)/2; p1=p3-0.36; p2=1.36-2*p3;
p=[p1 p2 p3] % p = 0.18000 0.28000 0.54000
k=p/R % k = 0.17647 0.27451 0.52941
Conclude by Theorem 8.4 that A, q is arbitrage-free.
Remark. Octave computes the unique solution closest to 0 for such an
underdetermined system with
A\q*R % p = 0.15333 0.33333 0.51333
A\q % k = 0.15033 0.32680 0.50327
For general A, q, a minimal norm solution k to q = Ak may not be positive
even if there exists a positive solution. (A = 0 with q = 0 gives a trivial
example.) However, if P A contains a riskless asset with payoff R > 0, then
every solution satisfies i ki = 1/R > 0. The intersection of this hyperplane
with the orthant K contains all the positive solutions, all of which are closer
to 0 than any other points on the hyperplane outside K. This gives a simple
computational test for arbitrages in an incomplete market:
Corollary 8.8 Finite incomplete market model A, q is arbitrage-free if and
only if Ak = q has a minimal norm solution k > 0. 2
202 Fundamental Theorems
Since bid is strictly less than ask, by Corollary 8.9 there is no exact hedge for
this derivative in this market.
Thus, convexity means that if two points are in the set, then the line segment
connecting them lies entirely within the set as well.
Definition 11 (Cone) Set S ⊂ Rn is said to be a cone iff
Here the intuition is that every ray from 0 through any point in the cone is
also in the cone. To define a ray precisely, let v ∈ Rm be a nonzero vector
and let
def def
V = {λv : λ > 0} and V̄ = {λv : λ ≥ 0}. (8.3)
These are both called rays in the v direction, though only V̄ contains 0. A
check of Definitions 10 and 11 shows that each is a convex cone. Likewise, K,
K \ 0, and K o are all convex cones. However, not all cones are convex: the
union of the positive x and y axes in R2 is a nonconvex cone.
For another example, recall that a subspace V ⊂ Rn is a set of vectors
satisfying three conditions:
Definition 12 (Subspace) Subset V ⊂ Rn is a subspace iff 0 ∈ V , x, y ∈
V =⇒ x + y ∈ V , and x ∈ V, c ∈ R =⇒ cx ∈ V .
x(m) j=1
204 Fundamental Theorems
This subspace is the set of all linear combinations, also called the span, of
the column vectors in A. Likewise, the row space Row A is the subspace of Rn
spanned by the row vectors.
Proof: By Eqs.8.3 and 8.6, both AK and AK o are sums of convex cones. By
Lemma 8.10, they are therefore both convex cones. 2
kx − yk = 0 ⇐⇒ x = y.
There is some positive distance between a subspace and any point outside it:
Lemma 8.12 If V ⊂ Rn is a subspace and x ∈ Rn is a point not in V , then
there is some > 0 such that kx − yk ≥ for all y ∈ V .
Proof: If V = Rn , then there is nothing to prove.
Otherwise, let k = dim V , let {b1 , . . . , bk } be a basis for V , let B = (b(i, j))
be the n × k matrix whose j th column is the basis vector bj , and define the
function
2
n k
def
X X
s(v1 , . . . , vk ) = x(i) − vj b(i, j) = kx − Bvk2 ,
i=1 j=1
which gives the squared distance between x = (x(1), . . . , x(n)) and the point
Pk
Bv = j=1 vj bj ∈ V . This s is a quadratic polynomial in the expansion
coefficients v1 , . . . , vk , and s → ∞ as the coefficients grow without bound, so
206 Fundamental Theorems
there is a minimum for s at the unique critical point Bv∗ given by expansion
coefficients v∗ = (v1∗ , . . . , vk∗ ) with ∇s(v∗ ) = 0, namely for all l = 1, . . . , k,
n k
∂s ∗ X X
0= (v ) = −2b(i, l) x(i) − vj∗ b(i, j) ,
∂vl i=1 j=1
• Any subspace is closed. Use Lemma 8.12 to show that the complement
of a subspace is open. The details are left as an exercise.
Remark. The union of finitely many closed sets is closed, and the inter-
section of finitely many open sets is open. This does not extend to infinite
collections:
∞
[ 1
,1 = (0, 1] is a nonclosed union of closed sets;
n=1
n
∞
\ 1 1
− , = {0} is a nonopen intersection of open sets.
n=1
n n
Sets may also be neither open nor closed. It is an easy exercise to check
these properties for the three orthants defined above:
Lemma 8.13 K is a closed convex cone; K o is an open convex cone; K \ 0
is a convex cone that is neither open nor closed. 2
The dual of the dual of a subset S ∈ Rn , also called the double dual, will
again be S under certain conditions. In particular, the double dual is a convex
cone, so one condition is that S is a convex cone. Likewise, to have (S ⊥ )⊥ = S,
208 Fundamental Theorems
V ∗ = {x ∈ Rn : xT v > 0} and V 0 = {x ∈ Rn : xT v ≥ 0}
are, respectively, the open and closed half-spaces, with normal vector v. If
v = 0, these sets are ∅ and Rn , respectively, instead of half-spaces.
Lemma 8.15 For the rays V and V̄ defined in Eq.8.3, the double duals are
(V ∗ )∗ = V and (V̄ 0 )0 = V̄ , respectively.
vT b
c0 = > 0, =⇒ c0 v ∈ V.
vT v
def
Put z = b − c0 v. Note that z ∈ V ⊥ .
If z = 0, then b = c0 v ∈ V .
Cones, Convexity, and Duals 209
Corollary 8.18 The set S of strictly profitable portfolios for a market matrix
A is a strict dual cone: S = (AK o )∗
Proof: This is left as an exercise. 2
210 Fundamental Theorems
Lemma 8.19 Suppose that A is a market matrix with spot price vector q. Let
P and S be the profitable and strictly profitable portfolios of A, respectively.
Then
(a) A, q is IA-free iff q ∈ P 0 , the dual cone of P .
Next, observe that duals and strict duals, as well as orthogonal comple-
ments, reverse inclusions:
Lemma 8.23 If A ⊂ B ⊂ Rn , then B 0 ⊂ A0 , B ∗ ⊂ A∗ , and B ⊥ ⊂ A⊥ .
Proof: Suppose x ∈ B 0 . Then
(∀b ∈ B) bT x ≥ 0 =⇒ (∀a ∈ A) aT x ≥ 0,
i=1 i=1
Finally, compute the dual of the nonempty intersection of finitely many half-
spaces as follows:
Tn Tn
Lemma 8.25 Suppose that i=1 Vi∗ , and thus also i=1 V̄i0 , are nonempty.
Then !∗ !0
\n n
X \n Xn
∗ 0
Vi = Vi and V̄i = V̄i
i=1 i=1 i=1 i=1
Proof: First observe that X and Y cannot both hold as that would lead to a
contradiction:
xT Ay = xT (Ay) = xT q < 0,
while also xT Ay = (xT A)y ≥ 0, since both (xT A) ≥ 0 and y ≥ 0.
Evidently, Condition Y holds if and only if
q ∈ AK = {Ak : k ≥ 0},
On the other hand, since AK is a cone, any z ∈ AK and any λ > 0 result in
λz ∈ AK, so
(∀k ∈ K) xT Ak ≥ 0,
To prove Theorem 8.3 from this lemma, let A, q be a finite financial model.
Then A, q is immediate-arbitrage-free iff Condition X fails to be true, iff Con-
dition Y holds, iff there is a vector y ≥ 0 such that q = Ay.
Proof: It may be assumed without loss of generality that b = 0, since the set
def
Q + b = {x + b : x ∈ Q} is closed, convex, and nonempty just like Q, and
k(x + b) − bk = kxk implies that points in Q + b are the same distance from
b as points in Q are from 0.
Next, note that if 0 ∈ Q, then the unique closest point is q0 = 0 itself, at
distance 0.
More generally, let δ = inf{kxk : x ∈ Q} be the greatest lower bound of
all distances from points in Q to 0. Then there is a sequence {xn } ⊂ Q with
kxn k → δ as n → ∞. It remains to show that xn converges to a point in Q.
But (xi + xj )/2 ∈ Q for all i, j, since Q is convex, and so
kxi + xj k2 ≥ 4δ 2
kx − q0 k2 ≤ 2kxk2 + 2kq0 k2 − 4δ 2 = 0,
kq0 k2 − kbk2
x = q0 − b, γ= .
2
214 Fundamental Theorems
kq0 k2 − kbk2
(q0 − b)T q ≤ ,
2
so ∇s(q0 )T (q − q0 ) ≤ −kq0 − bk2 < 0. Hence there is some small λ ∈ (0, 1)
for which
s(q0 + λ[q − q0 ]) < s(q0 ).
But Q is convex, so q0 + λ[q − q0 ] = (1 − λ)q0 + λq ∈ Q, and this contradicts
the extremal property of q0 . Conclude that f (q) > 0. 2
8.4 Exercises
1. Prove that any subspace V ⊂ Rn is a closed convex cone.
2. Prove that the closed orthant K ∈ Rn of vectors with nonnegative
coordinates is a closed convex cone.
3. Prove that the pointless orthant K \ 0 is a convex cone but is neither
open nor closed.
4. Prove that K o is an open convex cone.
5. Prove that the intersection of any collection of convex sets is convex.
6. Prove Theorem 8.16 on p.209:
(a) K 0 = K, that is, the nonnegative orthant is a self-dual cone.
(b) (K o )0 = K and (K o )∗ = K \ 0.
(c) (K \ 0)0 = K and (K \ 0)∗ = K o .
(d) ((K o )∗ )∗ = K o , that is, the open positive orthant is its own strict
double dual cone.
Exercises 215
7. Prove Eq.8.6:
n
X n
X
o
AK = V̄i ; AK = Vi ,
i=1 i=1
217
A
Answers
(a) Use this finite probability space model to estimate premiums C(0)
and P (0) for European-style Call and Put options, respectively, with
strike price K = 101 and expiry T .
(b) Does Call-Put Parity hold in this model? What might cause it to be
inaccurate?
Solution: (a) First enter the data with these Octave commands:
5. Suppose that C(0) − P (0) < S(0) − K/R, in contradiction with Eq.1.16.
Construct an arbitrage.
Solution: At t = 0, starting with no money, do the following:
• Short-sell P for P (0) cash.
• Short-sell S for S(0) cash.
• Buy C for C(0) cash.
• Deposit K/R cash into the bank at riskless return R.
That leaves S(0) − K/R − C(0) + P (0) > 0 cash. Then at t = T , clear
all debts as follows:
• If S(T ) > K then exercise C for a profit of S(T ) − K. Otherwise
C expires worthless.
• If K > S(T ), then cash-settle the short-sold P for K − S(T ) > 0.
Otherwise P expires worthless.
• Withdraw RK/R = K cash from the bank, including interest.
• Cover the short-sale of S for S(T ) cash.
+ +
That leaves C(T ) − P (T ) + K − S(T ) = [S(T ) − K] − [K − S(T )] +
K − S(T ) = 0 and no debts in all cases. The positive amount obtained
at t = 0 is therefore an arbitrage profit forbidden by Axiom 1. 2
6. Prove Eq.1.20, the Call-Put Parity Formula for foreign exchange options:
X(0) K
C(0) − P (0) = − .
Rf Rd
Use the no-arbitrage axiom.
Solution: To prove equality, show that inequality in either direction
results in an arbitrage opportunity.
Case 1: C(0) − P (0) > X(0)/Rf − K/Rd .
At t = 0, starting with no money, perform the following trades:
• Short-sell C for C(0) DOM cash.
• Buy P for P (0) DOM cash.
• Borrow K/Rd DOM cash at Rd from the domestic bank.
• Convert X(0)/Rf DOM to 1/Rf FRN at spot exchange rate X(0).
• Deposit 1/Rf FRN cash into the foreign bank at Rf .
That leaves C(0) − P (0) − X(0)/Rf + K/Rd > 0 DOM in cash, a net
profit to keep.
At t = T , clear all debts as follows:
• Withdraw 1 FRN cash from the foreign bank, including interest.
222 Answers
• If K ≥ X(T ), then
+
– Short-sold C expires worthless, as C(T ) = [X(T ) − K] = 0
imposes no liability.
– Exercise P to convert 1 FRN into K DOM.
• Else K < X(T ), so
– Convert 1 FRN to X(T ) DOM at the market rate X(T ).
+
– Cash settle C for C(T ) = [X(T ) − K] = X(T ) − K.
+
– Do not exercise P , as P (T ) = [K − X(t)] = 0 is worthless.
• Repay the domestic bank loan with interest for K DOM cash.
+ +
That leaves − [X(T ) − K] + [K − X(T )] − K + X(T ) = 0 and no
unfunded liabilities. The positive amount obtained at t = 0 is therefore
an arbitrage profit prohibited by Axiom 1.
Case 2: C(0) − P (0) < X(0)/Rf − K/Rd .
At t = 0, starting with no money, perform the following trades:
• Short-sell P for P (0) cash.
• Buy C for C(0) cash.
• Borrow 1/Rf FRN from the foreign bank at Rf .
• Convert 1/Rf FRN to X(0)/Rf DOM at spot exchange rate X(0).
• Deposit K/Rd DOM cash into the domestic bank.
That leaves X(0)/Rf − K/Rd − C(0) + P (0) > 0 DOM cash, a net profit
to keep.
At t = T , clear all debts as follows:
• Withdraw K DOM cash from the domestic bank, including interest.
• If K ≥ X(T ), then
+
– Do not exercise the worthless C, as C(T ) = [X(T ) − K] = 0.
+
– Cash settle P for its value P (T ) = [K − X(T )] = K − X(T ).
– Convert X(T ) DOM to 1 FRN cash at the market rate X(T ).
• Else K < X(T ), so
+
– Short-sold P expires worthless, as P (T ) = [K − X(T )] = 0.
– Exercise C to convert K DOM to 1 FRN cash at rate K.
• Repay the foreign bank loan with interest for 1 FRN cash.
+ +
That leaves [K − X(T )] − [X(T ) − K] + K − X(T ) = 0 and no un-
funded liabilities. The positive amount obtained at t = 0 is therefore an
arbitrage profit prohibited by Axiom 1.
Conclude that Eq.1.20 holds. 2
. . . to Chapter 1 Exercises 223
in all cases.
+ +
(b) Let X = S(T )−K. Then C(T ) = [S(T ) − K] = [X] while P (T ) =
+ +
[K − S(T )] = [−X] . Apply part (a) to conclude that
+ +
C(T ) − P (T ) = [X] − [−X] = X = S(T ) − K,
as claimed. 2
8. Plot the payoff and profit graphs for the following colorfully named
option portfolios as a function of the price S(T ) at expiry time T :
(a) Long straddle: buy one Call and one Put on S with the same expiry
T and at-the-money strike price K ≈ S(0). For what values of S(T ) will
this be profitable?
(b) Long strangle: buy one Call at Kc and one Put at Kp with the same
expiry T but with out-of-the-money strike prices Kp < S(0) < Kc . How
does its profitability compare with that of a long straddle?
Solution: (a) See the payoff and profit graph for a Long straddle in
Figure A.1.
The straddle will be profitable if S(T ) is sufficiently far from S(0) in
either direction, namely more than the sum of the two premiums.
(b) See the Long strangle payoff and profit graph in Figure A.2.
Since the two strangle options are out-of-the-money, their premiums are
lower than the at-the-money options in a straddle, making the strangle
portfolio cheaper. However, for the strangle to be profitable, the stock
price may have to move farther. 2
224 Answers
FIGURE A.1
Payoff and profit for a Long straddle portfolio X = C + P .
FIGURE A.2
Payoff and profit for a Long strangle portfolio Y = CKC + PKP .
! "
FIGURE A.3
Payoffs for the butterfly spread C = CL + CH − 2CM and its components.
and 1.9,
icp(s) = C1 (T ) − C2 (T ) − P3 (T ) + P4 (T )
+ + + +
= [s − K1 ] − [s − K2 ] − [K3 − s] + [K4 − s]
(K4 − K3 ), s ≤ K1 ,
− K − K K 1 < s < K2 ,
(s 1 ) + (K 4 3 ),
= (K2 − K1 ) + (K4 − K3 ), K2 ≤ s ≤ K3 ,
(K2 − K1 ) + (K4 − s), K3 < s < K 4 ,
(K − K ),
2 1 s ≥ K4 .
(b) From part (a), the payoff is strictly positive. By Corollary 1.3, the
net premium must therefore be positive.
(c) Let y = C1 (0) + P4 (0) − C2 (0) − P3 (0) be the net premium for the
iron condor portfolio. By part (b) it must be positive, and it must be
subtracted from the payoff to give the profit at expiry. Hence the profit
must be less than (K2 − K1 ) + (K4 − K3 ).
The minimum net value at expiry, which is the worst possible loss, will
be min{(K2 −K1 ), (K4 −K3 )} − y. But y is bounded above by the no-
arbitrage assumption since if y > (K2 − K1 ) + (K4 − K3 ), then the profit
. . . to Chapter 2 Exercises 227
graph will lie entirely below the x-axis. Such an asset is guaranteed
to lose, so selling it short would be an arbitrage opportunity. Hence
y ≤ (K2 − K1 ) + (K4 − K3 ), so the loss is bounded below by
X̂(0, ω) = 0, all ω ∈ Ω;
(
i
− √2n ,
X̂ n, ω ωi = 0,
i+1
X̂ ,ω = i
i = 0, 1, . . . , n−1,
√2 ,
n X̂ n, ω + n
ωi = 1,
S0 v2
log K − µ = − log − (r − )t,
K 2
S0 v2
log K − (µ + σ 2 ) = − log − r+ T,
K 2
σ2
exp µ + = S0 exp(rT ),
2
230 Answers
−S0 φ(d1 )v
ΘC = √ − Kre−rT Φ(d2 ),
2 T
as claimed.
To find ΘP , rearrange the Call-Put Parity formula for European-style
options as follows:
−S0 φ(d1 )v
ΘP = ΘC + Kre−rT = √ − Kre−rT [Φ(d2 ) − 1].
2 T
But Φ(x) − 1 = −Φ(−x) for any x by Eq.2.19, so
−S0 φ(d1 )v
ΘP = √ + Kre−r∗T Φ(−d2 ),
2 T
as claimed. 2
8. Derive κC and κP in Section 2.3.3 from Black-Scholes.
Solution: For these “Vegas,” differentiate Eqs.2.25 and 2.26 with re-
spect to volatility v:
∂C ∂d1 ∂d2
κC = = S0 Φ0 (d1 ) − Ke−rT Φ0 (d2 ) .
∂v ∂v ∂v
Then, either by hand or using Macsyma, compute
∂d1 d1 √ ∂d2 d2 √
=− + T and = − − T,
∂v v ∂v v
. . . to Chapter 2 Exercises 233
so
d1 √ d2 √
κC = S0 φ(d1 )[− + T ] − Ke−rT φ(d2 )[− − T ],
v v
and after rearrangement,
d2 √ (d2 − d1 ) √
= −[S0 φ(d1 ) − Ke−rT φ(d2 )][− − T ] + S0 φ(d1 )[ + 2 T ].
v v
The first term vanishes since S0 φ(d1 ) − √Ke−rT φ(d2 ) = 0, while the
second term simplifies using d2 − d1 = −v T , leaving
√
κC = S0 φ(d1 ) T .
float(ev(BSCall,K=95,S0=90,r=0.02,T=1,v=0.15)); /* 4.0548 */
float(ev(DeltaC,K=95,S0=90,r=0.02,T=1,v=0.15)); /* 0.4395 */
float(ev(GammaC,K=95,S0=90,r=0.02,T=1,v=0.15)); /* 0.0292 */
float(ev(ThetaC,K=95,S0=90,r=0.02,T=1,v=0.15)); /* -3.372 */
float(ev(VegaC,K=95,S0=90,r=0.02,T=1,v=0.15)); /* 35.492 */
float(ev(RhoC,K=95,S0=90,r=0.02,T=1,v=0.15)); /* 35.505 */
Check it by substituting Eqs.2.29, 2.31, and 2.33 into the left hand side
to get:
vS0 φ(d1 )
− √ + re−rT KΦ(−d2 )
2 T
1 φ(d1 )
+rS0 [Φ(d1 ) − 1] + v 2 S02 √ − rP (0)
2 vS0 T
= re−rT KΦ(−d2 ) + rS0 [Φ(d1 ) − 1] − rP (0)
= rKe−rT Φ(−d2 ) − rS0 Φ(−d1 ) − rP (0) = 0,
as claimed, since Ke−rT Φ(−d2 )−S0 Φ(d1 ) = P (0) by Eq.2.26. The next-
to-last step uses Eq.2.19 to rewrite Φ(d1 ) − 1 = −Φ(−d1 ). 2
12. (a) Find the coefficients p1 , p2 , p3 that give the least-squares best fit
f (x) = p1 + p2 ex + p3 e−x
to the data {(x, y)} = {(−2, 4), (−1, 1), (0, 0), (1, 1), (2, 4)}.
(b) Plot f at 81 equispaced points on a graph showing the data.
Solution: (a) Use the functions f1 (x) = 1, f2 (x) = ex , and f3 (x) = e−x
in Eq.2.48 to find the least-squares best fit to the data. Do this by
modifying the example code for general least squares regression:
If the optim package is available, the last step may be done with
0
-2 -1 0 1 2
FIGURE A.4
Graph from Exercise 12(b).
The spot price for ABC is $47.58. Estimate the premium for the at-
the-money Call option in the following ways:
(a) Unweighted quadratic regression.
(b) Weighted quadratic regression.
(c) Polynomial interpolation.
(d) Spline interpolation.
Solution: Use the strike prices for x, the premiums for y, and the open
interest for the weights w.
238 Answers
(a) First, enter the data and define the quadratic functions:
pu=(F(x)’*F(x))\(F(x)’*y); F(S0)*pu
pua=LinearRegression(F(x),y); F(S0)*pua
polyval(polyfit(x,y,2),S0)
Alternatively,
pa=LinearRegression(F(x),y,sqrt(w)); F(S0)*pa
polyval(polyfit(x,y,length(x)-1),S0)
ppval(spline(x,y),S0)
spline(x,y,S0)
(b) Use the Fair Price Theorem 1.4 to prove the same inequalities.
Solution: (a) First exclude the case RS(0) ≤ S(T, ↓) < S(T, ↑), as it
offers the following arbitrage opportunity:
• At time t = 0, borrow S(0) from the bank and buy one share of S.
Initial cost is 0.
• At time t = T , sell S for S(t, ω) and repay the loan with interest
for RS(0). The net result is S(T, ω) − RS(0).
The net at expiry is either S(T, ↓) − RS(0) ≥ 0 or S(T, ↑) − RS(0) > 0,
an arbitrage opportunity as claimed, forbidden by Axiom 1.
Second, exclude the possibility S(T, ↓) < S(T, ↑) ≤ RS(0) as it also
provides an arbitrage opportunity:
• At time t = 0, sell S short for S(0) and deposit the money in the
bank. Initial cost is again 0.
• At time t = T , withdraw the principal and interest RS(0) from the
bank and buy S to cover the short for S(t, ω). The net result is
RS(0) − S(T, ω).
The net at expiry in this case is either RS(0) − S(T, ↑) ≥ 0 or RS(0) −
S(T, ↓) > 0 giving an arbitrage opportunity as claimed, forbidden by
Axiom 1.
Conclude that S(T, ↓) < RS(0) < S(T, ↑).
(b) From Theorem 1.4 and the definition of expectation,
But 0 < Pr(↓) < 1 since otherwise the future is certain, and thus also
0 < Pr(↑) < 1 since Pr(↑) = 1 − Pr(↓). Conclude that RS(0) lies strictly
inside the interval [S(T, ↓), S(T, ↑)], as claimed. 2
2. In Exercise 1 above, model the future at time t = T using the N -step
binomial model Ω = {ω0 , ω1 , . . . , ωN } and assume that
S(T, ωk ) = S(0)uk dN −k ,
240 Answers
where S(0) > 0 is the spot price and 0 < d < u are the up factor and
down factor, respectively, over one time step T /N .
(a) Use the no-arbitrage Axiom 1 to conclude that
(b) Use the Fair Price Theorem 1.4 to prove the same inequalities.
Solution: First note that 0 < d < u and S(0) > 0 together imply that
so that selling S short for S(0) and investing the money risklessly at
t = 0 will result in an arbitrage profit at t = T .
Both cases are forbidden by Axiom 1, so d < R1/N < u.
(b) From Theorem 1.4 and the definition of expectation,
N
X N
X
RS(0) = E(S(T )) = Pr(ωk )S(T, ωk ), = S(0) Pr(ωk )uk dN −k .
k=0 k=0
Now 0 < d < u implies that dN < udN −1 < · · · < uN −1 d < uN , and
the probabilities lie in [0, 1] and sum to 1, so the right-hand side is a
convex combination of points in the interval [dN , uN ]. Since the asset is
risky, at least two of the states have positive probabilities. The convex
combination must therefore lie strictly inside the interval, so
dN < R < uN ,
Model the future at time t = T using Ω = {↑, ↓}, assuming only that
S(T, ↑) 6= S(T, ↓) and that B(T, ↑) = B(T, ↓) = R. Compute h0 and
h1 in terms of all the other quantities. (Hint: use Macsyma to derive
Eq.3.1.)
Solution: Set up the system of equations at t = T :
[[h0=-(sTd*xTu-sTu*xTd)/((sTu-sTd)*R),
h1=(xTu-xTd)/(sTu-sTd)]]
0 ≤ h1 ≤ 1.
It may be assumed that S(T, ↑) > S(T, ↓), since the states can be
242 Answers
switched without changing the value of h1 . Then there are three cases
to consider:
Case 1: If S(T, ↑) > S(T, ↓) > K, then both plus-parts are positive, so
(S(T, ↑) − K) − (S(T, ↓) − K)
h1 = = 1.
(S(T, ↑) − K) − (S(T, ↓) − K)
Case 2: If K ≥ S(T, ↑) > S(T, ↓), then both plus-parts are zero, so
0−0
h1 = = 0.
(S(T, ↑) − K) − (S(T, ↓) − K)
Case 3: If S(T, ↑) > K ≥ S(T, ↓), then the first plus-part is positive
but the second is zero, so
(S(T, ↑) − K) − 0
h1 = .
(S(T, ↑) − K) − (S(T, ↓) − K)
−1 ≤ h1 ≤ 0.
It may be assumed that S(T, ↑) > S(T, ↓), since the states can be
switched without changing the value of h1 . Then there are three cases
to consider:
. . . to Chapter 3 Exercises 243
Case 1: If K > S(T, ↑) > S(T, ↓), then both plus-parts are positive, so
Case 3: If S(T, ↑) ≥ K > S(T, ↓), then the first plus-part is zero but
the second is positive, so
0 − (K − S(T, ↓))
h1 = −
(K − S(T, ↑)) − (K − S(T, ↓))
(K − S(T, ↓))
= .
(K − S(T, ↑)) − (K − S(T, ↓))
so
+ +
[K − S(T, ω)] = [S(T, ω) − K] − (S(T, ω) − K),
and thus
+ +
[S(T, ↑) − K] − [S(T, ↓) − K)]
h1 = − 1.
(S(T, ↑) − K) − (S(T, ↓) − K)
The result now follows from the Call h1 inequalities. 2
6. Suppose that C(0) and P (0) are the premiums for European-style Call
and Put options, respectively, on an asset S with the following param-
eters: expiry at T = 1 year, spot price S(0) = 90, strike price K = 95.
Assume that the riskless annual percentage rate is r = 0.02, and the
volatility for S is σ = 0.15, and that these will remain constant from
now until expiry.
244 Answers
Note that the outputs are pairs of matrices, so that to get just the
premiums it is necessary to extract just the (1, 1) element.
At N = 10 time steps it almost instantaneously returns C(0) = $4.1733
and P (0) = $7.2922, in agreement with the spreadsheet. Profiled time
was 0.013 seconds.
With N = 100 time steps it very quickly computes C(0) = $4.0572 and
P (0) = $7.1761. Profiled time was 1.05 seconds.
With N = 1000 time steps it takes a considerably longer time to compute
C(0) = $4.0555 and P (0) = $7.1744. Profiled time was 102 seconds.
Note that the ratios of profiled times agree with the O(N 2 ) complexity
estimate.
(d) N = 100 seems justified since the prices are quite different from the
N = 10 values. It seems unjustified to use N = 1000, which costs much
more time and space (using the backward induction algorithm) but gives
almost the same result as N = 100. 2
7. Compare the prices from parts (a) and (b) of previous Exercise 6 with
the Black-Scholes prices computed using Eqs.2.25 and 2.26. Plot the
logarithm of the differences against log N to estimate the rate of con-
vergence. (Hint: Use the programs in Chapter 2, Section 2.4.)
Solution: Use the parameters from Exercise 6 in the Octave program
BS() on p.34, as follows:
Ns=[10,100,1000]; log(Ns)
C0=4.0548; CCRR=[4.1733,4.0572,4.0555]; log(abs(CCRR-C0))
P0=7.1736; PCRR=[7.2922,7.1761,7.1744]; log(abs(PCRR-P0))
-3 -3
-4 -4
log|CRR(N)-BS|
log|CRR(N)-BS|
-5 -5
-6 -6
-7 -7
-8 -8
2 3 4 5 6 7 2 3 4 5 6 7
log N log N
FIGURE A.5
(From Exercise 7) Log-log plots showing the differences between Black-Scholes
prices and their N -step CRR approximations, for certain European-style Call
and Put options, as a function of N .
The results may be seen in Figure A.5. For both Call and Put differences,
the graphs are close to lines of slope −1, suggesting that the difference
between Black-Scholes and its N -step CRR approximation is O(N −1 ).
This may be quantified by regression using polyfit(x,y,1):
polyfit(log(Ns),log(abs(CCRR-C0)),1) % -1.114310 -0.011598
polyfit(log(Ns),log(abs(PCRR-P0)),1) % -1.085497 -0.085887
The first output number is the slope of the least-squares line fitting the
data, in both cases close to −1. The second is the intercept; it is an
estimate for the logarithm of the constant in the O(N −1 ) rate.
Remark. Using only 5 significant digits introduces substantial round-
off error at large N , where the differences are small. This is unavoidable
since the parameters are only specified to 2 or 3 significant digits. 2
8. Derive Eq.3.32 on p.79:
2 r
1 r + σ2
T T
q= + +O .
2 2σ N N
as claimed. 2
9. Use the CRR approximation with N = 4 to compute the European-style
Call option premiums at several hundred equally spaced spot prices
75 ≤ S0 ≤ 115, with expiry T = 1, strike K = 95, r = 0.02, and
σ = 0.15.
(a) Plot the values against S0 .
(b) At what values of S0 in that range does the graph appear to be
nonsmooth?
(c) Compute the points of nondifferentiability for S0 in [75, 115].
Solution: (a) Use CRReurAD() in the following Octave code:
20
15
C0
10
0
70 80 90 100 110 120
S0
FIGURE A.6
(From Exercise 9) CRR approximation with N = 4 to the European-style Call
option premium C(0), as a function of spot price S(0).
10. Compute the CRR option premiums and Greeks for European-style Call
and Put options on a risky asset with the following parameters: spot
price $90, strike price $95, expiry in 1 year, annual riskless rate 2%, and
volatility 15%. Use N = 100 steps. Justify the method used.
Solution: First compute the option premiums with CRReurAD():
h0=2*S0*v*sqrt(T/N); % critical h
u2=exp(2*v*sqrt(T/N)); % squared up factor
x=[S0/u2, S0, S0*u2]-S0; % shifted abscissas
[C0,P0]=CRReurAD(T,S0,K,r,v,N);
[C0u,P0u]=CRReurAD(T,S0*u2,K,r,v,N); % ...at S0*u^2
[C0d,P0d]=CRReurAD(T,S0/u2,K,r,v,N); % ...at S0/u^2
yC=[C0d, C0, C0u]; % Call ordinates
p=polyfit(x,yC,2); DeltaC=p(2), GammaC=2*p(1)
yP=[P0d, P0, P0u]; % Put ordinates
p=polyfit(x,yP,2); DeltaP=p(2), GammaP=2*p(1)
. . . to Chapter 4 Exercises 249
[W,P] = CRRcp(1,0.5,90,95,4.50,0.02,0.15,20);
W(1,1),P(1,1) % 0.96243 7.1857
as claimed. 2
3. Implement floating strike option pricing in the CRR model using geo-
metric means instead of arithmetic means, as in CRRgro versus CRRaro.
Compare the results on the suggested example inputs.
Solution: The Octave function CRRflg() differs from CRRflt() at lines
21 and 24, which are directly copied from lines 19 and 22 of CRRgro()
where lU is computed and used. It also differs in the use of Geom instead
of Avg and in a few updated comments.
1 function [ C, P ] = CRRflg (T, S0 , r , v , N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e f l o a t i n g s t r i k e
3 % C a l l and Put o p t i o n s with g e o m e t r i c means and t h e
4 % Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l p r i c i n g model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time i n y e a r s (1)
7 % S0 = s p o t s t o c k p r i c e (90)
8 % r = r i s k l e s s y i e l d per year (0.02)
9 % v = v o l a t i l i t y ; must be >0 (0.20)
10 % N = height of the t r e e (4)
11 % OUTPUTS:
12 % C0 = C a l l o p t i o n premium a t t =0.
13 % P0 = Put o p t i o n premium a t t =0.
14 % EXAMPLE:
15 % [ C, P ] = CRRflg ( 1 , 9 0 , 0 . 0 2 , 0 . 2 0 , 4 ) ;
16 % To g e t j u s t t h e premiums a t t =0 , u s e
17 % C( 1 ) , P( 1 )
18 %
19 [ pu , up ,R] = CRRparams (T, r , v ,N) ;
20 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
21 lU=NRTpsums( log ( Sbar ) ,N) ; % p a r t i a l sums o f l o g s
22 C=zeros ( s i z e ( Sbar ) ) ; P=zeros ( s i z e ( Sbar ) ) ;
23 f o r m=2^N: ( 2 ∗ 2 ^N −1) % m i n d i c e s a t e x p i r y
24 Geom = exp ( lU (m) / (N+1) ) ; % g e o m e t r i c mean
25 C(m) = max( 0 , Sbar (m)−Geom) ; % C a l l p a y o f f
26 P(m) = max( 0 , Geom−Sbar (m) ) ; % Put p a y o f f
27 end % . . . p r i c e s s e t a t e x p i r y .
28 f o r m=(2^N−1) : −1:1 % r e c u r s i v e p r e v i o u s i n d i c e s
252 Answers
Compare (and test for bugs) by running the geometric mean and arith-
metic mean functions on the same suggested example inputs:
The Call and Put premiums are similar, though not identical. 2
4. Use CRRaro to compute the average-rate Call and Put premiums in the
CRR model for S0 = K = 100, T = 1, r = 0.05, v = 0.15, and different
values of N . Compare C(0) − P (0) with the limit value in Eq.4.20.
Solution: The Octave commands below perform the computations with
N = 3, 5, 7, 9, 11:
Compare (and test for bugs) by running both the geometric mean and
the arithmetic mean functions on the same suggested example inputs:
The Call and Put premiums are similar, though not identical. 2
6. Implement floating strike option pricing in the CRR model using path-
dependent Arrow-Debreu securities. Check that the results agree with
CRRflt.
Solution: The Octave function CRRfltAD() differs from CRRflt() in
three ways, just as CRRaroAD() differs from CRRaro():
1 function [ C0 , P0 ] = CRRfltAD (T, S0 , r , v , N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e f l o a t i n g s t r i k e
3 % C a l l and Put o p t i o n s u s i n g path−dependent
4 % Arrow−Debreu e x p a n s i o n s with t h e Cox−Ross−
5 % R u b i n s t e i n (CRR) b i n o m i a l p r i c i n g model .
6 % INPUTS : ( Example )
7 % T = e x p i r a t i o n time i n y e a r s (1)
8 % S0 = s p o t s t o c k p r i c e (90)
9 % r = r i s k l e s s y i e l d per year (0.02)
10 % v = v o l a t i l i t y ; must be >0 (0.20)
254 Answers
Compare (and test for bugs) by running both functions on the same
suggested example inputs:
[C0,P0]=CRRfltAD(1,90,0.02,0.20,4)
[C,P]=CRRflt(1,90,0.02,0.20,4); C(1),P(1)
10 % Maxb = NRTmax( 1 : 1 5 , 3 )
11 %
12 Maxb=zeros ( s i z e ( Sbar ) ) ; % a l l o c a t e t h e output
13 Maxb ( 1 )=Sbar ( 1 ) ; % max a l o n g t h e t r i v i a l path
14 f o r m=1:2^N−1 % a l l f u t u r e t i m e s up t o N−1
15 Maxb( 2 ∗m)=max(Maxb(m) , Sbar ( 2 ∗m) ) ; % down
16 Maxb( 2 ∗m+1)=max(Maxb(m) , Sbar ( 2 ∗m+1) ) ; % up
17 end
18 return
19 end
2
8. Implement lookback option pricing in the CRR model using path-
dependent Arrow-Debreu securities. Check that the results agree with
CRRlb.
Solution: The Octave function CRRlbAD() differs from CRRlb() in
three ways, just as CRRaroAD() differs from CRRaro():
1 function [ C0 , P0 ] = CRRlbAD(T, S0 , r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e Lookback C a l l
3 % and Put o p t i o n s u s i n g path−dependent Arrow−Debreu
4 % e x p a n s i o n s with t h e Cox−Ross−R u b i n s t e i n (CRR)
5 % b i n o m i a l p r i c i n g model .
6 % INPUTS : ( Example )
7 % T = e x p i r a t i o n time i n y e a r s (1)
8 % S0 = s p o t s t o c k p r i c e (100)
9 % r = r i s k l e s s y i e l d per year (0.05)
10 % v = v o l a t i l i t y ; must be >0 (0.20)
11 % N = height of the t r e e (4)
12 % OUTPUTS:
13 % C0 = C a l l o p t i o n premium a t t=0
14 % P0 = Put o p t i o n premium a t t=0
15 % EXAMPLE:
16 % [ C0 , P0]=CRRlb ( 1 , 1 0 0 , 0 . 0 5 , 0 . 2 0 , 4 )
17 %
18 [ pu , up ,R]=CRRparams (T, r , v ,N) ;
19 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % expanded S t r e e
20 MinS=NRTmin( Sbar ,N) ; MaxS=NRTmax( Sbar ,N) ;
21 Lbar=PathAD ( pu∗ones (N,N) ,R∗ones (N,N) ,N) ;
22 mN=2^N: ( 2 ∗ 2 ^N−1) ; % a l l m−i n d i c e s a t e x p i r y
23 C0=(Sbar (mN)−MinS (mN) ) ∗ Lbar (mN) ’ ; % C a l l
24 P0=(MaxS(mN)−Sbar (mN) ) ∗ Lbar (mN) ’ ; % Put
25 return % . . i n n e r p r o d u c s g i v e A−D e x p a n s i o n s
26 end
Compare (and test for bugs) by running both functions on the same
suggested example inputs:
256 Answers
[C0,P0]=CRRlbAD(1,100,0.05,0.20,4)
[C,P]=CRRlb(1,100,0.05,0.20,4); C(1),P(1)
Li+1 < M (T ) ≤ Li .
15 % LadP=CRRladP ( 1 , 5 0 , 5 5 , [ 4 5 , 4 0 , 3 5 ] , 0 . 0 5 , 0 . 2 0 , 4 )
16 %
17 [ pu , up ,R] = CRRparams (T, r , v ,N) ;
18 Sbar=NRTCRR( S0 , up , 1 / up ,N) ; % S a s an NRT
19 MinS=NRTmin( Sbar ,N) ; % non−r e c o m b i n i n g min t r e e
20 LadP=zeros ( s i z e ( Sbar ) ) ; % Put p r i c e s NRT
21 % I n i t i a l i z e with t h e p a y o f f s a t e x p i r y :
22 k=length (L) ; % number o f l a d d e r l e v e l s , >1
23 f o r m=2^N: 2 ∗ 2 ^N −1 % s t a t e i n d e x e s a t e x p i r y
24 i f ( MinS (m)>L ( 1 ) ) % above l e v e l L ( 1 ) i s s p e c i a l
25 LadP (m)=max(K−Sbar (m) , 0 ) ;
26 e l s e % MinS =< L ( 1 )
27 i f ( MinS (m)>L( k ) ) % . . . u s e l e v e l s L ( 2 ) >... >L( k )
28 f o r l =2:k % loop to f i n d the l e v e l
29 i f ( MinS (m)>L( l ) )
30 LadP (m)=max(max(K−Sbar (m) ,K−L( l −1) ) , 0 ) ;
31 break ; % found l : L( l )<MinS=<L( l −1) ,
32 end
33 end % . . . so e x i t the " l " loop
34 e l s e % MinS=<L( k ) , a n o t h e r s p e c i a l c a s e
35 LadP (m)=max(max(K−Sbar (m) ,K−L( k ) ) , 0 ) ;
36 end
37 end
38 end
39 f o r m=(2^N−1) : −1:1 % backward r e c u r s i o n
40 LadP (m) =(pu∗LadP ( 2 ∗m+1)+(1−pu ) ∗LadP ( 2 ∗m) ) /R;
41 end
42 return % LadP ( 1 ) i s t h e o p t i o n premium
43 end
so this exotic option cannot cost less than a vanilla European Put with
the same parameters. A few experiments will show how big the differ-
ences can be, for example,
LadP=CRRladP(1,50,55,[45,40,35],0.05,0.20,4);LadP(1) % 5.8784
[eC,eP]=CRReur(1,50,55,0.05,0.20,4);eP(1,1) % 5.5372
The returned values round to $5.88 for the ladder Put versus $5.54 for
the vanilla European Put, ordered as expected. 2
258 Answers
Remark. Since F (N, j) = G(N, j) = S(N, j) for all states j, both the
ultimate (n = N ) and the penultimate (n = N − 1) no-arbitrage prices
of Forwards and Futures must be equal in all states of a recombining
binomial model. 2
2. Suppose that S and R are modeled with a recombining binomial tree
of N = 2 levels. Prove that if (R(1, 1) − R(1, 0))(S(1, 1) − S(1, 0)) > 0,
then G(0, 0) > F (0, 0).
Solution: Use the results from Exercise 1 above:
It may be assumed that R(1, 1) > R(1, 0) > 0 and S(1, 1) > S(1, 0) > 0,
. . . to Chapter 5 Exercises 259
since these quantities must be positive, relabeling the up and down states
if necessary. But then with the above equations,
where
def
θ = [π/R(1, 1)]/[π/R(1, 1) + (1 − π)/R(1, 0)]
= πR(1, 0)/[πR(1, 0) + (1 − π)R(1, 1)]
< π,
since the denominator is between R(1, 0) and R(1, 1) > R(1, 0). Thus
also
1 − θ > 1 − π.
Note that {θ, 1 − θ} is a probability function with a lesser weight θ < π
for G(1, 1, 2) and greater weight 1 − θ > 1 − π for G(1, 0, 2). But since
G(1, 1, 2) > G(1, 0, 2) > 0, it follows that
S(N −2, j)
R(N −2, j)
S(N −1, j) S(N −1, j+1)
R(N −1, j) R(N −1, j+1)
S(N, j) S(N, j+1) S(N, j+2)
to
(R(1, 1) − R(1, 0))(S(1, 1) − S(1, 0)) > 0
Then apply the N = 2 result from Exercise 2 above to conclude that
G(N − 2, j) > F (N − 2, j)
for all 0 ≤ j ≤ N − 2.
Now suppose that G(0, 0) ≤ F (0, 0). Then there is an arbitrage:
• At time 0, sell one Short Forward at strike price F (0, 0) and buy
one Long Future at strike price G(0, 0). Total expense is $0.
• At time N − 2, in whatever state j, buy one Long Forward at
F (N − 2, j) and sell one Short Future at G(N − 2, j). Total expense
is again $0.
• At time N ,
– borrow G(0, 0) cash from the bank,
– buy a share of S for G(0, 0) to settle the Long Future,
– sell the share of S to the Short Forward counterparty for
F (0, 0),
– buy a share of S from the Long Forward counterparty for
F (N − 2, j),
– sell the share of S to the Short Future counterparty for G(N −
2, j).
– Return G(0, 0) to the bank.
. . . to Chapter 5 Exercises 261
0.58333
0.50200 0.57667
0.63125 0.58333 0.48429
0.50400 0.37750 0.57667 0.53750
[Fa,Ga]=FwdFut(Sa,Ra,4); Fa(1,1),Ga(1,1)
Sb=Sa; Rb=[1.025, 0, 0, 0;
1.02, 1.03, 0, 0;
1.015, 1.025, 1.035, 0;
1.01, 1.02, 1.03, 1.04];
[Fb,Gb]=FwdFut(Sb,Rb,4); Fb(1,1),Gb(1,1)
Long Futures (TabL) and Short Futures (TabS) margin call probabilities (N = 6).
The results will be machine dependent. One example gave 5.4s for N = 6
and 590s for N = 13. The ratio is approximately 110, close to the
expected ratio 213 /26 = 27 = 128 for O(2N ) complexity. 2
264 Answers
S(te +) = S(te −) − D
3. Use the data in Table 6.1 (p.146) and Table 6.2 (p.154) to compute the
present value sequence of BAC dividends from December 2014 through
March 2021, namely time indices 0–25. Disregard any dividends outside
of that time period.
(a) Find the values quarterly.
(b) Find the values monthly.
(c) Plot the two dividend present value sequences, and the dividends
themselves, on the same graph.
Solution: Reuse the Octave commands that produced BACdivQ, ri, and
so on.
(a) First, create the array BACdivQ(1:26), the sequence of 26 quarterly
dividends from Table 6.1, using the code on p.157.
Next, create the array ri(1:25), the annualized riskless rates starting
in December 2014 and sampled quarterly thereafter, using the code on
p.158. These are exponentiated to give quarterly returns.
Finally, apply the recursion formula from Lemma 6.4 to find the quar-
terly present value sequence IpvQ:
% Part (a):
Na=24; IpvQ=zeros(1,Na+1); % allocate the output array
RQ=exp(ri/4); % annualized rates ==> quarterly returns
% Backward recursion for IpvQ
IpvQ(Na+1)=BACdivQ(Na+2)/RQ(Na+1); % ignore later dividends
for n = (Na-1):(-1):0 % textbook times {Na-1,...,1,0}
IpvQ(n+1)=(IpvQ(n+2)+BACdivQ(n+2))/RQ(n+1); % from Lemma
end
The values S0 and σ are not used when computing IpvQ. Other nominal
values such as S0 = σ = 1 will give the same result.
(b) Create the array BACdivM(1:26), the sequence of 72 monthly div-
idends, using the code on p.158. Create the array r3i, the annualized
riskless rates replicated monthly, using the code on p.159. These are ex-
ponentiated to give monthly returns. Then apply the recursion formula
from Lemma 6.4 to find IpvM:
% Part (b):
Nb=72; IpvM=zeros(1,Nb+1); % allocate the output array
RM=exp(r3i/12); % annualized rates ==> monthly returns
266 Answers
2
Dollars
1.5
0.5
0
0 20 40 60 80
Months from start of 2015
FIGURE A.7
Graph from Exercise 3.
The results may be seen in Figure A.7. Note that the quarterly present
value sequence lies strictly above the monthly, since it includes the March
2021 dividend that the monthly sequence does not. 2
. . . to Chapter 6 Exercises 267
Reducing the monthly dividend to the Call threshold Dtiny, on the other
hand, has an effect:
T 1 2 3 4
Z(0, T ) 0.99443 0.98731 0.97524 0.95546
(b) Plot the yield curve with Octave/MATLAB after converting dis-
counts to yields:
Yield Curve
1.3
1.2
1.1
1
APR (%)
0.9
0.8
0.7
0.6
0.5
1 1.5 2 2.5 3 3.5 4
T (years)
FIGURE A.8
Graph from Exercise 6.
T 1 2 3 4
Ẑ(0, T ) 0.99343 0.98335 0.96936 0.95157
Company Yield
1.4
1.2
1
APR (%)
0.8
0.6
0.4
0.5 1 1.5 2 2.5 3 3.5 4
T (years)
FIGURE A.9
Graph from Exercise 7.
2
8. Compute the price at issuance of a US Treasury Note with the following
parameters:
• Maturity in 7 years.
• Semiannual coupon at 1.500% annual interest.
• Face value $1000.
• Yield to maturity 1.414%.
Here P1 uses the exponential formula, while P2 and P3 use the two
Taylor approximations ex ≈ 1 + x and e−x ≈ 1 − x. All three formulas
indicate a premium rather than a discount, but P2 overweights the future
payments while P3 underweights them. 2
9. Compute the expected monthly riskless rates and returns over 6 months
for two currencies using tabulated benchmarks:
(a) Use the data in Table 6.5 for 11 March 2022 to compute the Aus-
tralian dollar values.
(b) Use the LIBOR data in Table 6.7 for 11 March 2022 to compute the
US dollar values. Justify your interpolation method.
Solution: (a) Get monthly expected riskless rates from the 11 March
2022 row (11/03/2022), then exponentiate it to get riskless returns with
these Octave commands:
bbsw=[0.0150,0.0661,0.1450,0.2550,0.3859,0.5100]; % 11/3/2022
rba=12*diff([0,bbsw]) % 0.18 0.6132 0.94680 1.32 1.5708 1.4892
Rba=exp(rba/1200) % 1.0002 1.0005 1.0008 1.0011 1.0013 1.0012
with spot price S0 . Show that 0 < C(0) ≤ S0 and 0 < P (0) ≤ K. (Hint:
construct an arbitrage otherwise.)
Solution: First note that C(0) > 0 and P (0) > 0 are consequences of
Theorem 1.1.
Next, suppose that C(0) > S0 . Sell one C and buy one S at time t = 0,
keeping the surplus C(0) − S0 > 0. At expiry T , if the buyer exercises
C, collect K > 0 in exchange for S. Otherwise, sell S for S(T ) > 0.
Finally, suppose that P (0) > K. Sell one P for P (0) at t = 0 and keep
the proceeds. At expiry t = T , if the buyer exercises P , receive that
S at strike price K, leaving a surplus P (0) − K > 0 and sell it for
S(T ) > 0, netting additional profit. Otherwise, keep the original P (0)
with no further obligations.
In all cases there is a positive payoff with no initial investment. Conclude
by the no-arbitrage axiom that 0 < C(0) ≤ S0 and 0 < P (0) ≤ K. 2
2. Show that the Eq.7.11 and Eq.7.12 probabilities produce the Arrow-
Debreu spot prices λ(n, j) in Eq.7.10 using Jamshidian’s forward induc-
tion, Eq.3.21 on p.69.
Solution: This may be proved by induction on n. For n = 0, the
only Arrow-Debreu spot price is λ(0, 0) = 1, so it agrees with the value
Q(0, 0)/R0 = 1 from Jackwerth’s construction.
Now suppose that the values {λ(n − 1, j) : j = 0, 1, . . . , n − 1} produced
by Jamshidian’s induction agree with Jackwerth’s values and that p and
1 − p are given by Eq.7.11 and Eq.7.12, respectively. (As usual, take
λ(n, j) = 0 if j < 0 or j > n.) Compute λ(n, j) for j = 0, 1, . . . , n by
substituting the expressions from Jackwerth’s construction into Eq.3.21:
TABLE A.1
Implied volatilities by CRR (N = 20) and Black-Scholes methods, from
December 14, 2021 closing prices for BAC American-style Call options at
r = 0.05% and S0 = $44.13.
Strike T= 1 d 8 d 15 d 21 d 27 d
276 Answers
Date 4 wk 8 wk 13 wk 26 wk 52 wk
03/14/2022 0.22 0.30 0.45 0.84 1.20
03/15/2022 0.21 0.29 0.46 0.84 1.19
03/16/2022 0.23 0.28 0.43 0.84 1.26
03/17/2022 0.20 0.30 0.40 0.79 1.20
Use this data to compute and plot the volatility surface for BAC.
Solution: Use the commands that produced Figure 7.1, but with the
data for this problem. Set the riskless rate for all calculations to be the
4-week rate averaged over the 4 days sampled, which is 0.215% APR.
0.8
0.7
0.6
0.5
0.4
0.3
0.2 47
0 46
5
45
10
15 44 K
T (days) 20 43
25
30 42
FIGURE A.10
Graph from Exercise 4.
(a) Construct an implied binomial tree for these inputs using Rubin-
stein’s 1-2-3 algorithm. Display it along with the implied risk neutral up
probabilities.
√
(b) Plot the three weight functions w1 (x) = x, w2 (x) = x2 , and
w3 (x) = (1 − cos(x/π))/2, for 0 ≤ x ≤ 1, on the same graph.
(c) Apply Rubinstein’s 1-2-3 algorithm with Jackwerth’s generalization
to the data, using weights w1 , w2 , w3 from part (b). Compare S, p, and
Q for the three weights.
Solution:
(a) Apply Rubinstein’s original 1-2-3 algorithm using IBT123J.m with
the following Octave commands:
47.12 0.5411
43.48 50.36 0.3710 0.6853
41.14 47.63 51.73 0.0639 0.8916 0.5905
40.88 46.11 47.90 54.53 0.0559 0.1818 0.9779 0.3218
40.64 46.00 47.00 48.00 68.57
p
(b) The three weight functions all differ from w(x) = x: w1 (x) = (x)
is concave, w2 (x) = x2 is convex, and w3 (x) = (1 + cos(πx))/2 has a
unique inflection point. They may be plotted as in Figure A.11 using
the following Octave/MATLAB commands:
0.8
0.6
0.4
0.2
w1
w2
w3
0
0 0.2 0.4 0.6 0.8 1
FIGURE A.11
Weight functions
p for Jackwerth’s generalization in Rubinstein’s 1-2-3 algo-
rithm: w1 (x) = (x), w2 (x) = x2 , and w3 (x) = (1 + cos(πx))/2.
[S1,Q1,up,down,pu1,N1]=IBT123J(S0,Ks,Cs,rho,w1); S1,Q1,pu1
. . . to Chapter 8 Exercises 279
[S2,Q2,up,down,pu2,N1]=IBT123J(S0,Ks,Cs,rho,w2); S2,Q2,pu2
[S3,Q3,up,down,pu3,N1]=IBT123J(S0,Ks,Cs,rho,w3); S3,Q3,pu3
S1 = S2 = S3 =
47.12 47.12 47.12
44.57 51.57 41.74 49.74 43.82 50.53
41.50 47.76 53.72 40.73 47.31 50.58 40.98 47.63 52.87
41.14 46.24 47.91 57.57 40.65 46.01 47.88 52.30 40.76 46.09 47.90 57.11
% ...each last S row is 40.64, 46.00, 47.00, 48.00, 68.57
Q1 = Q2 = Q3 =
1 1 1
.6246 .3754 .3182 .6818 .4963 .5037
.3110 .4436 .2455 .2657 .2100 .5243 .2793 .4340 .2867
.2853 .0444 .5202 .1500 .2589 .0617 .3492 .3303 .2639 .0616 .5170 .1574
% ...each last Q row is 0.2551, 0.0604, 0.0201, 0.5939, 0.0705
pu1 = pu2 = pu3 =
.3754 .6818 .5037
.5021 .6539 .1650 .7690 .4372 .5692
.0825 .9577 .6111 .0258 .7390 .6300 .0551 .8935 .5492
.1058 .3204 .9887 .4697 .0146 .0816 .9568 .2133 .0335 .1634 .9805 .4476
λxi + (1 − λ)yi ≥ 0, i = 1, . . . , n,
λxi + (1 − λ)yi ≥ 0, i = 1, . . . , n,
since at least one of λxi or (1 − λ)yi must be positive for every i. Hence
λx + (1 − λ)y ∈ K o .
Open: Choose any x = (x1 , . . . , xn ) ∈ K o . Let
= min{xi /2 : i = 1, . . . , n}.
Then > 0 since xi > 0 for every i. But then every point y ∈ B (x) has
coordinates satisfying
xT k = x1 k1 + · · · + xn kn ≥ 0,
Remark. Parts (a) and (b) show that A0 = B 0 does not imply A = B.
(c) First, to find the dual, suppose x = (x1 , . . . , xn ) ∈ (K \ 0)0 . Take
k = (1, 0, . . . , 0) ∈ K \ 0 to compute x1 = xT k ≥ 0. Corresponding
arguments show that xi ≥ 0 for every i = 1, 2, . . . , n. Thus (K \ 0)0 ⊂ K.
Conversely, if x ∈ K, then for every k ∈ K \ 0 compute
xT k = x1 k1 + · · · + xn kn ≥ 0,
since all factors and summands are nonnegative. Thus K ⊂ (K \ 0)0 .
Conclude that K = (K \ 0)0 .
Second, to find the strict dual, suppose x = (x1 , . . . , xn ) ∈ (K \ 0)∗ .
Take k = (1, 0, . . . , 0) ∈ K \ 0 to compute x1 = xT k > 0. Similarly,
compute xi > 0 for every i = 1, 2, . . . , n. Thus (K \ 0)∗ ⊂ K o .
Conversely, if x ∈ K o , then for every k ∈ (K \ 0)∗ compute
xT k = x1 k1 + · · · + xn kn > 0,
since all factors and summands are nonnegative and at least one of them
must be positive. Thus K \ 0 ⊂ (K o )∗ . Conclude that K \ 0 = (K o )∗ .
(d) Observe that if x ∈ K o , then xT k > 0 for every k ∈ (K o )∗ . Thus
K o ⊂ ((K o )∗ )∗ .
Conversely, if x ∈ ((K o )∗ )∗ , then choosing k = (1, 0, . . . , 0) ∈ K \ 0 =
(K o )∗ , as shown in part (b), gives x1 = xT k > 0. Similarly, xi > 0 for all
i = 1, 2, . . . , n. Thus x ∈ K o , and since x was arbitrary, ((K o )∗ )∗ ⊂ K o .
Conclude that ((K o )∗ )∗ = K o . 2
. . . to Chapter 8 Exercises 283
7. Prove Eq.8.6:
n
X n
X
o
AK = V̄i ; AK = Vi ,
i=1 i=1
s∈S ⇐⇒ sT A ∈ K \ 0
⇐⇒ (∀k ∈ (K \ 0)∗ )(sT A)k > 0
⇐⇒ (∀k ∈ K o )(sT A)k > 0
⇐⇒ (∀k ∈ K o )sT (Ak) > 0
⇐⇒ (∀v ∈ AK o )sT v > 0
⇐⇒ s ∈ (AK o )∗ ,
sT (x + y) = sT x + sT y = 0 + 0 = 0.
Conclude that x + y ∈ S ⊥ .
• Given x ∈ S ⊥ and c ∈ R, take any s ∈ S and compute
Conclude that cx ∈ S ⊥ .
(b) vT s > 0 =⇒ vT s ≥ 0, so every v ∈ S ∗ also belongs to S 0 .
(c) vT s = 0 =⇒ vT s ≥ 0, so every v ∈ S ⊥ also belongs to S 0 .
(d) It is impossible to have both vT s = 0 and vT s > 0, so there are no
vectors v in both S ∗ and S ⊥ .
(e) Check the two needed properties for S ⊥ , S 0 , and S ∗ :
Cones: Let x be a vector in Rn and let λ be a positive real number.
• (∀s ∈ S)sT x = 0 =⇒ (∀s ∈ S)sT (λx) = λ0 = 0;
• (∀s ∈ S)sT x ≥ 0 =⇒ (∀s ∈ S)sT (λx) = λsT x ≥ 0;
• (∀s ∈ S)sT x > 0 =⇒ (∀s ∈ S)sT (λx) = λsT x > 0.
Convex: Let x, y be vectors in Rn and let λ ∈ [0, 1] be a real number.
Let s ∈ S be arbitrary.
• sT [λx + (1 − λ)y] = λsT x + (1 − λ)sT y = 0 if x, y ∈ S ⊥ ;
• sT [λx + (1 − λ)y] = λsT x + (1 − λ)sT y ≥ 0 if x, y ∈ S 0 ;
• sT [λx + (1 − λ)y] = λsT x + (1 − λ)sT y > 0 if x, y ∈ S ∗ .
(f) If 0 ∈ S, then every x ∈ Rn gives xT 0 = 0, so there is no x ∈ Rn
such that xT 0 > 0, so S ∗ = ∅. 2
10. Suppose that n > 2 and market model A, q has
R ··· R
A= ,
a1 · · · an
Remark. Thus RS0 must be inside the range of the payoffs {ai }.
(b) It may be assumed that a1 < a2 ≤ a3 . (Otherwise, simply renumber
the states.) Submatrix
R R
A2 =
a1 a2
is invertible, so the numbers h0 , h1 are uniquely determined by
h0 −1 d1
= A2 ,
h1 d2
di = h0 R + h1 ai , i = 3, . . . , n.
The row vector d = [1, 1, d3 , . . . , dn ] lies in the row space of A and thus
is exactly hedged by h = [h0 , h1 ]. 2
11. Suppose that a market model has five states, a riskless asset return-
ing R = 1.02, and two risky assets a, b with spot prices a0 = 20 and
b0 = 12 and payoffs a = (10, 15, 20, 25, 30) and b = (17, 15, 12, 10, 7),
respectively.
(a) Prove that the model is arbitrage-free.
(b) Find the no-arbitrage bid-ask interval for a European-style Call op-
tion on a with strike price 20.
(c) Find the no-arbitrage bid-ask interval for a European-style Put op-
tion on b with strike price 13.
286 Answers
rref([A R*q])
% 1.00000 0.00000 0.00000 -1.00000 -1.00000 -0.48000
% 0.00000 1.00000 0.00000 1.00000 -0.00000 0.88000
% 0.00000 0.00000 1.00000 1.00000 2.00000 0.60000
(Use R*q in the augmented matrix to get the risk neutral probabilities
p = Rk, which sum to 1, instead of the discounted vector k which will
sum to R1 .) The complete set of three pivot rows shows that the system is
consistent but underdetermined and thus has a two-parameter family of
solutions. By Corollary 8.8, it suffices to check that the unique minimal
norm solution is positive. Octave computes it with
Remark. The row echelon form of [A R*q] shows how to find the
def
complete solution set of positive vectors Rk = p = (p1 , p2 , p3 , p4 , p5 ).
Identify the pivot variables p1 , p2 , p3 , so p4 and p5 are free variables. The
general solution may be expressed as
p1 = p4 + p5 − 0.48
p2 = −p4 + 0.88
p3 = −p4 − 2p5 + 0.60
P
(Notice that i pi = 1.) To find a positive solution p > 0 requires
solving the simultaneous inequalities
which reduce to the intervals 0 < p5 < 0.12 and 0.48 − p5 < p4 <
0.60 − 2p5 . One of the infinitely many solutions is thus parametrized by
the midpoints:
. . . to Chapter 8 Exercises 287
p5=0.12/2; p4=((0.48-p5)+(0.60-2*p5))/2;
p1=p4+p5-0.48; p2= -p4+0.88; p3= -p4-2*p5+0.60;
p=[p1 p2 p3 p4 p5] % p = 0.03 0.43 0.03 0.45 0.06
k=p/R % k = 0.029412 0.421569 0.029412 0.441176 0.058824
For parts (b) and (c), reuse the Octave code from Section 8.2.3, first
putting the parameters, market matrix and spot prices into GLPK for-
mat:
(b) Compute the Call payoff on asset a, then find a superreplication and
a subreplication, taking the derivative seller’s and buyer’s perspectives,
respectively:
Since bid is strictly less than ask, by Corollary 8.9 there is no exact
hedge for this derivative in this market.
(c) Compute the Put payoff on asset b, then find a superreplication and
a subreplication, taking the derivative seller’s and buyer’s perspectives,
respectively:
[hb,bid]=glpk(q,A’,bb,lb,ub,buyctype,vartype,buysense,param)
% hb = [ -26.47059; 0.80; 1.00]; Cost-maximizing hedge portfolio
% bid = 1.5294; maximum cost to subreplicate the Call
Since bid is strictly less than ask, by Corollary 8.9 there is no exact
hedge for this derivative in this market. 2
Index
289
290 Index