100% found this document useful (2 votes)
209 views305 pages

Sanet - St-Introducing Financial Mathematics Theory Binomial Models and Applications

Uploaded by

Knyga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
209 views305 pages

Sanet - St-Introducing Financial Mathematics Theory Binomial Models and Applications

Uploaded by

Knyga
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 305

Introducing Financial

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.

Mladen Victor Wickerhauser is professor of mathematics and statistics at Wash-


ington University, St. Louis. He holds a PhD from Yale University. Professor Wick-
erhauser’s research interests include harmonic analysis, wavelets, and numerical
algorithms for data compression. He has six US patents and 118 publications, one
of which led to an algorithm used by the FBI to encode fingerprint images.
Chapman & Hall/CRC Financial Mathematics Series

Aims and scope:


The field of financial mathematics forms an ever-expanding slice of the financial sector. This
series aims to capture new developments and summarize what is known over the whole spec-
trum of this field. It will include a broad range of textbooks, reference works and handbooks
that are meant to appeal to both academics and practitioners. The inclusion of numerical code
and concrete real-world examples is highly encouraged.

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

Machine Learning for Factor Investing: R Version


Guillaume Coqueret, Tony Guida

Malliavin Calculus in Finance: Theory and Practice


Elisa Alos, David Garcia Lorite

Risk Measures and Insurance Solvency Benchmarks: Fixed-Probability Levels in Renewal


Risk Models
Vsevolod K. Malinovskii

Financial Mathematics: A Comprehensive Treatment in Discrete Time, Second Edition


Giuseppe Campolieti, Roman N. Makarov

Pricing Models of Volatility Products and Exotic Variance Derivatives


Yue Kuen Kwok, Wendong Zheng

Quantitative Finance with Python: A Practical Guide to Investment Management,


Trading, and Financial Engineering
Chris Kelliher

Introducing Financial Mathematics: Theory, Binomial Models, and Applications


Mladen Victor Wickerhauser

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

For more information about this series please visit: https://www.crcpress.com/Chapman-and-


HallCRC-Financial-Mathematics-Series/book series/CHFINANCMTH
Introducing Financial
Mathematics
Theory, Binomial Models, and
Applications

Mladen Victor Wickerhauser


MATLAB• is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not
warrant the accuracy of the text or exercises in this book. This book’s use or discussion of MATLAB® soft-
ware or related products does not constitute endorsement or sponsorship by The MathWorks of a particular
pedagogical approach or particular use of the MATLAB• software.

First edition published 2023


by CRC Press
6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742

and by CRC Press


4 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN

CRC Press is an imprint of Taylor & Francis Group, LLC

© 2023 Mladen Victor Wickerhauser

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.

Library of Congress Cataloging-in-Publication Data


Names: Wickerhauser, Mladen Victor, author.
Title: Introducing financial mathematics : theory, binomial models, and
applications / Mladen Victor Wickerhauser.
Description: First edition. | Boca Raton : CRC Press, 2022. | Series:
Chapman & Hall/CRC financial mathematics series | Includes
bibliographical references and index.
Identifiers: LCCN 2022022648 (print) | LCCN 2022022649 (ebook) | ISBN
9781032359854 (hardback) | ISBN 9781032359908 (paperback) | ISBN
9781003329695 (ebook)
Subjects: LCSH: Finance--Mathematical models.
Classification: LCC HG106 .W53 2022 (print) | LCC HG106 (ebook) | DDC
332.6--dc23/eng/20220519
LC record available at https://lccn.loc.gov/2022022648
LC ebook record available at https://lccn.loc.gov/2022022649

ISBN: 978-1-032-35985-4 (hbk)


ISBN: 978-1-032-35990-8 (pbk)
ISBN: 978-1-003-32969-5 (ebk)

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

5 Forwards and Futures 129


5.1 Discrete Models for Forwards . . . . . . . . . . . . . . . . . . 129
5.1.1 No-Arbitrage Forwards Values . . . . . . . . . . . . . 130
5.1.2 Binomial Models for Forwards Prices . . . . . . . . . . 131
5.2 Discrete Models for Futures . . . . . . . . . . . . . . . . . . . 131
5.2.1 Binomial Models for Futures Prices . . . . . . . . . . . 133
5.2.2 No-Arbitrage Futures Values . . . . . . . . . . . . . . 136
5.2.3 Margin Calls and Defaults . . . . . . . . . . . . . . . . 139
5.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.4 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 143

6 Dividends and Interest 145


6.1 Stocks with Dividends . . . . . . . . . . . . . . . . . . . . . . 145
6.1.1 Effects on Forwards . . . . . . . . . . . . . . . . . . . 146
6.1.2 Effects on American Call Options . . . . . . . . . . . . 149
6.1.3 Dividends as Cash Flows . . . . . . . . . . . . . . . . 151
6.2 Interest Rates . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.2.1 Zero-Coupon Bonds . . . . . . . . . . . . . . . . . . . 162
6.2.2 Coupon Bonds . . . . . . . . . . . . . . . . . . . . . . 163
6.2.3 Cash Flow Swaps . . . . . . . . . . . . . . . . . . . . . 166
6.2.4 Benchmarks . . . . . . . . . . . . . . . . . . . . . . . . 169
6.3 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6.4 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 174

7 Implied Volatility 175


7.1 The Inverse Problem for Volatility . . . . . . . . . . . . . . . 175
7.2 Implied Volatility Surfaces . . . . . . . . . . . . . . . . . . . 177
7.3 Implied Binomial Trees . . . . . . . . . . . . . . . . . . . . . 180
7.3.1 Path Independent Probabilities . . . . . . . . . . . . . 181
7.3.2 Jackwerth’s Generalization . . . . . . . . . . . . . . . 182
7.3.3 Rubinstein’s One-Two-Three Algorithm . . . . . . . . 185
7.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
7.5 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 189

8 Fundamental Theorems 191


8.1 Finite Financial Models . . . . . . . . . . . . . . . . . . . . . 191
8.1.1 Arbitrage and Positivity . . . . . . . . . . . . . . . . . 194
8.1.2 Fundamental Theorems of Asset Pricing . . . . . . . . 195
8.2 Applications of the Fundamental Theorems . . . . . . . . . . 195
8.2.1 Hedges . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.2.2 Complete Markets . . . . . . . . . . . . . . . . . . . . 197
8.2.3 Incomplete Markets . . . . . . . . . . . . . . . . . . . 199
8.3 Cones, Convexity, and Duals . . . . . . . . . . . . . . . . . . 203
8.3.1 Open and Closed Sets . . . . . . . . . . . . . . . . . . 205
8.3.2 Dual Cones and Double Duals . . . . . . . . . . . . . 207
x Contents

8.3.3 Proofs of the Fundamental Theorems . . . . . . . . . . 210


8.3.4 Farkas’s Lemma . . . . . . . . . . . . . . . . . . . . . 211
8.3.5 Hyperplane Separation . . . . . . . . . . . . . . . . . . 212
8.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
8.5 Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . 216

9 Project Suggestions 217

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

Financial mathematics comprises theorems, models, and algorithms, all the


ingredients necessary for a rich course in applied mathematics. For many stu-
dents, however, the subject needs an introduction, as it has its own peculiar
terminology and goals which may be unfamiliar to newcomers.
This textbook is intended to provide such an introduction, with the preci-
sion needed to convert theorems and models into working computer programs.
It gathers together material that has been used for the past several years at
Washington University in St. Louis. It is designed for undergraduate mathe-
matics or statistics majors who are comfortable with what is usually covered
in basic required courses:
• differential and integral calculus,
• linear algebra and matrix computations,
• elementary probability and statistics,
• calculation with some programming, and
• techniques of proof including induction and proof by contradiction.
Students will gain strength using these tools to price assets, construct novel
investment products, and find and test implied financial models. They should
expect to learn plenty, but also to put prior knowledge to use in new ways,
merging ideas from different branches of mathematics and gaining insight and
proficiency through programming and computation. Toward this last goal,
algorithms are presented as open source computer programs for the free, well
supported, and widely available Octave,1 Macsyma, and LibreOffice systems.
This book is not an encyclopedia of financial mathematics, which is a huge,
rapidly growing, and evolving subject. Instead, it contains topics selected for
relevance, accessibility, rigor, and computational usefulness. All of its chapters
can be presented in a typical 15-week semester, including time for midterm
examinations. But there are also features to make the book suitable for in-
dependent study or for mentored undergraduate thesis projects: suggested
Further Reading after each chapter, model solutions to all the chapter exer-
cises, and a list of projects that apply coursework to meaningful amounts of
real data.

1 The Octave programs are simplified to run without modification on the commercial

software system MATLAB R


, which is a registered trademark of The MathWorks, Inc. See
https://www.mathworks.com for further trademark and product information.

xi
1
Basics

1.1 Assets and Portfolios


The fundamental object of financial mathematics is the asset, something that
can be bought or sold, for an agreed price in some money units, or cash.
An asset has a time-varying price A(t). For simplicity, the present time is
set to be t = 0, so A(0) is the current market price, or spot price, of the asset.
Assets come in a great variety. Currencies of many nations, commodities
such as metals, grains, or minerals, shares of stock in corporations, and gov-
ernment or corporate bonds are all assets whose prices are determined in
markets around the world. Two large markets for stocks and bonds in the
United States are NYSE and NASDAQ which currently list about 2400 and
3800 corporations, respectively.
A risky asset is one for which the price A(t) for t > 0 is unknown, such as
a share of common stock in a company.
A riskless asset is one for which the price A(t) is known for at least some
times t > 0, such as a government bond which may be exchanged for its face
value at some future maturity date.
A portfolio is a linear combination of risky and riskless assets, possibly
with time-varying proportions. The coefficient of an asset in a portfolio will
be positive if the asset is held long, namely purchased for cash. It will be
negative if the asset is sold short, namely borrowed from someone else and then
sold. The negative sign indicates that there is a liability, or unmet obligation,
reducing the price of the portfolio.

1.1.1 Stocks and Bonds


If B is a government bond and S is a share of common stock, then
h0 B(t) + h1 S(t) (1.1)
is the price of a portfolio consisting of h0 units of the riskless asset B and h1
shares of the risky asset S.
For example, the portfolio 2B − S consists of two units of B plus one share
of S sold short. Similarly, the portfolio (−3)B + S consists of 3 units of B sold
short, equivalent to borrowing the amount 3B from a bank, plus one share of
S held long.

1
2 Basics

1.1.2 Foreign Exchange


A foreign exchange portfolio contains riskless assets Bd and Bf denominated
in domestic (DOM) and foreign (FRN) currency, respectively. The risk comes
from the exchange rate X = X(t), which is the number of units of DOM equal
to one unit of FRN at time t. It may change unpredictably with time. An
investment of hd DOM of domestic bond Bd and hf FRN of foreign bond Bf
is then worth
hd Bd (t) + hf X(t)Bf (t), (1.2)
denominated in DOM.

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.

1.1.4 Riskless Return


The time value of money must be included when computing prices. One way is
to assume that there is a riskless asset which, over one unit of time, increases
in price by a factor R > 1 regardless of the state of the world. This factor is
called the riskless return.
It is assumed that cash deposited into a bank account earns the riskless
return, and that money may be borrowed from the bank at an interest rate
corresponding to the riskless return.

1.1.5 Interest Rates and Present Value


Riskless return is related to interest rates which may change unpredictably.
One market-traded asset that sets interest rates is the zero-coupon bond,1
1 Zero-coupon means that no money is paid back until maturity.
Assets and Portfolios 3

usually issued by a government or a large institution. It pays a fixed face


value F at a fixed maturity T > 0. Denote by Z(0, T ) the spot price of such a
zero-coupon bond with nominal face value F = 1. This is a market price, set
by an auction for various T > 0. It is clear that Z(0, 0) = 1.
Normally Z(0, T ) < 1, since a promise to pay 1 at a future time T > 0
is worth less than 1 right now. Thus Z(0, T ) is a discount on the face value.
This discount should be deeper for longer T , so expect

T0 > T =⇒ Z(0, T 0 ) < Z(0, T ). (1.3)

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)

Riskless return may be computed from US Treasury zero-coupon bond


discounts. Such a bond with face value F and maturity T , sold at a discount
price of F Z(0, T ), yields a riskless return R = F/(F Z(0, T )) = 1/Z(0, T )
when it matures at time T and is redeemed for its face value.
The annual percentage rate r, or APR, implied by a return factor R over
T years is
log R
erT = R, ⇐⇒ r = . (1.5)
T
This assumes continuous compounding, the limit as N → ∞ of the return RN
from collecting and then reinvesting the principal and interest at N equispaced
times between 0 and T . Each reinvestment has a return factor 1 + rT /N , so
N times
z }| {  N
rT rT rT
RN = (1 + ) · · · (1 + )= 1+ → erT , as N → ∞,
N N N

by a well-known result from Calculus.


Equation 1.5 implies that the riskless interest rate over time 0 ≤ t ≤ T
satisfies Z(0, T ) = e−rT , since R = 1/Z(0, T ). More generally,

Z̄(t, T ) = Z(0, T )/Z(0, t) = e−r(T −t) , 0 ≤ t ≤ T, (1.6)

which values the endpoints t = 0 and t = T correctly.


2 Zero or negative interest rates have occured, but are considered extraordinary.
3 See Section 1.3.1 for a definition of random variable.
4 Basics

Continuous compounding or reinvestment implies that zero-coupon bond


discounts are multiplicative. For example, if the riskless return over one unit
of time is R and will be constant forever, then
Z(0, T ) = 1/RT = Z(0, 1)T ,
though this assumption is not likely to hold for long T .
If Z(0, T ) is known for a sequence of future times 0 < T1 < · · · < TN , then
it determines a fair price A(0), or present value, for an asset4 that pays a cash
flow of Xn at time Tn , 1 ≤ n ≤ N :
N
X
A(0) = Xn Z(0, Tn ) = X1 Z(0, T1 ) + · · · XN Z(0, TN ). (1.7)
n=1

This follows from Axiom 1 below. The proof is left as an exercise.

1.2 Payoff and Profit Graphs


The spot price X(0) of a derivative X depends on its future price X(T ) and
thus on the possible future prices S(T ) of its underlying asset S. The plot of
X(T ) as a function of S(T ) is called the payoff graph. The plot of net proceeds
X(T ) − X(0) versus S(T ) is called the profit graph.

1.2.1 Payoff Graphs for Forward Contracts


A forward contract to buy a risky asset S for an agreed price K at a future
expiry time t = T confers both a right and an obligation. The strike price K
is mutually agreeable to the buyer (the Long side) and the seller (the Short
side) of S, and thus the cost of such a contract is zero.
The payoffs for the Long and Short sides of a forward contract are plot-
ted in Figure 1.1 as a function of the market price S(T ) at expiry. Writing
Flong (T ) and Fshort (T ) for the payoffs of the Long and Short forward contracts,
respectively, the formulas are
Flong (T ) = S(T ) − K,
Fshort (T ) = K − S(T ) = −Flong (T ).
Because there is no initial cost, the payoff and profit are the same.

1.2.2 Payoff and Profit Graphs for Options


An option to buy (“Call”) or sell (“Put”) an asset has a time-dependent price
that will be determined only in the future.
4 An annuity is such an asset.
Payoff and Profit Graphs 5


 
 
 



 




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.2.3 Payoff and Profit Graphs for Contingent Options


A contingent premium option costs nothing at t = 0 but incurs an obligation
to pay a premium α if it is “in the money,” namely has a positive payoff,
at expiry or when exercised. Both Call and Put contingent premium options
have a strike price K and an expiry date T .
The payoff and profit graphs for the European style of these options, which
may only be exercised at the expiry date, may be seen in Figure 1.3.

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.

A more general definition of arbitrage is “an asset or portfolio with no


initial investment that, over some time interval, yields profit without risk.”
If such portfolios include contingent claims and other derivatives, then ex-
ploitation by arbitrageurs will cause their market prices to converge. It is a
goal of financial mathematics to compute the no-arbitrage prices that are the
presumed limits of such market action.
Arbitrage portfolios of this more general type may have guaranteed profit
with no risk of loss, or only the expectation of profit but no guarantee. More
precise definitions, from which prices may be calculated, require a few notions
from probability theory.

1.3.1 Random Variables and Stochastic Processes


The future at t > 0 is unknown, but it can be modeled by a probability space,
a set Ω of possible futures with a probability function, Pr, defined on certain
well-behaved measurable subsets of Ω and satisfying:
• 0 ≤ Pr(S) ≤ 1 for any measurable S ⊂ Ω;
• ∅ and Ω are both measurable, with Pr(∅) = 0 and Pr(Ω) = 1;
def
• If S is measurable, then its complement Ω \ S = {ω ∈ Ω : ω ∈
/ S} is
measurable, with
Pr(Ω \ S) = 1 − Pr(S).
8 Basics

• If S1 , S2 ⊂ Ω are both measurable, and S1 ⊂ S2 , then Pr(S1 ) ≤ Pr(S2 ).


This is called monotonicity.

• 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

This is called countable additivity. It implies monotonicity.


If Ω is a finite set, then every subset is measurable. Each one-element subset
{ω} ⊂ Ω may be assigned some probability 0 ≤ Pr({ω}) ≤ 1, with the only
other constraint being
X
1 = Pr(Ω) = Pr({ω}).
ω∈Ω

Then any S ⊂ Ω will have probability


def
X
Pr(S) = Pr({ω}),
ω∈S

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.

Random variables, distributions, and densities


A random variable, often abbreviated r.v., is a function X : Ω → R such that
for each s ∈ R, the subset {ω ∈ Ω : X(ω) ≤ s} is measurable,6 so it is in the
domain of Pr and may be used to define the cumulative distribution function
(c.d.f.) of X at t:
def
FX (s) = Pr({ω ∈ Ω : X(ω) ≤ s}), s ∈ R.

By monotonicity of Pr, FX (s) is nondecreasing, lies between 0 and 1, tends


to 0 as s → −∞, and tends to 1 as s → +∞.
6 Such a function is also called measurable, so an r.v. is a measurable function.
Arbitrage 9

If Ω is finite or countably infinite, then FX for any X will have countably


many jump discontinuities, with positive jumps that sum to 1. Those jumps
def
will be at discrete values sn where X −1 (sn ) = {ω : X(ω) = sn } is nonempty,
−1
and the size of each jump will be Pr(X (sn )). Without loss of generality it
may be assumed that X is one-to-one on Ω = {ω1 , ω2 , . . . }, with X(ωn ) = sn
so that X −1 (sn ) = {ωn } is a one-point set. Then Pr({ωn }) may be defined to
be the jump of FX at sn . In this way, the model Ω, Pr is completely determined
by the cumulative distribution function of X. This suggests an equivalence
relation: say that random variables X, Y have the same distribution, and write

X ∼ Y, ⇐⇒ (∀s ∈ R) FX (s) = FY (s), (1.10)

namely iff their cumulative distribution functions are the same.


If FX is continuous everywhere, then X is called a continuous random
variable. In this case Ω must be uncountably infinite, but a standard one may
be constructed for X as follows:
• Let Ω = R.
• Define the probability function Pr on intervals (a, b] ⊂ Ω using FX :
def
Pr((a, b]) = FX (b) − FX (a).

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

Hence, fX completely determines the model Ω, Pr, just as FX does.


−1
The median of a random variable X is FX (1/2), if this is a single number,
−1
or else it is defined to be the midpoint of the set FX (1/2) which must be a
bounded interval. Thus every r.v. has a finite median. However, the mean, or
expected value, may not exist as it is given by an improper integral:8
Z ∞
def
E(X) = s dFX (s). (1.11)
−∞

7 See Bass, p.9, in Further Reading from Chapter 8.


8 This form, with dFX , is called a Riemann-Stieltjes integral.
10 Basics

Expected values of functions of X are likewise defined as improper integrals:


Z ∞
def
E(g(X)) = g(s) dFX (s). (1.12)
−∞

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, ω)
ω∈Ω

The weights {Pr({ω}) : ω ∈ Ω} are probabilities


P of individual states, con-
strained only by 0 ≤ Pr({ω}) ≤ 1 and ω∈Ω Pr({ω}) = 1.
Models with countably infinite Ω typically define nonnegative Pr({ωn })
using some formula involving n that gives convergent infinite sums, normalized
so that Pr(Ω) = 1. Models with uncountable Ω are typically specified with a
c.d.f. and use Eq.1.11 to compute expectations.

1.3.2 Deterministic Arbitrages


This is a somewhat misleading name for portfolios that are arbitrages for every
probability function on the future states Ω. For ease of definition, assume that
• Ω is a finite set, and
• Pr(ω) > 0 for all ω ∈ Ω.
For such finite financial models with no zero-probability future states, there
are two types of deterministic arbitrages:
Arbitrage 11

Definition 1 (IA) A type one arbitrage, or immediate arbitrage, is an asset


or portfolio with price A(t, ω) such that

IA1: A(0) < 0.


IA2: A(t, ω) ≥ 0 for all t > 0 in all states ω.
This kind of arbitrage leaves a surplus as it is assembled but costs nothing to
settle its liabilities in any future state. Of all the generalizations, it is the one
most similar to a traditional instant arbitrage.
A less certain investment, but still an arbitrage, is one that cannot lose
but wins only in some future states:
Definition 2 (AO) A type two arbitrage, or arbitrage opportunity, is an
asset or portfolio with price A(t, ω) satisfying
AO1: A(0) ≤ 0.
AO2: A(t, ω) ≥ 0 for all t > 0 in all states ω.
AO3: There exists some t > 0 and some state ω such that A(t, ω) > 0.
This costs nothing to assemble and cannot lose value, but has a positive payoff
in some future state.

For infinite Ω with arbitrary Pr, condition AO3 must be strengthened to


AO3+ : There exists t > 0 such that Pr({ω ∈ Ω : A(t, ω) > 0}) > 0.
(A single ω with A(t, ω) > 0, from AO3, may not suffice to give Pr({ω}) > 0.)
At the same time, conditions AO2 and IA2 may be weakened to
AO2– and IA2– : For all t > 0, Pr({ω ∈ Ω : A(t, ω) < 0}) = 0.
(A single ω with A(t, ω) < 0 but Pr({ω}) = 0 would pose no risk of loss.)
Any type one immediate arbitrage is also a type two arbitrage opportunity.
Including the surplus cash9 in the no-loss portfolio guarantees that there will
be a positive payoff in every future state.

1.3.3 Arbitrage and Expected Value


Any particular probability function in the model of the future may expose
another, weaker kind of arbitrage.

Definition 3 (AE) An arbitrage expectation is an asset or portfolio with


price A(t, ω) satisfying
AE1: A(0) = 0
9 Not all markets have cash. It is assumed, however, that there is some riskless asset,

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

AE2: E(A(t)) ≥ 0 for all t > 0.


AE3: E(A(T )) > 0 for some T > 0.

A type one or two arbitrage is an arbitrage expectation, though an arbi-


trage expectation need not be an immediate arbitrage or even an arbitrage
opportunity. That is because averaging over future states allows losses in some
states so long as the expected value is positive. Thus, arbitrage expectations
not only are model-dependent but are also sensitive to the probability func-
tion. The relationship may be stated as

∃ IA =⇒ ∃ AO =⇒ ∃ AE. (1.13)

1.4 No Arbitrage and Its Consequences


The universal desire for profit creates unlimited demand for arbitrages so it
is assumed that if assets are freely traded, then prices will adjust instantly to
consume any supply. This may be stated as an axiom:
Axiom 1 There are no arbitrages.
The chain of implications for no arbitrages is the reverse of Eq.1.13:

@ AE =⇒ @ AO =⇒ @ IA. (1.14)

(These reversed implications are the equivalent contrapositive of the implica-


tions in Eq.1.13.) Forbidding even the weakest kind of arbitrage, no AE, thus
yields the strongest results, though they will in general depend on the model
of the future by which expectations are calculated. It is better to employ
so-called model independent arguments using no AO.
Theorems about prices are deduced from Axiom 1 using proof by contra-
diction. Begin by assuming that the claimed price relationship does not hold,
enumerate the violating cases, then construct an arbitrage for each case.
A first example of this argument is to show that the profit graph at any
time T for a portfolio with initial cost 0 cannot lie entirely on one side of the
horizontal axis. That is because the points on that axis represent all future
states, so either the long or the short position for such a portfolio would offer
an arbitrage opportunity.

Theorem 1.1 If X is an option with expiry T > 0, then X(t) > 0 for all
times 0 ≤ t < T .

Proof: Suppose not, namely suppose that X(t) ≤ 0 at some 0 ≤ t < T .


No Arbitrage and Its Consequences 13

• If X(t) < 0, then X is an immediate arbitrage since it leaves a surplus


when assembled (at time t) but incurs no liabilities: X(T, ω) ≥ 0 in all
states and future times T > t since it need not be exercised.
• If X(t) = 0, then X is an arbitrage opportunity since X(t, ω) ≥ 0 for all
states and all times 0 < t ≤ T , and it will pay off X(T ) > 0 at expiry
(be “in the money” at T ) with nonzero probability in the mind of some
hopeful speculator, so Pr({ω : X(T, ω) > 0}) > 0.
These cases contradict Axiom 1. Conclude that X(t) > 0 for all t < T . 2
Since the payoff graph of X(T ) versus S(T ) for an option on S, either Call
or Put, lies entirely on or above the S(T ) axis, this theorem implies that the
profit graph must be shifted partially below the axis by a positive amount
X(t) for any purchase time t < T .
The same type of proof gives the One Price Theorem:
Theorem 1.2 (One Price) If at some time T > 0, two assets A, B have the
same price A(T, ω) = B(T, ω) in all states ω, then A(t) = B(t) for all times
0 ≤ t < T.
Proof: Fix a time t with 0 ≤ t < T .
• If A(t) > B(t), then assemble a portfolio −A + B by selling A short and
buying B, leaving the surplus −A(t) + B(t) < 0. At time T , sell B for
B(T, ω) and buy A for A(T, ω) to cover the short. By hypothesis this
costs −A(T, ω) + B(T, ω) = 0 in all states ω. The assembled portfolio
would thus be an immediate arbitrage, contradicting Axiom 1.
• Similarly, if A(t) < B(t), then the portfolio A − B, namely long one A
and short one B, would be an immediate arbitrage.
Conclude that A(t) = B(t) for all times. 2
The proof of the following very similar result is left as an exercise:
Corollary 1.3 If at some time T > 0, A(T, ω) > B(T, ω) in all states ω,
then A(t) > B(t) for all times 0 ≤ t < T . 2

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.

• If X is an option with expiry T > 0 on a risky asset S, then a one-step,


two-state (discrete) model of the future determines the constants h0 , h1
uniquely in terms of S(0), B(T ), and the two modeled values of S(T ).
The One-Price Theorem then gives X(0) = h0 B(0) + h1 S(0).
• If X is a European-style option on S priced by the Black-Scholes model,
then h1 = ∂X∂S , which is called the Delta of the option.

• If X is an option priced with a multistep binomial model of the future,


then h1 is a discrete approximation to ∂X
∂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.

1.4.2 Martingales and Fair Prices


If there are no arbitrage expectations, then any portfolio P = P (t, ω) with
initial price P (0) = 0 must be a martingale, which is a stochastic process
satisfying, for all t > 0, the conditional expectation condition

E(P (t) | P (0) = 0) = 0.

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

E(S(T )) − RS(0) > 0,

an arbitrage expectation violating Axiom 1.


No Arbitrage and Its Consequences 15

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.

1.4.3 No-Arbitrage Price Equalities


Assuming no arbitrage leads to price parity formulas for stock and bond port-
folios and their derivatives.

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

At t = 0, starting with no money, do the following:

• Sell S short for S(0) cash.


• Deposit S(0) cash in the bank at rate R.
• Sign a (long) Forward contract to buy S for K at time T .
Again, these transactions incur obligations but have zero net cost. At t = T ,
clear all liabilities as follows:

• Withdraw RS(0) cash from the bank, which includes interest.


• Execute the forward contract to buy S for K, which is less than the
RS(0) cash just obtained.
That leaves RS(0) − K > 0 cash with no unfunded liabilities, an arbitrage
profit forbidden by Axiom 1. Conclude that Eq.1.15 holds.

Call-Put parity formula


Axiom 1 implies a relationship between premiums on same-expiry Call and
Put options at same strike price K for an asset S. If R is the riskless return
between now (t = 0) and expiry, then the premiums C(0) and P (0) satisfy

C(0) − P (0) = S(0) − K/R. (1.16)

To prove equality, show that inequality in either direction results in an arbi-


trage opportunity.
Case 1: C(0) − P (0) > S(0) − K/R.
At t = 0, starting with no money, do the following:
• Short-sell C for C(0) cash.
• Buy P for P (0) cash.
• Borrow K/R cash from the bank at riskless rate R.
• Buy S for S(0) cash.
That leaves C(0) − P (0) − S(0) + K/R > 0, a net profit to keep. Then at
t = T , clear all debts as follows:
• If S(T ) > K, then cash-settle the short-sold C for S(T ) − K. Otherwise
there is no liability as C expires worthless.
• If K > S(T ), then exercise P to earn K −S(T ) > 0. Otherwise P expires
worthless.
• Sell S for S(T ) cash.
• Repay the bank RK/R = K cash, including interest.
No Arbitrage and Its Consequences 17
+ +
That leaves − [S(T ) − K] + [K − S(T )] − K + S(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) < S(0) − K/R.
It is left as an exercise to show how this leads to an arbitrage profit.
Conclude that Eq.1.16 holds.

Forwards versus options


The plus-part function satisfies
+ +
[X] − [−X] = X, (1.17)

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

Forward exchange rate parity


The agreed rate K for a forward contract to exchange foreign currency is
negotiated so that there is no premium for either party. For expiry T , the price
is called the T -forward exchange rate, and it depends on the current exchange
rate X(0) and the riskless returns Rd and Rf of domestic and foreign bonds,
respectively, over the period t = 0 to t = T . The T -forward exchange rate is
given by the (Covered) Interest Rate Parity Formula:

Rd
K= X(0). (1.19)
Rf

It may be established by constructing arbitrages for the two inequalities.


Rd
Case 1: K > R f
X(0).
18 Basics

At t = 0, starting with no money, perform the following trades:


• Borrow X(0)/Rf DOM from the domestic bank.
• Spend X(0)/Rf DOM to buy 1/Rf FRN and invest it in the foreign
bank.
• Sign a (short) Forward contract to sell 1 FRN for K DOM at time T .
These transactions have zero net cost.
At t = T , clear all debts as follows:
• Withdraw 1 FRN from the foreign bank, including interest.
• Execute the forward contract to obtain K DOM.
• Return X(0)Rd /Rf to the domestic bank, which includes interest.
That leaves K − X(0)Rd /Rf > 0 DOM with no unfunded liabilities, an arbi-
trage profit prohibited by Axiom 1.
Rd
Case 2: K < R f
X(0).
At t = 0, starting with no money, perform the following trades:
• Borrow 1/Rf FRN from the foreign bank.
• Spend the 1/Rf FRN to buy X(0)/Rf DOM and invest it in the do-
mestic bank at riskless return Rd .
• Sign a (long) Forward contract to buy 1 FRN for K DOM at time T .
These transactions also have zero net cost.
At t = T , clear all debts as follows:
• Withdraw X(0)Rd /Rf DOM from the domestic bank, including interest.
• Execute the forward contract to obtain 1 FRN in exchange for K DOM,
which is less than the X(0)Rd /Rf DOM in hand.
• Return 1 FRN to the foreign bank, which includes interest.
That leaves X(0)Rd /Rf − K > 0 DOM with no unfunded liabilities, an arbi-
trage profit forbidden by Axiom 1.
Conclude that Eq.1.19 holds.

Call-Put parity for foreign exchange options


The relationship between Call and Put premiums on foreign exchange options
is similar to that on stock options:
X(0) K
C(0) − P (0) = − , (1.20)
Rf Rd
where C(0), P (0) are the respective premiums for Call and Put options for
the exchange rate X at strike price K, expiring at time T , and Rd , Rf are the
respective riskless returns for domestic currency DOM and foreign currency
FRN. The proof of this formula is left as an exercise.
No Arbitrage and Its Consequences 19

1.4.4 No-Arbitrage Inequalities


Suppose that CE (t) and CA (t) are the prices of European-style and American-
style Call options, respectively, at time t. Suppose that 0 ≤ t ≤ T , where the
expiry time is T > 0 for both, and that the options have the same strike price
on the same underlying asset S.
Theorem 1.6 For all 0 ≤ t ≤ T , CA (t) ≥ CE (t).
Proof: Suppose not, namely that CA (t) < CE (t) at some time t before expiry.
Then the portfolio CA − CE , namely one European Call sold short to buy
one American Call, satisfies CA (t) − CE (t) < 0, leaving a surplus when it is
assembled at time t. But CA (T ) − CE (T ) = 0, since at expiry both are worth
+
[S(T ) − K] . Hence this portfolio is an immediate arbitrage, contradicting the
no-arbitrage axiom. 2
For the next two results, let Z(t, T ) be the discount factor, at time t, of a
zero-coupon bond maturing at time T . Assume that riskless interest rates are
positive so that Z(t, T ) < 1.
+
Theorem 1.7 For all 0 ≤ t ≤ T , CE (t) ≥ [S(t) − Z(t, T )K] .
+
Proof: Suppose not, namely that CE (t) < [S(t) − Z(t, T )K] , at some time t
before expiry. There are two cases to consider:
+
• If S(t) ≤ Z(t, T )K, then CE (t) < [S(t) − Z(t, T )K] = 0. But at expiry,
+
CE (T ) = [S(T ) − K] ≥ 0.
+
• If S(t) > Z(t, T )K, then [S(t) − Z(t, T )K] = S(t) − Z(t, T )K, so
CE (t) < S(t) − Z(t, T )K. The portfolio CE − S − ZK, namely one
Call CE , one share of S sold short, and ZK borrowed from the bank
and invested in a riskless bond, satisfies CE (t) − S(t) + Z(t, T )K < 0,
leaving a surplus when it is assembled at time t. But at expiry, the bond
matures to yield K, exercising the Call buys S for K, and delivering S
covers the short and satisfies all liabilities.
In either case, there is an immediate arbitrage. 2
+
Theorem 1.8 For all 0 ≤ t ≤ T , CA (t) > [S(t) − K] .
Proof: Consider the two cases:
• If S(t) > K, then, since interest rates are assumed positive,
S(t) − Z(t, T )K > S(t) − K > 0,
so by Theorems 1.6 and 1.7,
CA (t) ≥ CE (t)
+
≥ [S(t) − Z(t, T )K]
= S(t) − Z(t, T )K
+
> S(t) − K = [S(t) − K] .
20 Basics
+
• If S(t) ≤ K, then [S(t) − K] = 0. But CA (t) > 0 for all t < T by
+
Theorem 1.1, so CA (t) > [S(t) − K] .

In either case, the claimed inequality holds. 2

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:

S(T ) 90 95 98 100 102 105 110


Pr(S(T )) 0.01 0.04 0.15 0.30 0.30 0.18 0.02

(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

Use the no-arbitrage axiom.


Exercises 21

7. (a) Prove that the plus-part function satisfies Eq.1.17:


+ +
[X] − [−X] = X,

for any number X.


(b) Apply the identity in part (a) to the payoff values of European-style
Call and Put options for S at strike price K and expiry T to show
Eq.1.18:
C(T ) − P (T ) = S(T ) − K.

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

1.6 Further Reading


• Freddy Delbaen and Walter Schachermayer. “What is. . . a Free Lunch?”
Notices of the AMS 51:5 (2004), pp.526–528.

• Robert James Elliott and Peter Ekkehard Kopp. Mathematics of Finan-


cial Markets (2nd Edition). Springer-Verlag, New York (2004).
• William Feller. An Introduction to Probability Theory and Its Appli-
cations, Volume I (3rd Edition). John Wiley & Sons, Inc., New York
(1968).
• John C. Hull. Options, Futures and Other Derivatives (5th Edition).
Prentice Hall, London (2003).
• Stanley R. Pliska. Introduction to Mathematical Finance: Discrete Time
Models. Blackwell, Oxford, U.K., and Malden, MA (1997).
2
Continuous Models

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.

2.1 Some Facts from Probability Theory


Asset prices in a bustling free market behave like the average of very many
independent random variables, each having bounded variance around the same

23
24 Continuous Models

mean. Such an average is itself a random variable, with an approximately


normal distribution as a result of the Central Limit Theorem.1
A useful fact about any random variable X with finite expectation E(X)
and variance Var(X) is that

E(a + bX) = a + bE(X); Var(a + bX) = b2 Var(X). (2.6)

Applied to normal distributions, in the notation of Eq.1.10, this gives

N (µ, σ 2 ) ∼ µ + N (0, σ 2 ) ∼ µ + σN (0, 1),

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),
−∞

which is a Riemann-Stieltjes integral. If the c.d.f. Q is differentiable with


def
probability density function q(s) = Q0 (s), then the integral may be rewritten
with the p.d.f. as a weight:
Z ∞
E(X) = X(s)q(s) ds
−∞

It remains to find this c.d.f. or p.d.f. and then compute the integral, if possible.

2.2 Understanding Brownian Motion


Unfortunately, Eq.2.5 may not be solvable for a given W . Many continuous
stochastic processes are not differentiable with respect to time, so dW/dt may
not exist for most or all states ω. The naïve integration method will fail for
1 See Feller, Volume II, p.258, in Further Reading after Chapter 3.
Understanding Brownian Motion 25

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

S(t, ω) = S(0, ω) exp (rt + vW (t, ω)) ,

which is wrong because an intermediate step requires a nonexistent quantity.


Fortunately, there is a natural choice of continuous stochastic process that
satisfies sufficient conditions for the existence of solutions. It is called Brow-
nian motion, after botanist Robert Brown (1773-1858) who described the
random motion of pollen grains viewed under a microscope, but is also called
the Wiener process, after mathematician Norbert Wiener (1894-1964), and is
most often denoted by W (t, ω). It may be understood using random walks.
Let n be a fixed positive integer and let Ω be the (finite) probability space
of equally probable n-bit positive integers ω = ωn−1 · · · ω1 ω0 (base 2), namely
n−1
X
n−1
ω = ω0 + 2ω + · · · + 2 ωn−1 = ωi 2i ,
i=0

with ωi ∈ {0, 1} for all i. The number of states #Ω in this space is 2n .


Let X(t, ω) be the continuous piecewise linear function on 0 ≤ t ≤ n
defined recursively by

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.

This is called a random walk. If every ω ∈ Ω is equally probable, then for


each i, Pr(ωi = 0) = Pr(ωi = 1) = 12 so at each integer point t = i there
is an equal probability of going up by 1 or going down by 1. The terminal
points of the random walk are X(t, ω) with t = n and they lie in the range
[−n, n], with the extreme points reached uniquely by X(n, 00 · · · 0) = −n and
X(n, 11 · · · 1) = n.
The complete set of reachable points (there are n + 1 of them) is

{−n, −n + 2, . . . , −n + 2k, . . . , −n + 2(n − 1), n}.


26 Continuous Models

The terminal point X(n, ω) = −n + 2k is reached by just those


 paths where
#{i : ωi = 0} = n − k and #{i : ωi = 1} = k. There are nk ways to have
exactly k 1-bits in a set of n bits, so

#{ω ∈ Ω : #{i : ωi = 1} = k}}


Pr(X(n, ω) = −n + 2k) =
#Ω
     k  n−k
1 n n 1 1
= n
= .
2 k k 2 2

This is evidently the binomial probability of k successes in n independent


trials, each with success probability 21 . Hence the n + 1 terminal values have a
binomial distribution. The mean and variance of this distribution are known
to be
n
E(X(n, ·)) = 0; Var(X(n, ·)) = . (2.7)
4
p √
It may be normalized to have variance 1 by multiplying by 1/ n/4 = 2/ √n,
using Eq.2.6, rescaling X. This is exactly the same as using jump size ±2/ n
instead of ±1.
Likewise, the [0, n] time interval may be normalized to [0, 1] by changing
the time step to 1/n from 1. It is left as an exercise to rewrite the recursive
definition of X with these normalizations.
Now let n → ∞ for the standardized X and consider X(1, ω) for some
very large value of n. By the Central Limit Theorem, X(1, ·) are distributed
approximately like N (0, 1). Individual paths t 7→ X(t, ω) will be piecewise
linear with slopes

∆X X( i+1 i
n ) − X( n ) ±2/ n √
= i+1 i
= = ±2 n,
∆t n − n
1/n

which tends to ±∞ as n → ∞. Hence the limit paths are not differentiable.


However, the quadratic variation of this standardized random walk is
bounded for all n:

[∆X]2 [X( i+1 i 2


n ) − X( n )] 4/n
= i+1 i
= = 4,
∆t n − n
1/n

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

Finally, for s < t, given the position x = X(s, ω) without knowing ω, it is


def
not possible to predict X(t, ω). The set Ω0 = {ω ∈ Ω : X(s, ω) = x} indexes
paths that lead to positions X(t, ω) which are distributed approximately like
N (x, t − s). In particular, this gives the conditional expectation

E(X(t, ω)|X(s, ω) = x) = x.

More generally, the conditional expectation is the last known value, irrespec-
tive of prior positions:

E (X(t, ω)|{X(u, ω) : u ≤ s < t}) = X(s, ω).

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.

2.3 The Black-Scholes Formula


If W is standard Brownian motion, then even though dW/dt fails to exist there
is an alternative integral, Itô’s stochastic integral, which takes advantage of
bounded quadratic variation and independence of increments to solve for S.
Assuming r and v to be independent of t and ω, the initial value problem for
Eq.2.5 has the solution2

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

2 See Example 1, p.213 of Lawler, in Further Reading below.


28 Continuous Models

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

Its mean E(S) is not equal to µ but rather


Z ∞
σ2
 
E(S) = sq(s) ds = exp µ + . (2.15)
0 2
Its cumulative distribution function is
Z s  
def log s − µ
Q(s) = q(x) dx = Φ , (2.16)
0 σ
3 The state variable ω is replaced by a dot since only distributions are being compared.
4 See Forbes, et al., in Further Reading below.
The Black-Scholes Formula 29

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 Φ.

2.3.1 Option Pricing


Now let C = C(t, ω) be the price of a European Call option with strike price
K and expiry time T . This price is known at expiry, at least in terms of the
underlying price S(T, ω), to be
+
C(T, ω) = [S(T, ω) − K] .
The Call premium, under the assumptions of no expected arbitrage and con-
stant riskless rate r, is thus
C(0) = exp(−rT )E(C(T )), (2.20)
where ω has been removed by averaging over all states. The averaging is
weighted by the lognormal distribution of S, and the technique is to integrate
+
[s − K] q(s) over all positive prices s that S may take:
Z ∞
+
C(0) = exp(−rT ) [s − K] q(s) ds
Z0 ∞
= exp(−rT ) (s − K)q(s) ds
K
Z ∞ Z ∞ 
= exp(−rT ) sq(s) ds − K q(s) ds .
K K

Apply Eqs.2.14 and 2.16 to compute the rightmost integral:


Z ∞    
log K − µ µ − log K
q(s) ds = 1 − Q(K) = 1 − Φ =Φ (2.21)
K σ σ
30 Continuous Models

The other integral may be evaluated by substituting s ← et in Eq.2.13, then


completing squares and factoring out constant terms:
Z ∞ Z ∞
[log s − µ]2
 
1
sq(s) ds = √ exp − ds
K σ 2π K 2σ 2
Z ∞
[t − µ]2
 
1
= √ exp − exp(t) dt
σ 2π log K 2σ 2
Z ∞
σ2 [t − (µ + σ 2 )]2
   
1
= exp µ + √ exp − dt
2 σ 2π log K 2σ 2
σ2 (µ + σ 2 ) − log K
   
= exp µ + Φ ,
2 σ

after recognizing the c.d.f. of N ((µ + σ 2 ), σ 2 ).


Combining the two parts gives
σ2 (µ + σ 2 ) − log K
      
µ − log K
C(0) = exp(−rT ) exp µ + Φ −KΦ .
2 σ σ
Substituting from Eq.2.11 with t = T gives
v2 v2
   
2 2
µ + σ = log S0 + r − T + v T = log S0 + r + T,
2 2
σ2 v2 v2 T
 
µ+ = log S0 + r − T+ = log S0 + rT,
2 2 2
σ2
 
exp µ + = S0 exp(rT ), (2.22)
2
so the Call premium should be C(0) =
 2
   
v2
  
log SK0 + r + v2 T log SK0 + r − 2 T
S0 Φ  √  − e−rT KΦ  √ . (2.23)
v T v T

Eq.2.23 is the Black-Scholes formula for European Call options.


The spot price S0 and the present value e−rT K of the strike price are com-
bined in this formula with the positive weights Φ(d1 ) and Φ(d2 ), respectively,
where
   
S0 v2 S0 v2
def
log K + r + 2 T log K + r − 2 T
d1 = √ , d2 √ . (2.24)
v T v T
These weights are called risk-adjusted probabilities, and they take values be-
tween 0 and 1. Much of the complexity of the Black-Scholes formula is elimi-
nated by writing it as

C(0) = S0 Φ(d1 ) − e−rT KΦ(d2 ). (2.25)


The Black-Scholes Formula 31

Computations with the formula are facilitated by noting that d1 − d2 = v T .
The similar Black-Scholes formula for European Put options, where the
+
payoff is [K − S(T )] , is

P (0) = e−rT KΦ(−d2 ) − S0 Φ(−d1 ). (2.26)

Its derivation is left as an exercise.


Taking the difference between these formulas yields the Call-Put parity
formula:

C(0) − P (0) = S0 [Φ(d1 ) + Φ(−d1 )] − e−rT K[Φ(d2 ) + Φ(−d2 )]


= S0 − e−rT K,

since Φ(z) + Φ(−z) = 1 for every z.

2.3.2 Historical Note


There is an alternative derivation of the Black-Scholes formula from a partial
differential equation that avoids mentioning Brownian motion. Rather than
compute C directly, it replicates C with a portfolio consisting of S and B in
ratios chosen to match the price of C at all times in all states. Denote this
portfolio by
def
V (t, S) = h0 (t)B(t) + h1 (t)S(t),
where h0 , h1 are hedge ratios for the two-asset portfolio. The dependence on
ω is unwritten, though it is still there. If this is to be a self-financing hedge
portfolio, then it must satisfy the Black-Scholes Equation:
1
V̇ (t, x) + x2 v 2 V 00 (t, x) + rxV 0 (t, x) − rV (t, x) = 0, (2.27)
2
2

where V̇ (t, x) = ∂t V (t, x), V 0 (t, x) = ∂x

V (t, x), and V 00 (t, x) = ∂x

2 V (t, x).

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 Φ is the standard normal distribution function as before. In particular,


replacing t ← T and x ← S0 gives the premium C(0) for a European Call
32 Continuous Models

option on S with expiry T and strike price K:


v2
!
log SK0 + (r +

2 )T
C(0) = V (0, S0 ) = S0 Φ √
v T
v2
!
S0

log + (r − 2 )T
−Ke−rT Φ K

v T
= S0 Φ(d1 ) − Ke−rT Φ(d2 ),

where Φ(d1 ) and Φ(d2 ) are the same risk-adjusted probabilities as before.

2.3.3 Black-Scholes Greeks


“Greeks” is a colloquial expression for partial derivatives of options premiums
because they are traditionally denoted by Greek letters.

The Delta of an option


Delta (∆) denotes the partial derivative of the option premium with respect to
S0 , the spot price of the underlying asset. It is left as an exercise to compute

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.

The Gamma of an option


Gamma (Γ) denotes the second derivative of the option premium with respect
to S0 , or equivalently the partial derivative of ∆ with respect to S0 . It is again
left as an exercise to show that

def ∂ 2 C(0) ∂∆C φ(d1 )


ΓC = 2 = = √ ; (2.30)
∂S0 ∂S0 vS0 T
2
def ∂ P (0) ∂∆P φ(d1 )
ΓP = = = √ ; (2.31)
∂S02 ∂S0 vS0 T

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

The Theta of an option


Theta (Θ) denotes the rate of change of the option premium with respect to
expiry T , traditionally computed with a negative sign:
def ∂C(0) vS0 φ(d1 )
ΘC = − = − √ − re−rT KΦ(d2 ); (2.32)
∂T 2 T
def ∂P (0) vS0 φ(d1 )
ΘP = − = − √ + re−rT KΦ(−d2 ). (2.33)
∂T 2 T
Then relation
ΘC − ΘP = −re−rT K[Φ(d2 ) + Φ(−d2 )] = −re−rT K
may be computed from the Call-Put Parity Formula. A less obvious relation
comes from the Black-Scholes Equation:
1
ΘC + rS0 ∆C + v 2 S02 ΓC − rC(0) = 0. (2.34)
2
It is left as an exercise to verify this and also to find the equivalent relation
for Puts.

The Vega of an option


“Vega” is not a Greek letter, it is just the colloquial term for this quantity
usually denoted by kappa (κ). It is the partial derivative of the option premium
with respect to volatility v:
∂C(0)
def √
κC = = S0 φ(d1 ) T ; (2.35)
∂v
def ∂P (0) √
κP = = S0 φ(d1 ) T . (2.36)
∂v
Thus κC = κP . Equality may also be deduced from the observation that
C(0) − P (0) − S0 − e−rT K is independent of volatility v.

The Rho of an option


Rho (ρ) denotes the partial derivative of the option premium with respect to
riskless rate r:
∂C(0)
def
ρC = = T e−rT KΦ(d2 ); (2.37)
∂r
def ∂P (0)
ρP = = −T e−rT KΦ(−d2 ). (2.38)
∂r
Their difference may be simplified as
ρC − ρP = T e−rT K[Φ(d2 ) + Φ(−d2 )] = T e−rT K,
a relationship that may also be deduced immediately from the Call-Put Parity
Formula. These derivations are all left as exercises in differential Calculus.
34 Continuous Models

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

Macsyma (or wxMaxima) performs the same calculations symbolically, so


the last step to get numerical values is to substitute parameters and evaluate
in floating-point arithmetic:
1 /∗ BLACK−SCHOLES FORMULA ∗/
2 /∗ D e f i n e Phi ( ) u s i n g b u i l t −i n f u n c t i o n e r f ( ) : ∗/
3 normcdf ( z ) := (1+ e r f ( z / s q r t ( 2 ) ) ) / 2 ;
4 /∗ I n t e r m e d i a t e q u a n t i t i e s : ∗/
5 d1 : ( l o g ( S0 /K)+T∗ ( r+v ^2/2) ) / ( v∗ s q r t (T) ) ;
6 d2 : ( l o g ( S0 /K)+T∗ ( r−v ^2/2) ) / ( v∗ s q r t (T) ) ;
7 /∗ Rather c o m p l i c a t e d expanded f o r m u l a s : ∗/
8 BSCall : S0 ∗ normcdf ( d1 ) − K∗ exp(− r ∗T) ∗ normcdf ( d2 ) ;
9 BSPut : K∗ exp(− r ∗T) ∗ normcdf(−d2 ) − S0 ∗ normcdf(−d1 ) ;
10 /∗ Numerical v a l u e s : ∗/
11 f l o a t ( ev ( BSCall ,K=100 , S0 =100 , r =0.01 , T=1, v =0.15) ) ;
12 f l o a t ( ev ( BSPut , K=105 , S0 =100 , r =0.01 , T=1, v =0.15) ) ;

Additional Macsyma expressions give the Black-Scholes Greeks:


Implementation 35

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 ) ;

2.4.1 Numerical Differentiation


To compute the Greeks for contingent claims, it often suffices to use numerical
approximations. These are computed from evaluation of the price function,
and thus generalize beyond the Black-Scholes formula to cases where the price
is modeled numerically.
A differentiable function f = f (x) of one variable has a derivative defined
by
def f (x + h) − f (x)
f 0 (x) = lim . (2.39)
h→0 h
This formula involves a limit as h → 0, so it may be approximated numerically
with fixed small h. The difference between the limit and the approximation,
which is called discretization error, decreases as h → 0. But if h is too small
and the calculations themselves are truncated to a certain number of digits,
then there is also truncation error that grows as h → 0. The total error in
practice is the sum of these errors, so h must be a compromise value, not too
small and not too large.
If f has continuous derivatives of all orders, and thus is well approximated
by its Taylor polynomial of degree 2 or higher, then the centered difference
approximation,
f (x + h) − f (x − h)
f 0 (x) = + O(h2 ), (2.40)
2h
has smaller discretization error as h → 0 than the formula in Eq.2.39. This is
easily proved:

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

def g(x1 + h, x2 , . . . ) − g(x1 , x2 , . . . )


D1 g = lim ,
h→0 h
and likewise for D2 , D3 , and so on. It is said to be smooth if it has continuous
higher order derivatives, and then the centered difference formula gives the
more accurate approximation
g(x1 + h, x2 , . . . ) − g(x1 − h, x2 , . . . )
D1 g(x1 , x2 , . . . ) = + O(h2 ), (2.41)
2h
and likewise for D2 , D3 , and so on.
A similar argument with Taylor expansions out to O(h4 ) gives the centered
difference formula for the second derivative:
f (x + h) − 2f (x) − f (x − h)
f 00 (x) = + O(h2 ). (2.42)
h2

Error estimation for O(h2 ) approximations


If f (x) varies smoothly with x, then the error in centered difference formulas
approximating f 0 or f 00 also varies smoothly with h. This may be used to
estimate the error.
Let A(x, h) be an approximation, using small parameter h, to a quantity
that is exactly equal to A(x, 0) = limh→0 A(x, h). If A(x, h) = A(x, 0)+O(h2 ),
and the dependence on h is smooth, then for small enough h the error will be
very close to ch2 for some fixed c. But then

A(x, h) = A(x, 0) + ch2 ,


A(x, 2h) = A(x, 0) + c(2h)2 = A(x, 0) + 4ch2 ,

so the error may itself be approximated by


|A(x, 2h) − A(x, h)|
= |ch2 | ≈ |A(x, h) − A(x, 0)|.
3
Namely, the absolute difference between two approximations, using h and 2h,
is roughly three times the error between the h approximation and the limiting
(exact) value. There is no need to find c, since only the order of approximation,
the exponent “2” in O(h2 ), plays a role.
Implementation 37

Delta by formula versus centered differences


As an experiment, the Delta of the European Call option may be computed
by centered differences with h = 0.1 and the result compared with the exact
value given by Eq.2.28:
T=1; S0=100; K=100; r=0.02; v=0.10;
h=0.1; Axh=(BS(T,S0+h,K,r,v)-BS(T,S0-h,K,r,v))/(2*h)
Ax2h=(BS(T,S0+2*h,K,r,v)-BS(T,S0-2*h,K,r,v))/(2*2*h)
err = abs(Ax2h-Axh)/3
d1=(log(S0/K)+T*(r+v^2/2))/(v*sqrt(T)); Ax0=normcdf(d1)

The approximate value is Axh=0.59870, with an estimated err=0.000002.


The exact value from the formula is Ax0=0.59871, to five decimal places.
Simlarly, other first-derivative Greeks may be approximated by varying other
inputs to function BS.

Gamma by formula versus centered differences


The second derivative Greek ΓC = ∂ 2 C/∂S02 may likewise be computed by
centered differences with h = 0.1 and the result compared with the exact value
given by Eq.2.30:
T=1; S0=100; K=100; r=0.02; v=0.10; h=0.1;
Gx=@(h)(BS(T,S0+h,K,r,v)+BS(T,S0-h,K,r,v)-2*BS(T,S0,K,r,v))/h^2;
Gxh=Gx(h), Gx2h=Gx(2*h), err=abs(Gx2h-Gxh)/3
d1=(log(S0/K)+T*(r+v^2/2))/(v*sqrt(T));
Gx0=normpdf(d1)/(v*S0*sqrt(T))

The approximate value is Gxh=0.038667, with an estimated err=0.0000003.


The exact value from the formula is Gx0=0.038667, to six decimal places.

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

p(x) = pn xn + pn−1 xn−1 + · · · + p1 x + p0 ,

and the conditions p(xi ) = yi for i = 0, 1, . . . , n imply that the coefficients


{pn , pn−1 , . . . , p1 , p0 } satisfy the linear system of equations
 
 n n−1  pn  
x0 x0 · · · x0 1  y0
p
xn1 xn−1 · · · x1 1  n−1   y1 

1   ..   
Vp = y; =  . .

 . .. .. .. ..   . 
 .. . . . .    .. 
 p1 
xnn xn−1
n · · · xn 1 yn
p0
If the xi ’s are distinct then V, which is called the Vandermonde matrix of x,
is invertible. The system may be solved with a few Octave/MATLAB com-
mands5 such as in this example:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; p=vander(x)\y
% p = 0.83333 -7.83333 25.16667 -28.16667 9.00000
(The output p is actually a column vector, as are x,y.) But the system may
also be solved with the Octave/MATLAB function polyfit():
deg=length(x)-1; p=polyfit(x,y,deg) % output p is a row vector
The argument deg=length(x)-1 specifies the degree of the polynomial to use.
The output for this method is a row vector [pn , pn−1 , . . . , p1 , p0 ]:
p = 0.83333 -7.83333 25.16667 -28.16667 9.00000

Each of these outputs corresponds to the same polynomial

p(x) = 0.83333x4 − 7.83333x3 + 25.16667x2 − 28.16667x + 9.00000


Having either row or column p, compute p(z) at any single point z or list of
points z = [z1 , z2 , . . . , zm ] with the Octave/MATLAB function polyval(p,z).
In particular, polyval(p,x) will return the vector y used to find p. Use this
to visualize the graph of the interpolating polynomial:
z=0:0.1:4; yy=polyval(p,z); plot(z,yy)

The results may be seen as part of Figure 2.1.


5 The usual notations vT and AT for the transposes of vectors and matrices are written

as v’ and A’ in MATLAB and Octave.


Implementation 39

Polynomial and Spline Fits to Interpolation Points (x,y)


12

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 ,

and there are 4n coefficients {cij : i = 1, . . . , n, j = 0, 1, 2, 3} to determine.


The algorithm to compute s is well known.6 It imposes 4n − 2 continuity
conditions plus two endpoint conditions for a total of 4n linear equations in
the 4n unknowns. There are various endpoint conditions with the simplest
being s00 (x0 ) = 0 and s00 (xn ) = 0, the so-called natural spline conditions.
The Octave/MATLAB function that finds a cubic spline s through
{(xi , yi )} is pp=spline(x,y). It returns a data structure pp that includes
6 See Mathews and Fink, p.284, in Further Reading below.
40 Continuous Models

a matrix coefs=(cij ). A subsequent function call ppval(pp,z) returns the


values of s(z) at a point z or vector z = [z1 , . . . , zk ].
For example, the spline fitted to the above example is computed by
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; pp=spline(x,y)
It may be visualized by plotting its values at many points z between the first
and last x points:
z=0:0.1:4; s=ppval(pp,z); plot(z,s);
The polynomial and spline interpolation graphs may be compared by plot-
ting them on the same axes, as seen in Figure 2.1:
plot(z,yy,"b--", z,s,"r-", x,y,"k+");
legend("polyfit(x,y,4)","spline(x,y)","(x,y)",...
"location","southeast");
title("Polynomial and Spline Fits to Interpolation Points (x,y)");

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.

Linear and quadratic regression


Simple linear regression is fitting the line f (x) = p1 x + p0 to a data set
{(xi , yi ) : i = 1, . . . , n}, where n ≥ 2 and there are at least two distinct x
values. The equation to be solved for p = (p1 , p0 ) is
   
x1 1 y1
 x2 1     y2 
 p1
Xp = y; ..  p =  ..  . (2.43)
  
 ..
 . .  0 .
xn 1 yn
When n > 2, this system is overdetermined and may not have a solution.
However, if there are at least two distinct x values, then the matrix
 
x1 1 P 2 P 
xi xi
x1 x2 · · · xn  x2 1 
  
T
X X=  .. . = P  (2.44)
1 1 ··· 1  . .. 
 P
xi 1
xn 1
will be invertible, and then there will be a unique least squares solution to the
normal equations
XT Xp = XT y. (2.45)
Implementation 41

The system may be solved with a few Octave/MATLAB commands such as


in the earlier example:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; X=[x ones(size(x))]; (X’*X)\(X’*y)

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

In this case, matrix QT Q will be invertible if n ≥ 3 and there are at least


three distinct x values. This computation is performed by polyfit() with the
degree parameter set to 2:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; deg=2; polyfit(x,y,deg)

The linear and quadratic regression graphs may be compared by plotting


them on the same axes as in Figure 2.2:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; z=0:0.1:4;
poly1=polyfit(x,y,1); poly2=polyfit(x,y,2); poly4=polyfit(x,y,4);
r1=polyval(poly1,z); r2=polyval(poly2,z); r4=polyval(poly4,z);
plot(z,r1,"b--", z,r2,"r.", z,r4, "k-",x,y, "k+");
legend("polyfit(x,y,1)","polyfit(x,y,2)","polyfit(x,y,4)",...
"location","southeast");
title("Linear and Quadratic Regression vs. Interpolation");

General least squares regression


More general than a polynomial is the linear combination

f (x) = p1 f1 (x) + p2 f2 (x) + · · · + pm fm (x),

where f1 , . . . , fm is a fixed set of functions, and p = (p1 , . . . , pm ) is a vector


of expansion coefficients that is chosen to minimize the squared error
 2
n n m
def
X X X
E(p) = (f (xi ) − yi )2 =  pj fj (xi ) − yi  .
i=1 i=1 j=1
42 Continuous Models

Linear and Quadratic Regression vs. Interpolation


15

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 )

The matrix FT F is invertible whenever the rows are linearly independent


vectors. This requires that f1 , . . . , fm be linearly independent functions and
that there be at least m distinct values in {x1 , . . . , xn }.
Special cases of this formula give linear and quadratic regression:
• Put m = 2 and use f1 (x) = x, f2 (x) = 1 to get F = X as in Eq.2.43.
• Put m = 3 and use f1 (x) = x2 , f2 (x) = x, and f3 (x) = 1 to get F = Q
as in Eq.2.46.
Implementation 43

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

As an alternative, the Octave function LinearRegression() returns p di-


rectly from inputs F(x) and y. It is in the package optim that may be down-
loaded from a public repository (https://octave.sourceforge.io/, in this
case) and installed via:
pkg install -forge optim % from Octave Forge
pkg load optim % contains LinearRegression()

(A particular Octave setup may require installing additional packages as well.)


Its result agrees with the previous pF except for truncation error differences:
pFa=LinearRegression(F(x),y); norm(pF-pFa); % negligible diff

The graph of f (z) = p1 f1 (z) + p2 f2 (z) + p3 f3 (z) may be plotted by evalu-


ating it at many intermediate points z. Since f is neither a polynomial nor a
spline, neither polyval() nor ppval() can be used. Instead, each coordinate
zi in the column vector z gives a row [f1 (z), f2 (z), f3 (z)] of the matrix F(z) ,
so F(z)p produces a column vector of values of f :
z=linspace(0,4,41)’; % must be a column vector to use with F
yF=F(z)*pF; % column vector of the best-fit function at z
plot(z,yF); % graph of the best-fit function at all z

Weighted least squares regression


Some of the y values may have less uncertainty than others and should be
fitted more closely. This is the case, for example, in an options chain at strike
prices K1 < · · · < Kn . The market-determined premium yi at a strike price
xi = Ki with large open interest is the consensus of many trades, making it
less uncertain7 than the premium at strike prices with small open interest.
To obtain the best unbiased8 fit, the squared error to be minimized when
fitting the data should have equal variance at each measurement. Thus, if the
variance of measurement yi is σi2 , then its contribution to the squared error
should be weighted by wi = 1/σi2 > 0, which in the options chain example is
just the open interest at xi . The weighted squared error is therefore
 2
n n m
def
X (f (xi ) − yi )2 X X
Ew (p) = 2 = wi  pj fj (xi ) − yi  .
i=1
σ i i=1 j=1

7 This conclusion is based on the Law of Large Numbers.


8 The Gauss-Markov theorem gives a precise definition of “best” and “unbiased.”
44 Continuous Models

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

Alternatively, the previously mentioned Octave function LinearRegression()


allows a weight vector to be specified. However, it assumes that the weights
are proportional
√ to 1/σi rather than 1/σi2 , so for the open interest example
the values wi must be used:
pWa=LinearRegression(F(x),y,sqrt(w)); norm(pW-pWa) % negligible

The special case with F = X merits additional simplification:

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)

This evaluates slope= 2.4444 and inter= -0.78889.


Implementation 45

Unweighted, Weighted, and Weighted Zero-Intercept Regression


12

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.

Another special case is zero-intercept weighted linear regression, where


m = 1 and f1 (x) = x and the fitted function is just f (x) = p1 x with
P
wi xi yi
Slope p1 = P .
wi x2i

The Octave/MATLAB commands for this example are very simple:


x=[0;1;2;3;4]; y=[9;-1;4;7;11]; w=[1;5;8;5;1];
slope=sum(w.*x.*y)/sum(w.*x.*x)

which returns the somewhat different slope= 2.1224.


Unweighted, weighted, and weighted zero-intercept linear regression graphs
may be compared by plotting them on the same axes as in Figure 2.3:
x=[0;1;2;3;4]; y=[9;-1;4;7;11]; w=[1;5;8;5;1]; W=diag(w);
z=0:0.1:4; punw=polyfit(x,y,1); yunw=polyval(punw,z);
X=[x ones(size(x))]; pw=(X’*W*X)\(X’*W*y); yw=polyval(pw,z);
pzi=sum(w.*x.*y)/sum(w.*x.*x); yzi=pzi*z;
plot(z,yunw,"b--", z,yw,"r.", z,yzi,"g-", x,y, "k*");
46 Continuous Models

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π −∞

be the cumulative distribution function of the standard normal random


variable. Prove that
1 − Φ(x) = Φ(−x)
for every x.
2. Rewrite the recursive definition of the random walk X in Section 2.2
with these normalizations:
p √
• Multiply by 1/ n/4 = 2/ n to have variance 1.
• Change the time step to 1/n so that the time interval is [0, 1].

3. Derive the Black-Scholes formula for European-style Put options,


Eq.2.26:
P (0) = e−rT KΦ(−d2 ) − S0 Φ(−d1 ).
(Hint: follow the steps in Section 2.3.1, but use the Put payoff
+
[K − S(T )] at expiry.)
4. Let d1 , d2 be defined as in Eq.2.24, and let φ be the standard normal
p.d.f. defined in Eq.2.18. Show that

S0 φ(d1 ) − Ke−rT φ(d2 ) = 0.



(Hint: Notice that d1 − d2 = v T and

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

8. Derive κC and κP in Section 2.3.3 from Black-Scholes.


9. Derive ρC and ρP in Section 2.3.3 from Black-Scholes.
10. Implement the computation of all the Black-Scholes Greeks in Octave or
MATLAB and add this functionality to the program BS() in Section 2.4.
Apply it to compute the premiums and all 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%, volatility 15%.
11. (a) Verify Eq.2.34 relating ΘC , ∆C , and ΓC .
(b) Find the equivalent relation for Puts and verify it.
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.
13. At one instant, two days before expiry, near-the-money Call options for
ABC common stock had the following prices:
Strike price Premium Open interest
44.00 3.80 3,260
45.00 2.77 4,499
46.00 1.77 3,862
47.00 0.78 6,271
48.00 0.18 10,156
49.00 0.03 10,619
50.00 0.01 14,219

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.

2.6 Further Reading


• Catherine Forbes, Merran Evans, Nicholas Hastings, and Brian Peacock.
Statistical Distributions (4th Edition). John Wiley & Sons, New York
(2010).
48 Continuous Models

• Gregory F. Lawler. Introduction to Stochastic Processes (2nd Edition).


Chapman & Hall/CRC Press, Boca Raton (2006).

• John H. Mathews and Kurtis K. Fink. Numerical Methods using


MATLAB (4th Edition). Pearson, Boca Raton (2004).
• Lars Tyge Nielsen. “Understanding N (d1 ) and N (d2 ): Risk-Adjusted
Probabilities in the Black-Scholes Model.” Revue Finance (Journal of
the French Finance Association) 14 (1993), pp.95–106.
• Mladen Victor Wickerhauser. Mathematics for Multimedia, Birkhäuser,
Boston (2010).
3
Discrete Models

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.

3.1 One-Step, Two-State Models


The simplest example Ω = {↑, ↓} is a set of only two possible future states,
denoted by the up state ↑ and the down state ↓ in order to boost intuition.
Likewise, the simplest discrete stochastic process is the one-step model. In
it there are only two times, t = 0 and t = T > 0, and so only one time step.
The state at t = 0 is known but the state at time t = T is modeled using Ω.
For a riskless asset B(t, ω) where the riskless return over time 0 ≤ t ≤ T
is R, the one-step two-state model assigns
B(T, ↓) = B(T, ↑) = RB(0).
1 In this notation, ω means the singleton, or one-element set {ω}.

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

S(T, ↓) < S(T, ↑).

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, ↑).

Proof: This is left as Exercise 1, at the end of the chapter. 2

3.1.1 Risk Neutral Probabilities


Write p = Pr(↑) and 1 − p = Pr(↓) for the probabilities of the two states in
Ω = {↑, ↓}. Let R be the riskless return over 0 ≤ t ≤ T . Then Theorem 1.4
implies
RS(0) = E(S(T )) = pS(1, ↑) + (1 − p)S(1, ↓).
Consider applying this model to decide whether to purchase a risky asset
S(t, ω) with
• S(0) = 100,
• S(T, ↑) = 120,
• S(T, ↓) = 90,
• R = 1.05.
In the absence of any other information, the two states may be assigned equal
probabilities, namely Pr(↑) = Pr(↓) = 0.5. Then the expected price of the asset
at time t = T is just the weighted average
def
X
E(S(T )) = Pr(ω)S(T, ω)
ω∈Ω
= Pr(↑)S(T, ↑) + Pr(↓)S(T, ↓)
= (0.5)(120) + (0.5)(90) = 105.

In this model, an investment of 100 at t = 0 is expected, though not guar-


anteed, to produce a profit of 5, or 5% of the invested 100 when the asset
is liquidated at t = T . That is a neutral outcome: the riskless return on the
same capital is RS(0) = 105.
But another perspective is to estimate the probabilities Pr(↑) and Pr(↓)
from the market price S(0), the riskless return R over time T , and the free
parameters S(T, ↑) and S(T, ↓). The main assumption will be Axiom 1: there
2 Otherwise, there is no risk!
One-Step, Two-State Models 51

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

S(T, ↑) − S(T, ↓) > RS(0) − S(T, ↓) > 0,

so 0 < p < 1. Likewise

S(T, ↑) − S(T, ↓) > S(T, ↑) − RS(0) > 0,

so 0 < 1 − p < 1. Clearly, p + (1 − p) = 1, so all the properties of a probability


function on Ω = {↑, ↓} are satisfied.
In the example above with R = 1.05, S(0) = 100, S(T, ↑) = 120, and
S(T, ↓) = 90, these probabilities are Pr(↑) = 0.5 and Pr(↓) = 0.5.
Remark. Risk neutral probabilities are denoted by π in much of the finan-
cial mathematics literature.

3.1.2 Pricing Derivatives by Hedging


Suppose that X(t) is a derivative, or contingent claim, on risky asset S, with
expiry T , so that X(T ) is a known function of S(T ). One method to find the
no-arbitrage premium, or price X(0), is to hedge, or replicate, asset X with
an equal-price portfolio containing S and a riskless asset B:

X(t) = h0 B(t) + h1 S(t).

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

X(T, ↑) = h0 B(T, ↑) + h1 S(T, ↑) = h0 R + h1 S(T, ↑),


X(T, ↓) = h0 B(T, ↓) + h1 S(T, ↓) = h0 R + h1 S(T, ↓),

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

S(T, ↑)X(T, ↓) − S(T, ↓)X(T, ↑) X(T, ↑) − X(T, ↓)


h0 = ; h1 = . (3.1)
(S(T, ↑) − S(T, ↓))R S(T, ↑) − S(T, ↓)
Applying Theorem 1.2, the one-price theorem, then gives

X(0) = h0 B(0) + h1 S(0), (3.2)

since X(T ) = h0 B(T ) + h1 S(T ) in all states.


52 Discrete Models

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:

def RS(0) − S(T, ↓)


p = Pr(↑) = . (3.3)
S(T, ↑) − S(T, ↓)

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.

Example: Call-Put parity formula


Eq.3.4 applies to European-style Call and Put options on the same underlying
risky asset S. It implies a relation between the premiums C(0) and P (0) for
strike price K and spot price S(0).
Let p and 1 − p be the risk neutral probabilities for S, and let R denote
the riskless return to expiry T . Then

RC(0) = pC(T, ↑) + (1 − p)C(T, ↓)


+ +
= p [S(T, ↑) − K] + (1 − p) [S(T, ↓) − K] .

Similarly,

RP (0) = pP (T, ↑) + (1 − p)P (T, ↓)


+ +
= p [K − S(T, ↑)] + (1 − p) [K − S(T, ↓)] .
One-Step, Two-State Models 53

Now combine these to eliminate the explicit dependence on p:


 
+ +
RC(0) − RP (0) = p [S(T, ↑) − K] − [K − S(T, ↑)]
 
+ +
+(1 − p) [S(T, ↓) − K] − [K − S(T, ↓)]
= p (S(T, ↑) − K) + (1 − p) (S(T, ↓) − K)
= pS(T, ↑) + (1 − p)S(T, ↓) − (p + 1 − p)K
= RS(0) − K.

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:

C(0) − P (0) = S(0) − K/R.

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.

Example: Pricing contingent premium options


Recall that a contingent premium option on a risky asset S costs nothing at
t = 0 but includes the obligation to pay a premium α > 0 if it is exercised
or expires “in the money,” namely with a positive payoff. This is a derivative
which may be priced using the backward pricing formula, giving an equation
that may be solved for α.
Consider first the European-style contingent premium Call option C on
S with strike price K and expiry T . Its payoff is actually the profit graph
depicted in Figure 1.3 on p.7, since the premium is charged at expiry. The
payoff to be hedged is thus
(
0, S(T ) ≤ K,
Cα (T ) =
S(T ) − K − α, S(T ) > K.

Since Cα (0) = 0, Eq.3.4 gives

pCα (T, ↑) + (1 − p)Cα (T, ↓)


0 = Cα (0) = ,
R
with risk neutral probability p determined from the model for S. There are
three cases to consider in the two-state model with S(T, ↑) > S(T, ↓), but two
of them may be excluded by the no-arbitrage axiom:
Case 1: If K > S(T, ↑) > S(T, ↓), then the option expires worthless in all
states yielding the uninformative identity
0p + 0(1 − p)
0= = 0.
R
54 Discrete Models

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,

using Eq.3.4 on S for the last equality. Solving for α gives

α = 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.

Unlike the previous example, this is a model-dependent price since p depends


on the model for S(T ).

Example: Unit portfolios in complete markets


The one-step, two-state model with riskless B and risky S gives unique hedge
ratios for any derivative X, precisely because its two-asset payoff matrix A is
nonsingular:
   
def B(T, ↓) B(T, ↑) R R
A = = ;
S(T, ↓) S(T, ↑) S(T, ↓) S(T, ↑)

det A = RS(T, ↑) − S(T, ↓)R = R [S(T, ↑) − S(T, ↓)] 6= 0.

The hedge ratios h0 , h1 of derivative X solve the linear system

(h0 h1 )A = (X(T, ↓) X(T, ↑)) , =⇒ (h0 h1 ) = (X(T, ↓) X(T, ↑)) A−1 .

Its solution is given by Eq.3.1 above.


A collection of assets which can hedge any derivative is called a complete
market. It remains complete if more assets are added, though then the hedge
ratios may not be uniquely determined.
One-Step, Two-State Models 55

Since the one-step, two-state model with S, B is complete, there is a basis


of elementary or unit portfolios3 that can hedge any derivative. There is one
unit portfolio for each state ω ∈ Ω that pays off 1 in its state and 0 in all
other states. Thus for Ω = {↑, ↓} there are two of them, W↑ and W↓ , with
their payoffs given by the standard basis (row) vectors (1 0) and (0 1) for
two-dimensional space:
( (
1, ω =↑, 0, ω =↑,
W↑ (T, ω) = W↓ (T, ω) = (3.5)
0, ω =↓; 1, ω =↓ .

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:

pW↑ (T, ↑) + (1 − p)W↑ (T, ↓) p


W↑ (0) = = ;
R R
pW↓ (T, ↑) + (1 − p)W↓ (T, ↓) 1−p
W↓ (0) = = .
R R
Note that these are model-dependent prices, as p depends on the underlying
assets and their modeled future prices.
Any derivative in a complete market may be hedged with unit portfolios,
and thus priced at time t = 0 in terms of its payoffs at time t = T . The general
form of this Arrow-Debreu expansion, for a derivative X, is
X
X(0) = Wω (0) X(T, ω),
ω∈Ω

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

3.1.3 Pricing Foreign Exchange Derivatives by Hedging


Suppose now that V is a derivative whose underlying asset is a foreign ex-
change portfolio, whose payoff therefore depends on the future exchange rate.
Recall Eq.1.2, which defines a foreign currency portfolio containing riskless
assets Bd in domestic currency DOM and Bf in foreign currency FRN, with a
risky exchange rate X giving the number of units of DOM needed to purchase
one unit of FRN. That portfolio may be used to hedge, or replicate, the foreign
exchange derivative:

V (t) = hd Bd (t) + hf X(t)Bf (t).


3 These are called Arrow-Debreu securities and will be defined more generally below.
56 Discrete Models

The two-state model Ω = {↑, ↓} gives two linear equations for hd , hf at t = T :

V (T, ↑) = hd Bd (T, ↑) + hf X(T, ↑)Bf (T, ↑) = hd Rd + hf X(T, ↑)Rf ,


V (T, ↓) = hd Bd (T, ↓) + hf X(T, ↓)Bf (T, ↓) = hd Rd + hf X(T, ↓)Rf ,

where Rd = Bd (T, ↑) = Bd (T, ↓) and Rf = Bf (T, ↑) = Bf (T, ↓) are the


riskless returns over time T in the two currencies. If X(T, ↑) 6= X(T, ↓) and
both Rd and Rf are nonzero, then this system has a unique solution. It may
be found by hand, or computed symbolically using the following Macsyma
code:
eq1: vTu=Hd*Rd+Hf*xTu*Rf;
eq2: vTd=Hd*Rd+Hf*xTd*Rf;
solve([eq1,eq2],[Hd,Hf]);

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 Bd (0) + hf X(0)Bf (0) = hd + hf X(0), (3.6)

since V (T ) = hd Bd (T ) + hf X(T )Bf (T ) in all states. Note that Bd (0) = 1


DOM and Bf (0) = 1 FRN, and that V is priced in DOM.

But Eq.3.6 may be rearranged to relate V (0) to its payoffs. Substituting


the formulas for proportions hf and hd yields:

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

Example: Risk neutral probabilities for multiple currencies


Suppose now that two foreign currencies, FRX and FRY, have respective
exchange rates X and Y . Let Rd , Rx and Ry be the riskless returns available
for deposits in DOM, FRX, and FRY, respectively. The spot exchange rates
X(0) and Y (0) are known at time 0, but at some future time T they are
modeled by X(T, ↑), X(T, ↓) and Y (T, ↑), Y (T, ↓). Then there seem to be two
risk neutral probabilities pX and pY for the portfolios of foreign exchange
assets FRX and FRY:
Rd Rd
Rx X(0) − X(T, ↓) Ry Y (0) − Y (T, ↓)
pX = , pY = .
X(T, ↑) − X(T, ↓) Y (T, ↑) − Y (T, ↓)
However, if there are no arbitrages, then these probabilities must in fact be
the same:
Theorem 3.2 In a one-step binomial model, the risk neutral probabilities for
foreign exchange portfolios are independent of the currency.
Proof: Let W↑X and W↑Y be the unit portfolios containing currencies FRX
and FRY, respectively, that pay 1 DOM at time T in the ↑ state and 0 in all
other states. Then the no-arbitrage backward pricing formula in the one-step,
two-state model gives
pX W↑X (T, ↑) + (1 − pX )W↑X (T, ↓) pX
W↑X (0) = = DOM,
Rd Rd
pY W↑Y (T, ↑) + (1 − pY )W↑Y (T, ↓) pY
W↑Y (0) = = DOM.
Rd Rd
However, these two portfolios have the same payoff at time T in all states:
W↑X (T, ↑) = W↑Y (T, ↑) = 1 DOM; W↑X (T, ↓) = W↑Y (T, ↓) = 0 DOM.
Therefore, by the One Price Theorem 1.2, they must have the same price now:
pX pY
W↑X (0) = W↑X (0), =⇒ = .
Rd Rd
Conclude that pX = pY . 2

3.1.4 Zero-Coupon Bonds of Different Maturity


Recall the notation used in Section 1.1.5: Z(t, T ) is the market price, at time
t ∈ [0, T ], of a zero-coupon bond that pays 1 at maturity t = T . This is a
risky asset with a known spot price Z(0, T ).
However, Z(t, 1) is a riskless asset in any discrete model where there are
no intermediate times 0 < t < 1. It provides a riskless return R over the short
time 0 ≤ t ≤ 1, which is related to zero-coupon bond discounts by
1
R= . (3.9)
Z(0, 1)
58 Discrete Models

For fixed longer maturities T > 1, consider a one-step binomial model


for Z(1, T ). This assumes two possible future prices, denoted Z(1, T, ↑) and
Z(1, T, ↓). The risk neutral probabilities of these states are
Z(0, T )R − Z(1, T, ↓)
p = Pr(↑) = ,
Z(1, T, ↑) − Z(1, T, ↓)
Z(1, T, ↑) − Z(0, T )R
1 − p = Pr(↓) = .
Z(1, T, ↑) − Z(1, T, ↓)
Note that Z(1, T, ↓) < Z(0, T )R < Z(1, T, ↑) or else there is an arbitrage
similar to the one constructed in the proof of Theorem 3.1.
Now let T 0 > 1 be another maturity date. Then Z(t, T 0 ) is an interest rate
contingent claim with a one-step binomial model no-arbitrage pricing formula
pZ(1, T 0 , ↑) + (1 − p)Z(1, T 0 , ↓)
Z(0, T 0 ) = .
R
The risk neutral probabilities p and 1 − p for all such claims are computed
using Z(1, T, ↑) and Z(1, T, ↓). After some algebra, solve for p in terms of
Z(1, T 0 , ↑) and Z(1, T 0 , ↓) to get
Z(0, T 0 )R − Z(1, T 0 , ↓)
p= .
Z(1, T 0 , ↑) − Z(1, T 0 , ↓)
This is the same formula as the one for maturity T . It would be the formula
used to find risk neutral probabilities for contingent claims with underlying
asset Z(t, T 0 ), and it gives the same result as for Z(t, T ). This proves:
Theorem 3.3 In a one-step binomial model, the risk neutral probabilities for
zero-coupon bonds are independent of the maturity date. 2
Now suppose that R(1, ↑) and R(1, ↓) are the two possible riskless returns in
the one-step binomial model of the future. They are related to zero-coupon
bond discounts by Eq.3.9 translated one time step into the future:
1 1
R(1, ↑) = , R(1, ↓) = .
Z(1, 2, ↑) Z(1, 2, ↓)
Since the risk neutral probabilities for Z(0, T ) are independent of T , they may
be used to find the no-arbitrage price Z(0, 2):
 
pZ(1, 2, ↑) + (1 − p)Z(1, 2, ↓) 1 p 1−p
Z(0, 2) = = + .
R R R(1, ↑) R(1, ↓)
Substituting for R from Eq.3.9 gives a constraint:
Corollary 3.4 In a one-step binomial model, the two future riskless returns
R(1, ↑) and R(1, ↓) must satisfy
p 1−p Z(0, 2)
+ = ,
R(1, ↑) R(1, ↓) Z(0, 1)
One-Step, Multistate Models 59

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−p p (1 − p)k [p + (1 − p)k]


= + = + = ,
Z(0, 1) R(1, ↑) R(1, ↓) R(1, ↑) R(1, ↑) R(1, ↑)
so
Z(0, 1)
R(1, ↑) = [p + (1 − p)k] ; R(1, ↓) = R(1, ↑)/k.
Z(0, 2)
Black, Derman and Toy: Write r = log(R), so R = er , and fix a ratio
def
σ = r(1, ↑)/r(1, ↓) between the future up and down rates. Then Corollary
3.4 determines r(1, ↓) uniquely from σ:

Z(0, 2) p 1−p p 1−p


= + = σr(1,↓) + r(1,↓) = pe−σr(1,↓) + (1 − p)e−r(1,↓) ,
Z(0, 1) R(1, ↑) R(1, ↓) e e
which is rather complicated but may be solved numerically. However, using
the degree-one Taylor approximation e−x ≈ 1 − x gives a linear equation:

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.

3.2 One-Step, Multistate Models


The simplest multistate models have Ω = {ω1 , . . . , ωn } while retaining the
assumption that there are only two times, t = 0 and t = T > 0.
Payoffs at time T of m assets in this model may be arranged into a matrix:
 
R ··· R
 a (T, ω1 ) · · · a1 (T, ωn ) 
def  1
A =  .

.. .. ..
 . . . 
am (T, ω1 ) · · · am (T, ωn )
60 Discrete Models

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)

Prices may be represented as matrix-vector products in this notation. A


portfolio x0 a0 + x1 a1 + · · · + xm am assembled from the assets {a0 , a1 , . . . , am }
corresponds to a column vector
 
x0
 x1 
x =  . ,
 
 .. 
xm

and it has spot price


m
X
xT q = xi ai (0),
i=0

and payoffs
m m
!
X X
T
x A= xi ai (T, ω1 ), . . . , xi ai (T, ωn ) ,
i=0 i=0

forming a row vector indexed by states in Ω.


The market is immediate-arbitrage-free (IA-free, using Definition 1) if ev-
ery portfolio with a nonnegative payoff vector has a nonnegative spot price:

(∀j) xT A(j) ≥ 0 =⇒ xT q ≥ 0.

It will be shown in Chapter 8 that in any arbitrage-free market, there is a


nonnegative vector k giving the spot prices in terms of the payoffs:4

q = Ak, (∀j)kj ≥ 0.

The first equation in this system is


n
X n
X
1 = Ak(0) = Rkj = R kj ,
j=1 j=1

4 This is called the Fundamental Theorem of Asset Pricing.


Multistep Binomial Models 61
def
so k may be normalized to give a risk neutral probability p = Rk, written
as the column vector    
p1 Pr(ω1 )
p =  ...  =  ...  .
   

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

3.3 Multistep Binomial Models


The (N + 1)-state model Ω = {ω0 , ω1 , . . . , ωN } arises naturally from the one-
step, two-state model when the time interval 0 ≤ t ≤ T is divided into N > 1
subintervals and N independent, random, unseen changes occur. This has
much in common with the random walk of Section 2.2.
The state labeled ωk is reached at time tN = T after k ↑ steps and N − k
↓ steps in any order. Thus there are
 
N def N!
=
k k!(N − k)!

equivalent paths to state ωk . The symbol N



k is read as “N choose k” and its
formula counts the number of ways to take exactly k ↑ steps in a total of N .
If each ↑ step has probability p and each ↓ step has probability 1 − p, and the
steps are independent, then ωk will have probability
 
def N k
Pr(ωk ) = b(k | N, p) = p (1 − p)N −k , k = 0, 1, . . . , N. (3.10)
k

This is the binomial probability function on Ω. A discrete random variable X


on Ω = {0, 1, . . . , N } with this probability function Pr(X = k) = b(k | N, p)
62 Discrete Models

is said to have the binomial distribution, on N independent trials, each with


success probability p. This may be stated in the notation of Eq.1.10 as

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 ,

The fair price formula then gives


N N  
X X N
RA(0) = E(A(T )) = Pr(ωk )A(T, ωk ) = A(0) (pu)k ([1 − p]d)N −k ,
k
k=0 k=0

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

which can only hold if pu + [1 − p]d = R1/N . Solving for p determines

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.

3.3.1 Recombining Models


In a recombining (binomial) model, the intermediate time steps are visible.
Time points {tn } are labeled by the discrete index n, where 0 ≤ n ≤ N . It
Multistep Binomial Models 63

may be assumed that 0 = t0 < t1 < · · · < tN = T . If the subintervals are of


equal width, then tn = 0 + nh, where h = T /N is the time step.
The number of accessible states of the world grows linearly with the time
index n. These states may be indexed by j with 0 ≤ j ≤ n at time tn , so that
ω(tn ) = j describes the world at time index 0 ≤ n ≤ N in state 0 ≤ j ≤ n.
The price of asset S at this time and state may be denoted S(tn , j) or, more
simply, S(n, j). The complete table of prices in such a model fits into the lower
triangular part of an N + 1 by N + 1 matrix:

 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 )

There are (N + 1)(N + 2)/2 nonzero parameters to specify. The moderate


complexity of this model allows N ≈ 10 000 on contemporary computers.
The riskless return R(n, j) over time step tn → tn+1 from state j is speci-
fied by a similar table of parameters:

 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 )

The no-arbitrage assumption imposes constraints on these models and thus


on the tables. In particular, it implies the inequalities

S(n + 1, j) < R(n, j)S(n, j) < S(n + 1, j + 1), (3.13)

for all time steps 0 ≤ n ≤ N − 1 and all states 0 ≤ j ≤ n.

3.3.2 Generalized Backward Induction Pricing


Suppose now that risky asset prices {S(n, j)} and riskless returns {R(n, j)}
are modeled in two recombining binomial trees of depth N . These tables of pa-
rameters determine the up factors, down factors, and risk neutral probabilities
64 Discrete Models

at each n, j with 0 ≤ n < N and 0 ≤ j ≤ n:


def
u(n, j) = S(n + 1, j + 1)/S(n, j); (3.14)
def
d(n, j) = S(n + 1, j)/S(n, j); (3.15)
def
p(n, j) = [R(n, j) − d(n, j)]/[u(n, j) − d(n, j)]; (3.16)
def
1 − p(n, j) = [u(n, j) − R(n, j)]/[u(n, j) − d(n, j)]. (3.17)

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.

Octave code to compute risk neutral up probabilities


Eq.3.16 leads to a straightforward implementation:
1 function pu = RiskNeut ( S , R, N)
2 % Octave /MATLAB f u n c t i o n t o compute r i s k n e u t r a l up
3 % p r o b a b i l i t i e 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 S ,R
4 % o f u n d e r l y i n g a s s e t p r i c e s and r i s k l e s s r e t u r n s .
5 % INPUTS : ( Example )
6 % S = a s s e t p r i c e m atrix (N+1 x N+1)
7 % R = r i s k l e s s r e t u r n s matrix (N x N)
8 % N = b i n o m i a l t r e e h e i g h t , must be >1 (3)
9 % OUTPUT:
10 % pu = N row ma t r ix o f r i s k n e u t r a l up p r o b s .
11 % EXAMPLE:
12 % S=[100 ,0 ,0 ,0;87 ,115 ,0 ,0;75 ,100 ,133 ,0;65 ,87 ,115 ,152]
13 % R= [ 1 . 0 2 5 , 0 , 0 ; 1 . 0 3 , 1 . 0 2 , 0 ; 1 . 0 3 5 , 1 . 0 2 5 , 1 . 0 1 ]
14 % pu=RiskNeut ( S , R, 3 )
15 %
16 pu = zeros (N,N) ; % a l l o c a t e t h e output matr ix
17 f o r ( n=0:N−1)
18 f o r ( j =0:n )
19 up = S ( n+2 , j +2)/S ( n+1 , j +1) ; % up f a c t o r
20 dn = S ( n+2 , j +1)/S ( n+1 , j +1) ; % down f a c t o r
21 pu ( n+1 , j +1) = (R( n+1 , j +1)−dn ) / ( up−dn ) ;
22 end
23 end
24 return
25 end

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.

Backward pricing of derivatives in recombining models


Suppose that asset W is a contingent claim or other derivative of S. This
relationship gives it a recombining model as well, with the same number of
rows, or time steps, and the same number of columns, or states, in each row.
The risk neutral probabilities for S and R apply5 to derivative W of S as well,
so they may be used to find the no-arbitrage spot price W (0, 0) from known
future prices by backward induction.
For example, if W is a European-style Call option C on S with strike price
K and expiry T corresponding to time n = N , the bottom-row prices for W
are determined by the parameters in the bottom row of the S tree and the
Call payoff formula:
def +
W (N, j) = C(N, j) = [S(N, j) − K] , j = 0, 1, . . . , N.
Likewise, if W is a European-style Put option P , the bottom-row prices are
determined by the parameters in the bottom row of the S tree and the Put
payoff formula:
def +
W (N, j) = P (N, j) = [K − S(N, j)] , j = 0, 1, . . . , N.
After populating the bottom row of the W tree with these values, the risk
neutral price W (0, 0) is computed by backward induction:
p(n, j)W (n + 1, j + 1) + [1 − p(n, j)]W (n + 1, j)
W (n, j) = , (3.18)
R(n, j)
where n = N − 1, . . . , 2, 1, 0 and j = 0, 1, . . . , n.
Note that values from the R tree only down to depth N − 1 are needed.
5 See the remark on complete markets just before Section 8.2.3, p.199.
66 Discrete Models

3.3.3 Arrow-Debreu Securities


In a discrete model of the future with finitely many states, some computations
may be simplified by using unit portfolios, assets constructed to have value
1 in a single state and 0 in all other states at some fixed future time T > 0.
These were introduced in 1954 by Kenneth Joseph Arrow and Gérard Debreu,
so they are called Arrow-Debreu securities. Other names for them are pure
securities, primitive securities, and state-price securities.
There will be N such unit portfolios in the case Ω = {ω1 , . . . , ωN }. They
may be indexed as Wj , j = 1, . . . , N . They have known future values in each
state: (
1, ω = ωj ,
Wj (T, ω) = j = 1, 2, . . . , N. (3.19)
0, ω 6= ωj ,
The price of an arbitrary portfolio W at any time t may be expanded in terms
of Arrow-Debreu securities {Wj }:
N
X
W (t, ω) = W (T, ωj )Wj (t, ω).
j=1

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.

Arrow-Debreu spot price by backward induction


One way to compute Wk (0) for a fixed state 0 ≤ k ≤ N at expiry is by the
recursive application of Eq.3.18.
Suppose that N > 0 and a fixed state index 0 ≤ k ≤ N are given, along
with the risk neutral up probabilities {p(n, j) : 0 ≤ n < N } and riskless
returns {R(n, j) : 0 ≤ j ≤ n)} for a recombining binomial model with N time
steps. Then the Octave code below computes Wk (0) = W(1, 1):
Multistep Binomial Models 67

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.

Computational complexity and profiling


Large discrete models may require large amounts of arithmetic and thus long
run times. There are several methods of judging these costs:
FLOP count. One FLOP, or floating-point operation, is a loosely defined
unit of computer arithmetic. It is typically a combination of operations needed
for linear algebra: one multiplication and one addition. In some cases, reading
and writing to internal memory are also included. FLOP counts may be esti-
mated from program source code. A single backward induction computation
of Wk (0) above requires approximately
N
X −1 X
n
(N + 1)2 + 1 + (10) ≈ 5(N + 1)2 , for large N ,
n=0 j=0

total FLOPs, counting assignments, additions, multiplications, and divisions


equally as one FLOP each and ignoring the index calculations. Another way
to estimate this is to count the number of computed elements in triangular
array W , which is N (N + 1)/2, and multiply that by the number of FLOPs
(about 10) per output element.
Order of complexity. This is an upper bound on the FLOP count and is
usually expressed in big-Oh notation. Adding two N × N matrices is said to
cost O(N 2 ) FLOPs, as N → ∞, since there are N 2 sums in total. The notation
means that there exists a constant C such that the actual number of FLOPs,
by whatever definition, is no more than CN 2 for all sufficiently large N . By
comparison, multiplying two such matrices costs O(N 3 ) FLOPs as N → ∞.
The larger power of N indicates that the time required for multiplication will
grow faster as N increases than the time required for addition.
Run time. Profiling an implementation is available in Octave and other
software systems to measure the actual time used by a function. This depends
on the host computer, so it is most useful for comparing programs on the same
computer. It can also estimate the order of complexity if used on successive
calculations with increasing N .
68 Discrete Models

For example, in Octave there is a profile command for this purpose:


N=200; M1N=rand(N,N); M5N=rand(5*N,5*N); % two big matrices
profile off; profile clear; profshow % show the reset timer
profile on; M1N*M1N; profile off; profshow; profile clear
profile on; M5N*M5N; profile off; profshow; profile clear

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.

3.3.4 Jamshidian’s Forward Induction Formula


A recombining binomial tree can find the spot prices of all the Arrow-Debreu
unit portfolios for all time steps and states at once.
Let λ(n, j) be the price at time t = 0 of the Arrow-Debreu security that,
at time step n, has price 1 in state j and price 0 in every other state j 0 6= j.
These prices may be arranged in a recombining binomial tree with N time
steps and available states 0, 1, . . . , n at time step n.
The key observation is that the Arrow-Debreu unit portfolio that pays 1
at n, j has a spot price that may be computed by a tree with n time steps
and known values in the bottom row n:
(
0 1, j 0 = j;
W (n, j ) =
0, j 0 6= j.
p(n0 , j 0 )W (n0 + 1, j 0 + 1) + [1 − p(n0 , j 0 )]W (n0 + 1, j 0 )
W (n0 , j 0 ) = ,
R(n0 , j 0 )
for n0 = n − 1, . . . , 1, 0 and j 0 = 0, 1, . . . , n. But since there is only one nonzero
term in row n, there are only two nonzero terms in row n − 1, namely

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,

Portfolio W decomposes into a linear combination of the two Arrow-Debreu


securities that pay 1 at states (n − 1, j) and (n − 1, j − 1). Evaluate6 W (0, 0) =
6 Apply the One Price Theorem.
Multistep Binomial Models 69

λ(n, j) in terms of their spot prices λ(n − 1, j) and λ(n − 1, j − 1):

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)

This gives a forward recursion as n = 1, 2, . . . , N with j = 0, 1, . . . , n. Together


with the initial condition λ(0, 0) = 1, Eq.3.21 is called Jamshidian’s forward
induction formula.
Note that λ(0, 0) = 1 follows from the definition of λ. Similarly, it follows
that λ(n, j) = 0 if j < 0 or j > n since there are no future states in which
these securities have nonzero value.
def
The cost to compute Λ = {λ(n, j) : 0 ≤ n ≤ N, 0 ≤ j ≤ n} by Jamshid-
ian’s induction is proportional to the number of prices that must be computed.
That is because each price is found by combining just two or fewer previous
prices with a fixed amount of arithmetic. But there are (N +1)(N +2)/2 prices
in this triangular array, a polynomial in N that is dominated by N 2 /2 as N
gets large. In the “big Oh” notation, computing Λ has O(N 2 ) complexity.
Arrow-Debreu security λ(n, j) may be priced individually, of course, using
a tree with (n + 1)(n + 2)/2 entries of which only the one at the top, with
(n0 , j 0 ) = (0, 0), is needed. There are (N + 1)(N + 2)/2 > N 2 /2 trees needed
to find all of Λ, and more than half of them have N/2 or more levels, so the
average cost is at least (N/2)2 /2 = N 2 /8. Thus, it takes at least N 4 /16
computations, or O(N 4 ) complexity, to use the individual tree algorithm.
Jamshidian’s induction computes only the final values and has far smaller
O(N 2 ) complexity.

Octave implementation of Jamshdian’s induction


To build a tree of Arrow-Debreu prices to depth N , the risk neutral prob-
abilities p(n, j) and the riskless returns R(n, j) must be specified to depth
N − 1.
1 function L = AD( p , R, N)
2 % Octave /MATLAB f u n c t i o n t o compute Arrow−Debreu
3 % p r i c e s by Jamshidian ’ s f o r w a r d i n d u c t i o n .
4 % INPUTS : ( Example )
5 % p = NxN m a tr i x o f up p r o b s . ( all 0.5)
6 % R = NxN m a tr ix o f r i s k l e s s Rs ( a l l 1 . 0 0 2 )
7 % N = b i n o m i a l t r e e h e i g h t , must be >1 (9)
8 % OUTPUTS:
9 % L = Arrow−Debreu p r i c e s lambda ( n , j ) .
10 % EXAMPLE:
11 % L = AD( 0 . 5 ∗ o n e s ( 9 , 9 ) , 1 . 0 0 2 ∗ o n e s ( 9 , 9 ) , 9 )
12 %
13 L=zeros (N+1,N+1) ; % a l l o c a t e t h e output matrix
14 L ( 1 , 1 ) =1; % s p e c i a l c a s e : lambda ( n=0, j =0)=1
15 L ( 2 , 1 ) =(1−p ( 1 , 1 ) ) /R( 1 , 1 ) ; % ( 1 , 0 ) i s s p e c i a l
16 L ( 2 , 2 )=p ( 1 , 1 ) /R( 1 , 1 ) ; % (1 ,1) i s special
70 Discrete Models

17 f o r n=2:N % rows n>1 need i n n e r j l o o p s :


18 L( n +1 ,1)=(1−p ( n , 1 ) ) ∗L( n , 1 ) /R( n , 1 ) ; % ( n , 0 )
19 L( n+1 ,n+1)=p ( n , n ) ∗L( n , n ) /R( n , n ) ; % (n , n)
20 f o r j =1:n−1 % ( n , j ) , 0<j <n
21 L( n+1 , j +1)=( p ( n , j ) ∗L( n , j ) /R( n , j )
22 + (1−p ( n , j +1) ) ∗L( n , j +1)/R( n , j +1) ) ;
23 end
24 end
25 return ; % L( n+1 , j +1) now h o l d s lambda ( n , j )
26 end

Remark. Because λ(n, j) = 0 if j < 0 or j > n, the recursion formula in


Eq.3.21 has a single term for λ(n, 0) and λ(n, n):

λ(n, 0) = (1 − p(n − 1, 0))λ(n − 1, 0)/R(n − 1, 0);


λ(n, n) = p(n − 1, n − 1)λ(n − 1, n − 1)/R(n − 1, n − 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).

Arrow-Debreu prices and state probabilities


Arrow-Debreu spot prices behave like probabilities in computing prices with
expansions like Eq.3.20. One way to visualize them is to plot a row, such
as the bottom row, of the output matrix of AD() with the Ocave/MATLAB
commands that produced Figure 3.1:
pkg load statistics % contains function binopdf()
N=10; p=0.5; R=1.002; Mat=ones(N,N);
L=AD(p*Mat,R*Mat,N); binNp=binopdf(0:N,N,p);
subplot(1,2,1); plot(L(N+1,:)); xlabel("Arrow-Debreu");
subplot(1,2,2); plot(binNp); xlabel("Binomial");

Note that the first two inputs to AD(p*Mat,R*Mat,N) must be N ×N matrices


even if the parameters are constant. Also, row λ(N, ) is in L(N+1,:) of the
output matrix because 0 is not a valid index in Octave or MATLAB.
Figure 3.1 suggests that for constant p and R, the Arrow-Debreu prices
have a (discounted) binomial distribution. This will be proven for the CRR
model below, where R and p are independent of time and state and there are
explicit formulas for the Arrow-Debreu prices.
Multistep Binomial Models 71

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).

3.3.5 Zero-Coupon Bonds and Interest Rate Constraints


Suppose that {R(n, j) : 0 ≤ n < N, 0 ≤ j ≤ n} is a recombining binomial
tree of riskless returns. Then interest rates can be modeled using zero-coupon
bond prices. This will expose some constraints on such models.
Recall the notation used in Section 1.1.5: Z(t, T ) is the market price, at
time t ∈ [0, T ], of a zero-coupon bond that pays 1 at maturity t = T . Now fix
N > 0 and let D(n, j) be the discount factor, at time step n in state j, of a
zero-coupon bond that expires at time step N . This may also be regarded as
the price of such a bond if its face value is 1. If the maturity time is t = T
and the present time is t = 0, then

D(n, j) = Z(tn , T ), if the state is j at time step n,


n
where tn = N T is the nth time step.
The terminal condition for D is evidently

D(N, j) = 1, j = 0, 1, . . . , N, (3.22)

since such a bond pays its face value at N regardless of state j.


No-arbitrage discount factors D(n, j) may be computed from riskless rates
R(n, j) and risk neutral probabilities p using the generalized backward pricing
72 Discrete Models

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.

Octave computation of discount rates from riskless returns


One way to test a model for R is to compute the predicted zero-coupon bond
discounts and then compare them with market prices. This may be done with
an Octave/MATLAB function based on Eqs.3.22 and 3.23.

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

3.4 The Cox-Ross-Rubinstein Model


In the Cox-Ross-Rubinstein (CRR) simplification of the general multistep
binomial model, u, d, R, p and 1−p are assumed to be constant and to depend
on the more basic parameters σ, or volatility, and r, the riskless interest rate.
With the time to expiry T divided into N equal steps, these formulas are:
def p
u(n, j) = u = exp(σ T /N ); (3.24)
def p
d(n, j) = d = exp(−σ T /N ) = 1/u;
def
R(n, j) = R = exp(rT /N );
def
p(n, j) = p = (R − d)/(u − d);
def
1 − p(n, j) = 1 − p = (u − R)/(u − d);
for all n, j with 0 ≤ n ≤ N and 0 ≤ j ≤ n.

Octave computation of CRR parameters


Eqs.3.24 are used so often that it pays to implement them separately.
1 function [ pu , up ,R] = CRRparams (T, r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o compute p a r a m e t e r s
3 % f o r t h e Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l t r e e .
4 % INPUTS : ( Example )
5 % T = time t o e x p i r y (1 year )
6 % r = r i s k l e s s APR (0.02)
7 % v = v o l a t i l i t y ; must be >0 (0.15)
8 % N = height of the binomial t r e e (10)
9 % OUTPUT:
10 % pu = r i s k −n e u t r a l up p r o b a b i l i t y .
11 % up = up f a c t o r
12 % R = r i s k l e s s r e t u r n o v e r dt
13 % EXAMPLE:
14 % [ pu , up ,R] = CRRparams ( 1 , 0 . 0 2 , 0 . 1 5 , 1 0 )
15 %
16 dt = T/N; % one time s t e p o f N i n [ 0 ,T ]
17 up = exp ( v∗ sqrt ( dt ) ) ; % up f a c t o r , w i l l be >1
18 down = 1/up ; % down f a c t o r , w i l l be <1
19 R = exp ( r ∗ dt ) ; % r i s k l e s s r e t u r n o v e r dt
20 pu = (R−down ) / ( up−down ) ; % r i s k −n e u t r a l up prob .
21 return ; % Parameters a r e a l l computed
22 end
There are constraints on the parameters σ, r, N, T imposed by the no-
arbitrage axiom. In particular, the risk neutral probability p must satisfy
0 < p < 1. This requires d < R < p, which implies
p p p
exp(−σ T /N ) < exp(rT /N ) < exp(σ T /N ) =⇒ −σ < r T /N < σ.
74 Discrete Models

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.

Octave computation of S(n, j) using CRR assumptions


In the CRR model, the asset price S(n, j) = S(0, 0)uj dn−j = S(0, 0)u2j−n is
completely determined for all n, j by the constant factor u = 1/d and the spot
price S(0, 0).
For a contingent claim whose value is determined by the price of S at
expiry, namely {S(N, j) : 0 ≤ j ≤ N }, only the bottom row of prices is
needed and it may be computed in O(N ) arithmetic operations. However,
more exotic derivatives may need intermediate prices as well, and then it is
useful to compute and store the whole tree of O(N 2 ) prices in a matrix, using
a separate function:
1 function S = StreeCRR ( S0 , up ,N)
2 % Octave /MATLAB f u n c t i o n t o compute t h e r e c o m b i n i n g
3 % binomial t r e e S of underlying a s s e t p r i c e s in the
4 % Cox−Ross−R u b i n s t e i n (CRR) model .
5 % INPUTS : ( Example )
6 % S0 = a s s e t s p o t p r i c e (100)
7 % up = up f a c t o r , must be > 0 (1.2)
8 % N = b i n o m i a l t r e e h e i g h t , must be >=0 (3)
9 % OUTPUT:
10 % S = (N+1)x (N+1) ma trix S ( n , j ) o f a s s e t p r i c e s .
11 % EXAMPLE:
12 % S = StreeCRR ( 1 0 0 , 1 . 2 , 3 )
13 %
14 S = zeros (N+1 ,N+1) ; % a l l o c a t e t h e output ma trix
15 f o r n=0:N % a l l time s t e p s up t o N
16 f o r j =0:n % s t a t e i n d i c e s a t time n
17 S ( n+1 , j +1)=S0 ∗up ^(2∗ j −n ) ;
18 end
19 end
20 return
21 end

3.4.1 Arrow-Debreu Decomposition in CRR


Under the CRR assumptions, it is possible to get a closed formula for Arrow-
Debreu securities prices {λ(N, j) : j = 0, . . . , N } using Jamshidian’s forward
induction.
7 Also, r is positive except in unusual negative interest rate scenarios. In those cases, the

constraint is |r| < σ.


The Cox-Ross-Rubinstein Model 75

Let p be the risk neutral probability of an up transition and R the riskless


return over one time subinterval. Then Eq.3.21 simplifies to
1−p p
λ(n, j) = λ(n − 1, j) + λ(n − 1, j − 1). (3.25)
R R
Lemma 3.5 Eq.3.25, with the initial condition λ(0, 0) = 1, has the unique
solution   j
n p (1 − p)n−j
λ(n, j) = . (3.26)
j Rn
for all n = 0, 1, 2, . . . and all j = 0, . . . , n.
Proof: Use induction on n.
For n = 0 there is only one state j = 0 and the initial condition guarantees
equality:   0
0 p (1 − p)0−0
λ(0, 0) = 1 = .
0 R0
Now suppose that Eq.3.26 is true for n−1 and all 0 ≤ j ≤ n−1. Fix 0 ≤ j ≤ n
and apply Eq.3.25 to compute
1−p p
λ(n, j) = λ(n − 1, j) + λ(n − 1, j − 1)
R  R
1 − p n − 1 pj (1 − p)n−1−j p n − 1 pj−1 (1 − p)n−j
  
= +
R j Rn−1 R j−1 Rn−1
n − 1 p (1 − p)n−j
 j
n − 1 pj (1 − p)n−j
  
= n
+
j R j−1 Rn
 j
p (1 − p)n−j
  
n−1 n−1
= +
j j−1 Rn
  j
n p (1 − p)n−j
=
j Rn
as claimed. The last step follows from the identity
   
n−1 n−1 (n − 1)! (n − 1)!
+ = +
j j−1 j!(n − 1 − j)! (j − 1)!(n − j)!
(n − 1)!(n − j) (j)(n − 1)!
= +
j!(n − j)! j!(n − j)!
 
(n − 1)!(n − j + j) n! n
= = = ,
j!(n − j)! j!(n − j)! j
which is known as Pascal’s triangle. 2
Lemma 3.5 implies that, in the CRR model, the no-arbitrage prices of Arrow-
Debreu securities with known values at expiry are just the binomial probabil-
ities with parameters N and p, discounted by e−rT = R−N :
 
N j
λ(N, j) = R−N p (1 − p)N −j = R−N b(j | N, p), (3.27)
j
76 Discrete Models
def
where b(j | N, p) = Nj pj (1 − p)N −j is the binomial probability function, the


probability of j successes in N independent trials, each with success probabil-


ity p. Combined with the Arrow-Debreau decomposition formula of Eq.3.20,
the CRR pricing of European-style options simplifies into a familiar formula:
Theorem 3.6 In the N -step CRR model for European-style options, the no-
arbitrage premiums are
N
X
C(0) = C(N, j)λ(N, j) = e−rT E(C(T )),
j=0
N
X
P (0) = P (N, j)λ(N, j) = e−rT E(P (T )),
j=0

where expectation is computed with the binomial probability function. 2

Example: European-style Call and Put premiums in CRR


Theorem 3.6, combined with Lemma 3.5 and Eq.3.27, may be implemented in
Octave to compute European-style option premiums with an N -step binomial
model in O(N ) FLOPS. Using CRR model parameters, the expiry values are
+ +
S0 u2j−N − K ,

C(N, j) = [S(N, j) − K] =
+ +
= K − S0 u2j−N ,

P (N, j) = [K − S(N, j)]

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

21 lAD=b i n o p d f ( Njs , N, pu ) ∗exp(− r ∗T) ; % A−D p r i c e s


22 C0=max( SNj−K, 0 ) ∗lAD ’ ; % i . p . with C a l l p a y o f f
23 P0=max(K−SNj , 0 ) ∗lAD ’ ; % i . p . with Put p a y o f f
24 return ; % Premiums C0 and P0 by A−D e x p a n s i o n
25 end

Remark. Since binopdf() is not in base Octave, it may be necessary to


install and then load its package (statistics), which should be done securely
from a trusted source like https://octave.sourceforge.io/, as follows:
pkg install -forge statistics % from Octave Forge
pkg load statistics % contains function binopdf()

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.

Arrow-Debreu formula for option premiums in CRR


Lemma 3.5 and Theorem 3.6 lead to a formula for European-style option prices
in terms of the CRR model parameters, in particular as a function of N . The
limit as N → ∞ then gives the continuous Black-Scholes model.
To find this formula, first consider the European-style Call option. Since
(
 2j−N
+ 0, S0 u2j−N < K,
S0 u −K = 2j−N
S0 u − K, S0 u2j−N ≥ K,

only states {j : S0 u2j−N > K} will contribute to the sum in Lemma 3.6.
Those satisfy the inequality

log SK0 N log K def


S0 u2j−N > K ⇐⇒ 2j − N > ⇐⇒ j > + p S0 = a,
log u 2 2σ T /N
p
since u = exp(σ T /N ) in the CRR model at volatility σ. Hence the CRR
model with N times steps produces
X N 
−N
pj (1−p)N −j S0 u2j−N − K .

C(0, 0) = R
j
a<j≤N

After some simplification, this may be rewritten in terms of the complementary


binomial distribution function,

def
X N 
B(x | N, p) = pj (1−p)N −j . (3.28)
j
x<j≤N
78 Discrete Models

Begin by splitting the sum into two parts:


X N 
R−N pj (1−p)N −j K = R−N KB(a | N, p),
j
a<j≤N

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

which may be further simplified by putting


R − u1 u − R1
 
def pu u
q = = 1 = , (3.29)
R u− u R u − u1
so that
(u − u1 ) − (u − 1 1
− u1
 
R) R 1 u−R 1−p
1−q = = = = .
u − u1 u − u1 Ru u − u1 Ru

Thus the second term is


X N 
S0 q j (1−q)N −j = S0 B(a | N, q).
j
a<j≤N

Combining the two terms gives the formula

C(0, 0) = S0 B(a | N, q) − R−N KB(a | N, p), (3.30)

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

3.4.2 Limit of CRR as N → ∞


To compute the limit8 of the discrete CRR formula in Eq.3.30 as N → ∞,
use the Taylor expansions of degrees 2 and 1 about x = 0 for the exponential
function, namely
x2
exp(x) = 1 + x + + O(x3 ) = 1 + x + O(x2 ),
2
8 Spoiler: the limit is the Black-Scholes Call formula, Eq.3.38 below.
The Cox-Ross-Rubinstein Model 79

to approximate p and q for large N , namely for small T /N , getting


 2  q q 3 
rT T T σ2 T T
[1 + N + O N ] − [1 − σ N + 2 N + O N ]
p = q  q 3  q q 3
T σ2 T T T σ2 T T
[1 + σ N + 2 N + O N ] − [1 − σ N + 2 N + O N ]
q  2
  q 3   2 
T
σ N + r − σ2 N T
+O N
T
+O N T

= 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

Proof: See Feller, An Introduction to Probability Theory and Its Applications,


Volume II, p.542, in Further Reading below. 2
To apply Theorem 3.7, suppose that 0 < s < 1 is given and let Y be the
random variable10 taking only the values 0 and 1, with probabilities

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

E(X) = (−s)(1 − s) + (1 − s)(s) = 0,


v = E(X 2 ) = (−s)2 (1 − s) + (1 − s)2 (s) = s(1 − s) > 0,
2

w = E(|X|3 ) = | − s|3 (1 − s) + |1 − s|3 (s) = s(1 − s)(s2 + [1 − s]2 ) < ∞.

Now let X1 , . . . , XN be independent copies of X, corresponding to independent


copies Y1 , . . . , YN of Y , and write the normalized sum
X1 + · · · + XN Y1 + · · · + YN − N s 1
SN = √ = √ = √ (ZN,s − N s) ,
v N v N v N
where ZN,s ∼ Binomial(N, s) is the binomial random variable counting the
number of successes in N independent trials, each with success probability s.
The cumulative distribution function FN of SN may be written in terms of
the complementary binomial distribution function B as follows:

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 .

Now use Theorem 3.7 to estimate B:


 √ 
1 − B xv N + N s | N, s − Φ(x) = |FN (x) − Φ(x)|

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

and thereby gives


!
y − Ns s2 + [1 − s]2
1 − B (y | N, s) − Φ < p (3.34)

p
s(1 − s)N s(1 − s)N

The inequality simplifies since 1 − Φ(z) = Φ(−z) for every z. Thus


!
Ns − y s2 + [1 − s]2
B (y | N, s) − Φ p < p (3.35)

s(1 − s)N s(1 − s)N

To use these estimates in the CRR model, put

N log K
y=a= + p S0
2 2σ T /N

and start with s = p in Eq.3.35 to get:


Ns − y Np − a
p = p
s(1 − s)N p(1 − p)N
K
log
N p − N2 − √ S0
2σ T /N
= p
p(1 − p)N
 2 q

r− σ T T log K
N 21 + 2σ2 − N2 − √ S0

N + O N 2σ T /N
= p
p(1 − p)N
σ2 √ log K
r− 2
2σ T − 2σ√ST0 
1

= p +O √ , as N → ∞.
p(1 − p) N
1
Now use the fact that limN →∞ p = 2 to compute
2
Np − a r − σ2 √ log K def
lim p = T − √S0 = z2 . (3.36)
N →∞ p(1 − p)N σ σ T
1
By a similar argument using the fact that limN →∞ q = 2 as well, compute
2
Nq − a r + σ2 √ log K def
lim p = T − √S0 = z1 . (3.37)
N →∞ q(1 − q)N σ σ T
82 Discrete Models

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)

3.4.3 CRR Greeks


Though the discrete Cox-Ross-Rubinstein option price modeled with N time
steps converges to the Black-Scholes price as N → ∞, the same is not true
for Deltas or Gammas, the derivatives with respect to S. The problem is that
+ +
neither [S − K] nor [K − S] is differentiable with respect to S at S = K.
They are in fact piecewise linear functions of S with slope jumping from 0 to
1 (or −1 to 0) at K. This is evident in Figure 1.2 on p.6.
Replacing S by its bottom level CRR price S0 u2j−N in state j shows that
 +  +
neither S0 u2j−N − K nor K − S0 u2j−N is differentiable with respect to
S0 at K/u2j−N . Because the CRR option premium is a linear combination of
those payoff functions, its graph11 (as a function of S0 ) will be piecewise linear
with joints at K/u2j−N . As N → ∞, the joints will get closer together and the
graph will appear smoother, but for any finite N there will be jumps in Delta
at all those joints. Those jumps are small for large N , but they invalidate the
centered difference formula for Delta in Eq.2.40. In particular, it is not true
that the error is O(h2 ) as h → 0.
Gammas computed from CRR models with second derivative centered dif-
ferences, as in Eq.2.42, have even worse behavior. Because the second deriva-
tives of the piecewise linear CRR approximation can be infinite at joints, they
may have no relation to the Black-Scholes values. In this case, an alterna-
tive numerical differentiation method is needed. A quadratic polynomial q(s)
is interpolated through the option values at three prices near s = S0 . Then
q 0 (S0 ) approximates Delta, while the second derivative q 00 (S0 ) of the quadratic
polynomial approximates Gamma.
It is necessary to use sampled prices that are on different segments of the
piecewise linear graph. Otherwise, the interpolation points could be collinear.
The critical spacing is the distance between the joints nearest S0 ≈ K/u2j−N ,
namely  
K K K
≈ d2 S0 , S0 , u2 S0 ,

, , (3.39)
u2(j+1)−N u2j−N u2(j−1)−N
11 It is left as an exercise to plot CRReurAD() with small N , in terms of S0 , to see this.
The Cox-Ross-Rubinstein Model 83

where d = 1/u. Note that the critical spacing is approximately


def K K p
h0 = − ≈ S0 (u2 − 1) ≈ 2S0 v T /N , (3.40)
u2(j−1)−N u2j−N
√ p
since u2 = e2v T /N and 2v T /N is small when N is large. The three points
in Eq.3.39 should be used in the quadratic interpolation method, described
on p.37, as implemented by the following Octave code:

T=1; S0=100; K=100; r=0.02; v=0.10; N=100;


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=CRReurAD(T,S0,K,r,v,N); % C(0) at S0
Cu=CRReurAD(T,S0*u2,K,r,v,N); % ...at S0*u^2
Cd=CRReur(T,S0/u2,K,r,v,N); % ...at S0/u^2
y=[Cd, C0, Cu]; % ordinates for interpolation
p=polyfit(x,y,2); DeltaC=p(2), GammaC=2*p(1)

Output vector p=[a b c] is the coefficients of the shifted quadratic interpo-


lating polynomial
q(S0 + x) = ax2 + bx + c,
so ∆C ≈ q 0 (S0 ) = b = p(2) and ΓC ≈ q 00 (S0 ) = 2a = 2 ∗ p(1). The approxi-
mate values DeltaC=0.59809 and GammaC=0.038568 agree to more than two
decimal places with the Black-Scholes Greeks computed on p.37.
Remark. Coefficient b from quadratic interpolation is given by the divided
differences formula12
 
1 f (xu ) − f (x0 ) f (x0 ) − f (xd )
b= − ,
xu − xd xu − x0 x0 − xd

where x0 = S0 , xd = d2 S0 , xu = u2 S0 , and f (x) is the option premium at


spot price x. This is the formula derived in the paper by Pelsser and Vorst
in Further Reading below. Note that the denominators are unchanged by the
shift x ← x − S0 .

The Black-Scholes Call premium may be computed by Octave and com-


pared with the N = 100 CRR approximation as follows:
C=BS(T,S0,K,r,v); C, C0 % C(0) from BS vs. CRR

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

S(T, ↓) < RS(0) < S(T, ↑).

(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

d < R1/N < u.

(b) Use the Fair Price Theorem 1.4 to prove the same inequalities.
Exercises 85

3. Suppose that a portfolio X contains risky stock S and riskless bond B


in amounts h0 , h1 :
X(t, ω) = h0 B(t, ω) + h1 S(t, ω).
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.)
4. In Exercise 3 above, suppose that X is a European-style Call option for
S with expiry T and strike price K. Use the payoff formula X(T ) =
+
[S(T ) − K] in the equation for h1 to prove that
0 ≤ h1 ≤ 1.
Conclude that, in this model of the future, a European-style Call option
for S is equivalent to a portfolio containing part of a share of S plus or
minus some cash.
5. In Exercise 3 above, suppose that X is a European-style Put option for
S with expiry T and strike price K. Use the payoff formula X(T ) =
+
[K − S(T )] in the equation for h1 to prove that
−1 ≤ h1 ≤ 0.
Conclude that, in this model of the future, a European-style Put option
for S is equivalent to a portfolio containing part of a share of S sold
short plus or minus some cash.
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.
(a) Use a LibreOffice Calc spreadsheet to implement the Cox-Ross-
Rubinstein (CRR) model to compute C(0) and P (0) with N = 10 time
steps, using the backward pricing formula in Eq.3.18. (Hint: compare
output with CRReurAD() to check for bugs.)
(b) Use the Octave function CRReurAD() with N = 10, N = 100, and
N = 1000 time steps to compute C(0) and P (0).
(c) Repeat part (b) with the Octave function CRReur() on p.88, again
using N = 10, N = 100, and N = 1000 time steps to compute C(0) and
P (0). Profile the time required to compute them, and compare the time
and the output with that of CRReurAD().
(d) Compare the prices from parts (b) and (c). Is it justified to use
N = 1000? Is N = 10 sufficiently accurate?
86 Discrete Models

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

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].
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.

3.6 Further Reading


• Fischer Black, Emanuel Derman, and William Toy. “A One Factor Model
of Interest Rates and its Application to Treasury Bond Options.” Finan-
cial Analysts Journal 46 (1990), pp.33–39.
• John C. Cox, Stephen A. Ross, and Mark Rubinstein. “Option Pricing:
A Simplified Approach.” Journal of Financial Economics 7:3 (1979),
pp.229–263.
• William Feller. An Introduction to Probability Theory and Its Applica-
tions, Volume II (2nd Edition). John Wiley & Sons, Inc., New York
(1971).
• Thomas S. Y. Ho and Sang-Bin Lee. “Term Structure Movements and
Pricing Interest Rate Contingent Claims.” Journal of Finance 41 (1986),
pp.1011–1029.
• Antoon Pelsser and Ton Vorst. “The Binomial Model and the Greeks.”
Journal of Derivatives 1 (1994), pp.45–49.
4
Exotic Options

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.

4.1 Recombining Binomial Tree Prices


Unlike the Black-Scholes formula for European-style option prices, CRR does
not provide a simple exact formula that can be evaluated in a fixed number
O(1) of FLOPs.
The fastest discrete algorithm is an Arrow-Debreu expansion for spot
prices in CRR, using the binomial p.d.f. on N states at expiry as in AD().
It has very low O(N ) complexity.
The backward induction algorithm for CRR options pricing is not quite
as fast. Counting the number of quantities needed to fill a recombining bino-
mial tree with N steps, there are about N 2 /2 prices to compute. Each price
requires a fixed amount of arithmetic with the stored values u, d, R, p, so the
total number of operations is O(N 2 ). This is costlier than O(N ) but is still
considered low computational complexity.
Computations using the whole model are needed to price exotic contingent
claims affected by events at times t between purchase (t = 0) and expiry
(t = T ). The backward induction algorithm can be modified to accommodate
early exercise, dividend payments, barrier price encounters, or other features,
justifying the higher order of complexity.
Some exotic contingent claims are path dependent, affected by intermediate
states as well as the terminal state at expiry. In general, this requires a binary
tree model which, for N time steps, contains O(2N ) prices. This severely limits
N in practice but otherwise offers the greatest flexibility of all.

87
88 Exotic Options

4.1.1 European-Style Options in CRR


In the Cox-Ross-Rubinstein model, prices are computed by backward induc-
tion from the bottom row:
+ +
C(N, j) = S0 uj dN −j − K = S0 u2j−N − K , 0 ≤ j ≤ N ;
 

pC(n+1, j+1) + [1−p]C(n+1, j)


C(n, j) = , n = N −1, . . . , 0, 0 ≤ j ≤ n.
R
Likewise, for the European-style Put option,
+ +
P (N, j) = K − S0 uj dN −j = K − S0 u2j−N , 0 ≤ j ≤ N ;
 

pP (n+1, j+1) + [1−p]P (n+1, j)


P (n, j) = , n = N −1, . . . , 0, 0 ≤ j ≤ n.
R
The inductive step is the same for both, only the bottom row of the tree gets
different terminal values. It is reasonable to perform both with the same loop.

Octave implementation of CRR for European-style options


Since array indices in Octave (and MATLAB, and Fortran) start at 1, the Call
and Put premiums at time 0 are stored at C(1,1) and P(1,1), respectively.
In general, the prices at nodes C(n, j) and P (n, j) are stored at C(n+1,j+1)
and P(n+1,j+1), respectively.
1 function [ C, P ] = CRReur (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 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 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 % 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 ] = CRReur ( 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 SNj=S0 ∗up ^(2∗ j −N) ; % Expiry p r i c e S (N, j )
23 C(N+1 , j +1)=max( SNj−K, 0 ) ; % P l u s p a r t o f ( SNj−K)
24 P(N+1, j +1)=max(K−SNj , 0 ) ; % P l u s p a r t o f (K−SNj )
25 end
Recombining Binomial Tree Prices 89

26 f o r n=N−1: −1:0 % Price e a r l i e r grid values


27 f o r j =0:n % . . . with t h e backward p r i c i n g f o r m u l a
28 C( n+1 , j +1)=(pu∗C( n+2 , j +2)+(1−pu ) ∗C( n+2 , j +1) ) /R;
29 P( n+1 , j +1)=(pu∗P( n+2, j +2)+(1−pu ) ∗P( n+2, j +1) ) /R;
30 end
31 end
32 return ; % P r i c e s i n C and P a r e now f u l l y d e f i n e d .
33 end

The cost of CRR in arithmetic over Black-Scholes formula evaluations is


justified by the much greater flexibility of CRR in modeling exotic options. A
few examples are described and implemented in the next sections.

4.1.2 American-Style Options in CRR


An American-style option can be exercised at any time up to and including its
expiry. This additional right does not affect its price at expiry time T , when
+ +
the Call option is worth [S(T ) − K] and the Put option is worth [K − S(T )]
just like the European-style option. However, the right of early exercise affects
its price at intermediate times. In the CRR model, this changes the backward
induction to include the early exercise value.
For the American-style Call option,
+  +
S0 uj dN −j − K = S0 u2j−N − K , 0 ≤ j ≤ N ;

C(N, j) =
+  +
CExercise = S0 uj dn−j − K = S0 u2j−n − K ,


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.

Likewise, for the American-style Put option,


+  +
K − S0 uj dN −j = K − S0 u2j−N , 0 ≤ j ≤ N ;

P (N, j) =
+  +
PExercise = K − S0 uj dn−j = K − S0 u2j−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.

These computations are similar enough to be combined into one function.

Octave implementation of CRR for American-style options

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

4.1.3 Binary Options in CRR


A binary option is like a European-style option on a stock S with strike price
K but with a fixed payoff B at expiry T if it finishes “in the money.” That
means S(T ) > K for a Call, or S(T ) < K for a Put.
Prices are first set at expiry, in the bottom row N :
( (
B, S0 ui dN −i > K, B, S0 ui dN −i < K,
C(N, i) = P (N, i) =
0, otherwise; 0, otherwise,

for i = 0, 1, . . . , N . All other prices are computed by backward induction.


Remark. Prices C(n, j) and P (n, j) are proportional to B, so it is sufficient
to compute them for B0 = 1 and then multiply the results by any desired B.
Recombining Binomial Tree Prices 91

Octave implementation of CRR for binary options


These are also similar enough to be combined into one function. In this version,
the fixed payoff B is retained as an input parameter.
1 function [ C, P ] = CRRbin (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 b i n a r y C a l l and Put
3 % 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) model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time i n y e a r s (1)
6 % S0 = s p o t s t o c k p r i c e (90)
7 % K = strike price (95)
8 % B = payoff at expiry (20)
9 % r = r i s k −f r e e y i e l d p e r y e a r (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 % C = Call option p r i c e at a l l g r i d p o i n t s (n , j ) .
14 % P = Put o p t i o n p r i c e a t a l l g r i d p o i n t s ( n , j ) .
15 % EXAMPLE:
16 % [ C, P ] = CRRbin ( 1 , 9 0 , 9 5 , 2 0 , 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 SNj = S0 ∗ up ^(2∗ j −N) ; % A s s e t p r i c e S (N, j )
23 i f ( SNj > K )
24 C(N+1 , j +1) = B ; % . . . t r i g g e r t h e C a l l p a y o f f
25 end
26 i f ( SNj < K )
27 P(N+1, j +1) = B ; % . . . t r i g g e r t h e Put p a y o f f
28 end
29 end % . . . o t h e r w i s e t h e p a y o f f i s z e r o .
30 f o r n = N−1: −1:0 % Price e a r l i e r grid values
31 f o r j = 0 : n % . . . by backward p r i c i n g f o r m u l a
32 C( n+1 , j +1)=(pu∗C( n+2 , j +2)+(1−pu ) ∗C( n+2 , j +1) ) /R;
33 P( n+1, j +1)=(pu∗P( n+2, j +2)+(1−pu ) ∗P( n+2, j +1) ) /R;
34 end
35 end
36 return ; % P r i c e s i n m a t r i c e s C and P a r e a l l d e f i n e d .
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

4.1.4 Compound Options in CRR


A compound option is a European-style Call with strike price L and expiry
at a fixed future time T1 . What makes it exotic is that the asset possibly to
be purchased is itself an option. Thus there is another underlying risky asset
S and some additional parameters: spot price S0 at time 0, strike price K for
S, and final expiry T , with 0 < T1 < T .
For example, suppose that the option to be purchased is a European-style
Call. Denote its price at time t to be C(t) for 0 ≤ t ≤ T . Then at T1 its value
will be C(T1 ).
Denote the price of the compound Call option at time t by W (t). Its value
+
at time T1 is then [C(T1 ) − L] , since it would only be exercised if it allowed
the cheaper purchase of C at price L. The price W (0) may then be computed
using backward induction from these known values W (T1 ).
Two multistep binomial trees are needed to price the compound Call. One
+
is needed to find C(T1 ) from the known prices C(T ) = [C(T ) − K] . The
second, smaller tree will then find W (0) by backward induction from W (T1 ) =
+
[C(T1 ) − L] .
The first induction formula is thus
+ +
C(N, j) = S0 uj dN −j − K = S0 u2j−N − K ;
 

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.

Octave implementation of CRR for compound Call options

1 function [W, C ] = CRRcc(T, T1 , S0 , K, L , r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e a compound C a l l o p t i o n
3 % u s i n g t h e Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time i n y e a r s (1)
6 % T1 = c h o i c e time ; must have 0<T1<T (0.5)
Recombining Binomial Tree Prices 93

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

4.1.5 Chooser Options in CRR


A chooser option is a contract granting the right to choose either a European-
style Call option or Put option at strike price K, with the choice to be made
at a fixed future time T1 but before expiry time T . Thus 0 < T1 < T . At T1
the value of the chooser option will be the greater of the Call and Put prices
with expiries T − T1 . Thus the chooser option’s premium may be computed
by backward induction from expiry prices max(C(T1 ), P (T1 )):

W (M, i) = max(C(M, i), P (M, i)), 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, and M = bT1 N/T c.

Octave implementation of CRR for chooser options


Three multistep binomial trees are used to price the chooser option. Two of
them find the European-style Call and Put option prices at time T1 for options
with expiry T , and they may be computed with the previous implementation:
94 Exotic Options

[C,P]=CRReur(T,S0,K,r,v,N). The third requires its own backward induc-


tion loop from max(C,T) at bottom row M .
1 function [W, C, P ] = CRRcho(T, T1 , S0 , K, r , v , N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e a c h o o s e r o p t i o n
3 % with t h e Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l model .
4 % INPUTS : ( Example )
5 % T = e x p i r y time i n y e a r s (1)
6 % T1 = c h o i c e time ; must have 0<T1<T (0.5)
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 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 % W = p r i c e of the chooser option
14 % 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
15 % P = p r i c e o f t h e v a n i l l a European Put o p t i o n
16 % EXAMPLE:
17 % [W, C, P ] = CRRcho ( 1 , 0 . 5 , 9 0 , 9 5 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
18 % W( 1 , 1 ) ,C( 1 , 1 ) ,P( 1 , 1 ) % g e t j u s t W( 0 ) ,C( 0 ) , and P( 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) ; % p r i c e C, P from e x p i r y T
22 M=f l o o r ( T1∗N/T) ; % number o f time s t e p s b e f o r e T1
23 W=zeros (M+1 ,M+1) ; % s m a l l e r output matr ix W
24 f o r j = 0 :M % 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) , P(M+1 , j +1) ) ; % c h o o s e
26 end % C a l l and Put p r i c e s a t time T1 i n i t i a l i z e W
27 f o r n = M−1: −1:0 % s t a r t a t t e r m i n a l time M
28 f o r j = 0 : n % Bi nom ial 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 % . . . backward i n d u c t i o n f i l l s W.
31 end
32 return ; % P r i c e s i n m a t r i c e s W, C, and P a r e d e f i n e d .
33 end

4.1.6 Forward Start Options in CRR


A forward start option is an exotic derivative that is equivalent to a vanilla
option with expiry T but with a strike price equal to the underlying stock
price at a fixed future time T1 , where 0 < T1 < T . There are two types: a
forward start Call and a forward start Put, each with its premium that may
be computed in the CRR model by backward induction.
Multiple multistep binomial trees are needed to price each forward start
option. All but one of them are needed to find the vanilla Call or Put option
prices at time T1 for options with expiry T and different at-the-money strike
Recombining Binomial Tree Prices 95

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 .

Second, model the vanilla option prices vC or vP at time T1 for each of


the strike prices K(j), j = 0, 1, . . . , M . This may be done for both with M + 1
uses of CRReur(): for each j = 0, 1, . . . , M , compute

[C, P ] = CRReur(T, S0 , K(j), r, v, N );


def
vC(j) = C(M, j),
def
vP (j) = P (M, j).

(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.

Octave implementation of CRR for forward start options

1 function [ C, P ] = CRRfws (T, S0 , T1 , r , v , N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e f o r w a r d s t a r t
3 % C a l l 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
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 i n y e a r s (1)
7 % S0 = s p o t s t o c k s p o t p r i c e (90)
8 % T1 = s t r i k e p r i c e s e t time ; 0<T1<T (0.5)
96 Exotic Options

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

4.1.7 Barrier Options


Barrier options are a class of exotic derivatives engineered to have a lower
premium than their vanilla versions by removing some extreme world states
from consideration. The “barrier” is a price for the underlying asset that, if
reached, either
• voids the option, for knock-out barrier options, or
• activates the option, for knock-in barrier options.
There are two up-and-in, and two down-and-in, knock-in barrier options,
Call and Put. Similarly, there are four knock-out barrier options, up-and-out
and down-and-out Calls and Puts. The barrier may be above or below the
Recombining Binomial Tree Prices 97

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.

Octave implementation of CRR Up-and-In barrier Call


This Call option is activated when the underlying asset price equals or exceeds
the barrier price B, after which it behaves like a vanilla European Call. To
price it in the CRR binomial model, first price the asset S and the vanilla
Call V in their own binomial trees. The backward induction from level N has
this terminal condition: for j = 0, 1, . . . , N ,
(
+
i def V (N, j) = [S(N, j) − K] , S(N, j) ≥ B,
C (N, j) =
0, S(N, j) < B.

The backward pricing formula also tests the barrier: for j = 0, 1, . . . , n,


(
i V (n, j), S(n, j) ≥ B,
C (n, j) = i i
[p C (n + 1, j + 1) + (1 − p) C (n + 1, j)]/R, S(n, j) < B,

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

17 % [ uiCa , eCa ] = CRRuiC ( 1 , 1 0 0 , 8 0 , 1 2 0 , 0 . 0 5 , 0 . 2 0 , 4 0 ) ;


18 %
19 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
20 E x o t i c=zeros (N+1 ,N+1) ; V a n i l l a=zeros (N+1,N+1) ;
21 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
22 SNj = S0 ∗up ^(2∗ j −N) ; % a s s e t p r i c e S (N, j )
23 V a n i l l a (N+1, j +1)=max( SNj−K, 0 ) ; % p l a i n Eur . C a l l
24 i f ( SNj < B) % b a r r i e r not exceeded , s o no E x o t i c
25 E x o t i c (N+1 , j +1) = 0 ;
26 e l s e % b a r r i e r exceeded , s o E x o t i c i s c r e a t e d
27 E x o t i c (N+1 , j +1) = V a n i l l a (N+1 , j +1) ;
28 end
29 end % Now p r i c e e a r l i e r v a l u e s by i n d u c t i o n :
30 f o r n = (N−1) :( −1) : 0 % g r i d t i m e s n={N− 1 , . . . , 0 }
31 f o r j = 0 : n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
32 V a n i l l a ( n+1 , j +1)=( pu∗ V a n i l l a ( n+2 , j +2) . . .
33 + (1−pu ) ∗ V a n i l l a ( n+2 , j +1) ) /R; % a l l c a s e s
34 % Test t h e b a r r i e r
35 Snj = S0 ∗up ^(2∗ j −n ) ; % a s s e t p r i c e S ( n , j )
36 i f ( Snj<B) % b a r r i e r not exceeded , s o u s e E x o t i c
37 E x o t i c ( n+1 , j +1)=(pu∗ E x o t i c ( n+2 , j +2) . . .
38 +(1−pu ) ∗ E x o t i c ( n+2 , j +1) ) /R; % b i n . p r i c e
39 else % b a r r i e r exceeded , s o u s e V a n i l l a
40 E x o t i c ( n+1 , j +1) = V a n i l l a ( n+1 , j +1) ;
41 end
42 end
43 end
44 return % P r i c e s a r e i n m a t r i c e s E x o t i c and V a n i l l a .
45 end

Octave implementation of CRR Up-and-Out barrier Call


Here the Call option is voided when the underlying asset price hits the barrier
price B. To price it in the CRR binomial model, first price the asset S and the
vanilla Call V in their own binomial trees. The backward induction from level
N reverses the terminal conditions of the up-and-in Call: for j = 0, 1, . . . , N ,
(
o 0, S(N, j) ≥ B,
C (N, j) = +
V (N, j) = [S(N, j) − K] , S(N, j) < B.
The backward pricing formula likewise tests the barrier but returns 0 if S
equals or exceeds it: for j = 0, 1, . . . , n,
(
0, S(n, j) ≥ B,
C o (n, j) = o o
[p C (n + 1, j + 1) + (1 − p) C (n + 1, j)]/R, S(n, j) < B,
where p is the risk neutral up probability and R is the riskless return over one
time step, both computed from the CRR parameters.
Recombining Binomial Tree Prices 99

1 function C a l l = CRRuoC(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−out 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 annual 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 % Call = p r i c e of the option at a l l (n , j ) .
15 % EXAMPLE:
16 % uoCa = CRRuoC( 1 , 1 0 0 , 8 0 , 1 2 0 , 0 . 0 5 , 0 . 2 0 , 4 0 ) ;
17 %
18 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
19 C a l l=zeros (N+1 ,N+1) ; % a l l o c a t e output mat ri x
20 f o r j =0:N % s e t t h e v a l u e s a t e x p i r y s t e p N
21 SNj=S0 ∗up ^(2∗ j −N) ; % a s s e t p r i c e S (N, j )
22 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
23 C a l l (N+1 , j +1) = max( SNj − K, 0 ) ;
24 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
25 C a l l (N+1 , j +1) = 0 ;
26 end
27 end % u s e backward i n d u c t i o n t o p r i c e t h e r e s t
28 f o r n=(N−1) :( −1) : 0 % g r i d t i m e s n={N− 1 , . . . , 0}
29 f o r j =0:n % t e s t t h e b a r r i e r i n a l l s t a t e s j
30 Snj = S0 ∗up ^(2∗ j −n ) ; % a s s e t p r i c e S ( n , j )
31 i f ( Snj < B) % then b a r r i e r i s not e x c e e d e d
32 C a l l ( n+1, j +1)=( pu∗ C a l l ( n+2, j +2) . . .
33 +(1−pu ) ∗ C a l l ( n+2, j +1) ) /R; % b i n . p r i c e
34 e l s e % b a r r i e r exceeded , s o o p t i o n v a n i s h e s
35 C a l l ( n+1, j +1) = 0 ;
36 end
37 end
38 end
39 return % P r i c e s i n C a l l mat rix a r e now d e f i n e d .
40 end

Octave implementation of CRR Partial Up-and-Out barrier Call


A partial barrier option is one of the eight mentioned types, with barrier
monitoring occurring only after some specified time between now and expiry.
1 function C = CRRpuoC(T, S0 , K, B, r , v , N, N0)
2 % Octave /MATLAB f u n c t i o n t o p r i c e p a r t i a l up−and−out
100 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

Octave implementation of CRR Rebate Up-and-Out barrier Call


An additional feature of knock-out options is a rebate of the premium if the
option is voided. To calculate its price, let W (x) be the price of the knock-out
option which returns x if it is voided but otherwise behaves like the vanilla
option. Then the price of the rebate knock-out option is the solution to the
fixed point problem
x = W (x),
for that will have a price equal to its rebate. For example, the up-and-out Call
has this implementation of W (x):
1 function C = CRRruoC(T, S0 , K, B, r e f u n d , r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e up−and−out b a r r i e r
3 % C a l l o p t i o n s with a r e f u n d a t knock−out u s i n g 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 (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 % refund = rebate paid i f the (17)
11 % o p t i o n knocks out a t
12 % the b a r r i e r p r i c e
13 % r = r i s k −f r e e annual y i e l d (0.05)
14 % v = v o l a t i l i t y ; must be >0 (0.20)
15 % N = height of the binomial t r e e (4)
16 % OUTPUT:
17 % C = p r i c e of the option at a l l (n , j ) .
18 % EXAMPLE:
19 % uorCa = CRRruoC ( 1 , 1 0 0 , 8 0 , 1 2 0 , 1 7 , 0 . 0 5 , 0 . 2 0 , 4 ) ;
20 %
21 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
22 C=zeros (N+1 ,N+1) ; % a l l o c a t e t h e output matrix
23 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
24 SNj = S0 ∗up ^(2∗ j −N) ; % a s s e t p r i c e S (N, j )
25 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
26 C(N+1 , j +1) = max( SNj−K, 0 ) ;
27 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
28 C(N+1 , j +1) = r e f u n d ; % . . . with a r e b a t e
29 end
30 end % Use backward i n d u c t i o n t o p r i c e t h e r e s t :
31 f o r n = (N−1) :( −1) : 0 % g r i d t i m e s n={N− 1 , . . . , 0}
32 f o r 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 ) ; % a s s e t p r i c e S ( n , j )
35 i f ( Snj < B) % then b a r r i e r i s not e x c e e d e d
36 % . . . 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
37 C( n+1 , j +1)=(pu∗C( n+2 , j +2)+(1−pu ) ∗C( n+2 , j +1) ) /R;
38 e l s e % b a r r i e r exceeded , s o o p t i o n v a n i s h e s
102 Exotic Options

39 C( n+1 , j +1) = r e f u n d ; % . . . with a r e b a t e


40 end
41 end
42 end
43 return % P r i c e s i n C a r e now f u l l y d e f i n e d .
44 end

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

Convergence seems to have occured after 12 iterations. It is left as an exercise


to reimplement the loop so that it checks for convergence by measuring the
change between iterations.
Another exotic twist is a partial rebate of a portion α, with 0 < α < 1,
of the exotic option premium. This reuses the function CRRruoC(), but the
iteration is slightly different:
T=1; S=100; K=80; B=120;r=0.05; v=0.20; N=4; % as before
alpha=0.50; % partial rebate, 50 percent of the premium
X=[0]; % initial guess is zero price, zero refund
X=CRRruoC(T,S,K,B,alpha*X(1,1),r,v,N); X(1,1) % 6.2558
for i=1:10
X=CRRruoC(T,S,K,B,alpha*X(1,1),r,v,N); % iteration with alpha
end
X=CRRruoC(T,S,K,B,alpha*X(1,1),r,v,N); X(1,1) % 7.9131
X=CRRruoC(T,S,K,B,alpha*X(1,1),r,v,N); X(1,1) % 7.9131

This also seems to have converged after 12 iterations. The premium is lower,
obviously, than for the full rebate barrier option.

4.1.8 Booster Options


This is a variation on barrier options for investors who expect to profit from
low volatility. The option pays an amount proportional to the time (in [0, T ])
that the underlying asset spends with its price between two bounds, the upper
barrier U and the lower barrier L, where of course L < U .
The price of the booster option decreases as volatility increases since, with
increasing volatility, the underlying asset price has a shorter expected time
spent inside the interval [L, U ] and thus has lower expected payoff.
Recombining Binomial Tree Prices 103

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.

Octave implementation of CRR of a Booster option

1 function B = CRRboo(T, S0 , L , H, r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e b o o s t e r o p t i o n s
3 % u s i n g t h e Cox−Ross−R u b i n s t e i n (CRR) model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time (1 year )
6 % S = stock price ( $100 )
7 % L = low b a r r i e r p r i c e ( $85 )
8 % H = high b a r r i e r p r i c e ( $115 )
9 % r = r i s k −f r e e y i e l d (0.05)
10 % v = v o l a t i l i t y , >0 (0.20)
11 % N = tree height (4)
12 % OUTPUT:
13 % B = p r i c e of the option at a l l (n , j ) .
14 % EXAMPLE:
15 % boo = CRRboo ( 1 , 1 0 0 , 8 5 , 1 1 5 , 0 . 0 5 , 0 . 2 0 , 4 ) ;
16 %
17 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
18 B=zeros (N+1 ,N+1) ; % a l l o c a t e t h e output matrix
19 f o r j =0:N % S e t t h e v a l u e s a t e x p i r y s t e p N
20 SNj=S0 ∗up ^(2∗ j −N) ; % a s s e t p r i c e S (N, j )
21 i f ( SNj < H) % l e s s than h i g h b a r r i e r
22 i f (L < SNj )
23 B(N+1, j +1) = N; % time s p e n t between L ,H
24 end
25 end
26 end % Now t e s t f o r b a r r i e r c r o s s i n g b e f o r e n=N
27 f o r n=1:N−1 % n=0 c a s e i s unneeded
28 f o r j =0:n % t e s t b a r r i e r s a t ( n , 0 ) , . . . , ( n , n ) :
29 Snj=S0 ∗up ^(2∗ j −n ) ; % a s s e t p r i c e S ( n , j )
30 i f ( Snj >= H | | Snj <= L )
31 B( n+1 , j +1) = n ;
32 end
33 end
34 end
35 % Backward i n d u c t i o n p r i c e s any z e r o g r i d v a l u e s :
36 f o r n=(N−1) :( −1) : 0 % g r i d t i m e s n={N− 1 , . . . , 0}
37 f o r j =0:n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
38 i f (B( n+1 , j +1)==0) % then u s e backwarding
39 B( n+1 , j +1)=(pu∗B( n+2 , j +2)+(1−pu ) ∗B( n+2, j +1) ) /R;
40 end
41 end
42 end
43 return ; % P r i c e s i n B a r e now d e f i n e d .
44 end
104 Exotic Options

4.2 Path Dependent Prices


For some assets A, the price A(T, ω) may depend on the path by which state ω
was reached at time T . To compute such a price in a discrete model with path
dependent states, the successor states that follow from (n, k) require their own
unique labels as they are not assumed to be related to any other predecessor.
In a model where there is one up state and one down state after each
(n, k), successors may be labeled uniquely by (n + 1, 2k) and (n + 1, 2k + 1),
respectively. This difference from the recombining tree is evident after two
time steps when there are four rather than three states:
A(0, 0)
. &
A(1, 0) A(1, 1)
. & . &
A(2, 0) A(2, 1) A(2, 2) A(2, 3)
With such labeling, the number of distinct states doubles at each time step.
There will be 2n different states at intermediate time step n and 2N possible
states at final time N . With such rapid growth, the practical limit is N ≈ 30
on contemporary computers.

4.2.1 Efficient Data Structures


Let k ∈ {0, 1, . . . , 2n − 1} be one of the path dependent states at time step
n. Its unique predecessor will then be labeled (n − 1, bk/2c), where bxc is the
floor function that returns the greatest integer less than or equal to x. Thus,
for integer k ≥ 0, (
k/2, k even,
bk/2c = (4.1)
(k − 1)/2, k odd.
Putting A(n, k) into an N × 2N matrix gives the following:

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

Note that m = 2n + k determines n, k uniquely by the formulas

n = blog2 (m)c , k = m − 2n . (4.3)

Alternatively, expressing m in binary notation reveals n as the place of mn =


1, the most significant bit, or base-2 digit of m, and k as the binary number
represented by the remaining bits:

m = mn mn−1 · · · m1 m0 (base 2), k = mn−1 · · · m1 m0 (base 2). (4.4)

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 ,

or equivalently, in the other indexing convention,

Ā(2m) < R̄(m)Ā(m) < Ā(2m + 1), 1 ≤ m < 2N ,


def
where R̄(m) = R̄(2n + k) = R(n, k).

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),

which defines k = m4 m3 m2 m1 m0 (base 2) = 10011 (base 2).


106 Exotic Options

Now denote by k(i) the (non-recombining) state reached at time step i


along the unique path to state m = 2n + k. Then k is defined recursively by
k(0) = 0, since (0, 0) is the unique initial state,
k(i) = 2k(i − 1) + mn−i , i = 1, . . . , n,
where mn−i = 1 indicates an up transition and mn−i = 0 indicates a down
transition to time step i. For example, state k = 19, of the 2N = 32 states at
the bottom of the N = 5 time-step tree, defines
k(0) = 0,
k(1) = 2k(0) + m4 = 1, (m4 = 1)
k(2) = 2k(1) + m3 = 2, (m3 = 0)
k(3) = 2k(2) + m2 = 4, (m2 = 0)
k(4) = 2k(3) + m1 = 9, (m1 = 1)
k(5) = 2k(4) + m0 = 19 = k. (m0 = 1)
The path’s terminus index m = 2N + k = 32 + 19 = 51, in the linear array,
thus similarly defines a unique path in the recombining tree.

Prices from up and down steps


The modeled asset prices in a non-recombining binomial tree define up and
down factors:
def
d(n, k) = A(n + 1, 2k)/A(n, k);
def
u(n, k) = A(n + 1, 2k + 1)/A(n, k).
Alternatively, in the m notation,
¯ def
d(m) = Ā(2m)/Ā(m);
def
ū(m) = Ā(2m + 1)/Ā(m),
¯
and so ū(m(n, k)) = u(n, k) and d(m(n, k)) = d(n, k).
¯ of up and down steps,
Conversely, given non-recombining trees u, d (or ū, d)
a non-recombining tree of asset prices may be computed by forward induction
from the spot price A0 :
A(0, 0) = A0 ;
A(n + 1, 2k) = d(n, k)A(n, k);
A(n + 1, 2k + 1) = u(n, k)A(n, k), 0 ≤ n < N; 0 ≤ k < 2n .
In the m notation this is
Ā(1) = A0 ;
¯ Ā(m),
Ā(2m) = d(m)
Ā(2m + 1) = ū(m)Ā(m), 1 ≤ m < 2N .
Path Dependent Prices 107

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

A(5, 19) = u(0, 0)d(1, 1)d(2, 2)u(3, 4)u(4, 9)A(0, 0).

Equivalently, using Ā and state index m = 2N + k = 51, the price is


¯ d(6)ū(12)ū(25)
Ā(m) = Ā(2N + k) = Ā(51) = ū(1)d(3) ¯ Ā(1).

Observe how the factors udduu correspond to the bits of k = 10011 (base 2).

Non-recombining binary trees with constant factors from CRR


In the Cox-Ross-Rubinstein (CRR) model with constant u, d and riskless re-
turn R, all the prices in the non-recombining tree come from the recombining
CRR tree but are injected into multiple places. The no-arbitrage axiom re-
quires that
0 < d < R < u,
and then the risk neutral probabilities will be constant at each time step in
each state:
R−d u−R
p= , 1−p= .
u−d u−d
A risky asset S with spot price S0 may be modeled by a non-recombining tree
S̄ using just the constant up and down factors:

S̄(1) = S0 ; S̄(2m) = dS̄(m); S̄(2m + 1) = uS̄(m). (4.5)

Eq.4.5 is implemented by the following Octave function:


1 function Sbar = NRTCRR( S0 , up , down , N)
2 % Octave /MATLAB f u n c t i o n t o compute t h e b i n a r y non−
3 % r e c o m b i n i n g t r e e o f u n d e r l y i n g a s s e t p r i c e s from a
4 % s p o t p r i c e and c o n s t a n t up and down f a c t o r s .
5 % INPUTS : ( Example )
6 % S0 = a s s e t s p o t p r i c e (100)
7 % up = up f a c t o r (1.2)
8 % down = down f a c t o r (0.8)
9 % N = b i n o m i a l t r e e h e i g h t , must be >=0 (3)
10 % OUTPUT:
108 Exotic Options

11 % Sbar = t r e e a s l i n e a r a r r a y Sbar (m) , 0<m<2∗2^N


12 % EXAMPLE:
13 % Sbar = NRTCRR( 1 0 0 , 1 . 2 , 0 . 8 , 3 )
14 %
15 Sbar = zeros ( 1 , 2 ∗ 2 ^N−1) ; % a l l o c a t e t h e output matrix
16 Sbar ( 1 ) = S0 ; % i n i t i a l i z e with t h e s p o t p r i c e
17 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
18 Sbar ( 2 ∗m) = down∗ Sbar (m) ; % down d e s c e n d e n t
19 Sbar ( 2 ∗m+1) = up∗ Sbar (m) ; % up d e s c e n d e n t
20 end
21 return
22 end

The output is a linear array containing the non-recombining depth-N binary


tree of prices S̄(m), defined for 0 < m < 2 × 2N .

4.2.2 Paths in Recombining Trees


Every path (0, 0) → (1, j1 ) → · · · → (n, jn ) to level n in a recombining
binomial tree corresponds to a unique terminus index m = m(j1 , . . . , jn ) in a
non-recombining tree of depth n. All such path terminus indices form the set
def
M(n) = {2n , 2n + 1, . . . , 2n + (2n −1)} (4.6)
Each m in this set depends on more than just its last j variable: at time
steps n > 1, there will be several indices m corresponding to some of the
states (n, jn ) in the recombining tree. However, there is a function mapping
m to (n, jn ). It may be defined using the binary bits of m, using Eq.4.4.
Alternatively, a non-recombining tree may be built to identify the terminal
state number jn from a path dependent terminus index m:
j(m) = jn , 2n ≤ m ≤ 2n + 2n −1.
Notice that jn is the number of up steps on the path to (n, jn ). These may be
counted by the following forward induction:
j(1) = 0; (4.7)
j(2m) = j(m), m ≥ 1;
j(2m + 1) = j(m) + 1, m ≥ 1.
The recursion increments the up count by one every time a path turns up-
wards. Similarly, the time step n may be identified from m by the recursion
n(1) = 0; (4.8)
n(2m) = n(m) + 1, m ≥ 1;
n(2m + 1) = n(m) + 1, m ≥ 1.
These two indexing functions are easily implemented in Octave:
Path Dependent Prices 109

1 function [ nm, jm ] = NJfromM (N)


2 % Octave /MATLAB f u n c t i o n t o compute i n d e x e s ( n , j )
3 % 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 from t h e i n d e x m
4 % i n a non−r e c o m b i n i n g t r e e , by i n d u c t i o n .
5 % INPUTS : ( Example )
6 % N = t r e e h e i g h t , must be >0 (3)
7 % OUTPUTS:
8 % nm = n (m) , time s t e p
9 % jm = j (m) , r e c o m b i n i n g s t a t e a t time s t e p n (m)
10 % EXAMPLE:
11 % [ nm, jm ] = NJfromM ( 3 ) ;
12 %
13 % I n i t i a l i z e output a r r a y s with z e r o s
14 nm = zeros ( 1 , 2 ∗ 2 ^N−1) ; % . . . s o nm( 1 ) ==0;
15 jm = zeros ( 1 , 2 ∗ 2 ^N−1) ; % . . . s o jm ( 1 ) ==0;
16 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 t h e l a s t row
17 nm( 2 ∗m)=nm(m) +1; nm( 2 ∗m+1)=nm(m) +1; % i n c r e m e n t
18 jm ( 2 ∗m)=jm (m) ; jm ( 2 ∗m+1)=jm (m) +1; % b i f u r c a t e
19 end % nm(m) and jm (m) now h o l d ( n (m) , j (m) ) , a l l m
20 return
21 end

Example: recombining into non-recombining


One application of the mappings in Eqs.4.7 and 4.8 is the injection of prices
from a recombining tree into a non-recombining tree. Suppose that risky prices
S(n, j) and riskless returns R(n, j) are two such trees, for 0 ≤ n ≤ N and
0 ≤ j ≤ n. They may be placed into non-recombining trees by
def
S̄(m) = S(n(m), j(m)), (4.9)
def
R̄(m) = R(n(m), j(m)), (4.10)

for m = 1, 2, . . . , 2N +1 − 1. Similarly, the up factors, down factors, and risk


neutral up probabilities from a recombining tree may be mapped into non-
recombining trees as follows:
def
ū(m) = u(n(m), j(m)), (4.11)
¯ def
d(m) = d(n(m), j(m)), (4.12)
def
p̄(m) = p(n(m), j(m)), (4.13)

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

4 % i n an (N+1)x (N+1) matrix , i n t o a non−r e c o m b i n i n g


5 % t r e e s t o r e d i n an a r r a y i n d e x e d by m=1:2∗2^N−1.
6 % INPUTS : ( Example )
7 % X = r e c o m b i n i n g t r e e ma trix ( 4 x4 l o w e r )
8 % N = t r e e h e i g h t , must be >0 (3)
9 % OUTPUTS:
10 % Xbar = output a r r a y , Xbar (m)=X( n (m) +1, j (m) +1)
11 % EXAMPLE:
12 % X = [1 ,0 ,0 ,0; 2 ,3 ,0 ,0;4 ,5 ,6 ,0;7 ,8 ,9 ,10];
13 % Xbar = NRTinject (X, 3 ) ;
14 %
15 [ nm, jm ] = NJfromM (N) ; % g e t i n d e x i n g f u n c t i o n s
16 f o r m=1:2∗2^N−1 % a l l m i n d i c e s i n c l u d i n g l a s t row
17 Xbar (m) = X(nm(m) +1,jm (m) +1) ; % no 0 i n d e x : add 1
18 end
19 return
20 end

Example: risk neutral path probabilities


Another application is computing the probability of individual paths through
a recombining binomial tree. Let Pr(m) be the probability of path m. Using
p̄(m) as defined in Eq.4.13, compute Pr by the following induction:

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

4.2.3 Path Dependent Arrow-Debreu Securities


Recall that the spot price of an asset W may be computed with an Arrow-
Debreu expansion: X
W (0, 0) = W (N, k)λ(N, k),
k

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,

The backward induction step is

p̄(m)W̄ (2m + 1) + [1 − p̄(m)]W (2m)


W̄ (m) = , (4.16)
R̄(m)

for m = 2n − 1, 2n − 2 . . . , 1. Here the risk neutral probabilities p̄ and riskless


returns R̄ are taken from their own non-recombining trees into which they
were injected from recombining binomial trees via Eqs.4.13 and 4.10. But
since there is only one nonzero term in row n (at m = 2n + k), there is only
one nonzero term in row n − 1, at predecessor state bm/2c. Its value depends
112 Exotic Options

on whether k, and thus m, is odd or even:


1 − p̄(bm/2c)


 , m even,
 R̄(bm/2c)


W̄ (bm/2c) =
p̄(bm/2c)


, m odd.



R̄(bm/2c)
This portfolio is a multiple of the Arrow-Debreu portfolio that pays 1 at state
bm/2c, so the One Price Theorem implies that W̄ (1) = λ̄(m) is a multiple of
the spot price λ̄(bm/2c):

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:

1 function Lbar = PathAD ( pu , R, N)


2 % Octave /MATLAB f u n c t i o n t o compute s p o t p r i c e s
3 % f o r path−dependent Arrow−Debreu s e c u r i t i e s by
4 % forward induction .
5 % INPUTS : ( Example )
6 % pu = NxN m a t r i x o f up p r o b a b i l i t i e s ( 3 x3 l o w e r )
7 % R = NxN m a t r i x o f r i s k l e s s r e t u r n s ( 3 x3 l o w e r )
8 % N = t r e e h e i g h t , must be >0 (3)
9 % OUTPUTS:
10 % Lbar = a r r a y o f Arrow−Debreu p r i c e s barlambda (m) .
11 % EXAMPLE:
12 % pu = [ . 5 1 , 0 , 0 ; . 5 2 , . 5 3 , 0 ; . 5 4 , . 5 5 , . 5 6 ] ;
13 % R = [1.01 ,0 ,0; 1.02 ,1.03 ,0; 1.04 ,1.05 ,1.06];
14 % Lbar = PathAD ( pu , R, 3 )
15 %
16 Lbar = ones ( 1 , 2 ∗ 2 ^N−1) ; % . . . s o Lbar ( 1 )=1=lambda ( 1 )
17 pbar = NRTinject ( pu , N−1) ; % i n j e c t up p r o b s .
18 Rbar = NRTinject (R, N−1) ; % i n j e c t r i s k l e s s r e t u r n s
Path Dependent Prices 113

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

Corollary 4.2 The recursion in Theorem 4.1 is solved by


n
Y
R̄( m/2i ),
 
λ̄(m) = Pr(m)/ (4.17)
i=0

where n = blog2 mc is the highest power of 2 in m.

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

4.2.4 Asian-Style Options


An average rate option, sometimes called an Asian-style option, is like a
European-style option on a stock S in that it can only be exercised at ex-
piry T , but its payoff depends on the average price of the underlying asset
over the period [0, T ]. Thus its Call and Put payoffs, for strike price K, are
respectively
+ +
C(T ) = [A(T ) − K] ; P (T ) = [K − A(T )] , (4.18)

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):

S(2, 1) = S(0, 0)ud = S(0, 0)du,


114 Exotic Options

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.

Call-Put parity for Asian-style options


The payoffs for an average rate Call and Put are related by
+ +
C(T ) − P (T ) = [A(T ) − K] − [K − A(T )] = A(T ) − K,
using Eq.1.17. Then Fair Price Theorem 1.4 gives a parity formula for the
premiums at time t = 0:
C(0) − P (0) = exp(−rT )E(A(T ) − K),
where r is the riskless interest rate per year. Now E(A(T )−K) = E(A(T ))−K,
and E(A(T )) is computed using path probabilities, which requires a model of
the future:
Theorem 4.3 In the N -step CRR model for S with annual riskless rate r
and riskless return R = exp(rT /N ), the averages A(T ) of S along all paths
from 0 to expiry T at time step N satisfy
1 + R + · · · + RN
E(A(T )) = S0 ,
N +1
where S0 = S(0, 0) is the spot price of S at time 0.
Proof: Denote by U (N, m) the sum of S along the path m from 0 to N :
N
def
X
U (N, m) = S(n, jn (m))
n=0

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

where Pr(m) is defined recursively by Eq.4.14, and

M(N ) = {2N , 2N + 1, . . . , 2N + (2N −1)}

is the set of m-indices of all N -step paths through the S tree.


Now use induction on N to establish that

E(U (N )) = (1 + R + · · · + RN )S0 . (4.19)

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

U (N + 1, 2m) = U (N, m) + S̄(2m),


U (N + 1, 2m + 1) = U (N, m) + S̄(2m + 1),
Pr(2m) = (1 − p)Pr(m)
Pr(2m + 1) = pPr(m),

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

Combining these two parts gives


X X
E(U (N +1)) = U (N, m)Pr(m) + S̄(m)Pr(m)
m∈M(N ) m∈M(N +1)

= E(U (N )) + E(S(N + 1))


= (1 + R + · · · + RN )S0 + RN +1 S0 ,

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

Corollary 4.4 As N → ∞ in the CRR model with N steps to expiry T ,

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:

(N + 1)(R − 1) = (N + 1)(exp(rT /N ) − 1) ≈ (N + 1)rT /N → rT,

as N → ∞. Likewise, the numerator limit is

RN +1 − 1 = exp(rt(N + 1)/N ) − 1 → exp(rT ) − 1,

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

Ū (2m) = Ū (m) + S̄(2m); Ū (2m+1) = Ū (m) + S̄(2m+1). (4.21)

Eq.4.21 is easily implemented in Octave:


Path Dependent Prices 117

1 function Ubar = NRTpsums( Sbar , N)


2 % Octave /MATLAB f u n c t i o n t o compute p a r t i a l sums
3 % a l o n g p a t h s i n a non−r e c o m b i n i n g t r e e (NRT) .
4 % INPUTS : ( Example )
5 % Sbar = NRT a r r a y o f l e n g t h 2∗2^N−1 (1:15)
6 % N = t r e e depth , must be >=0 (3)
7 % OUTPUT:
8 % Ubar = NRT o f p a r t i a l sums , same s i z e a s Sbar
9 % EXAMPLE:
10 % Ubar = NRTpsums ( 1 : 1 5 , 3 )
11 %
12 Ubar=zeros ( s i z e ( Sbar ) ) ; % a l l o c a t e t h e output
13 Ubar ( 1 )=Sbar ( 1 ) ; % t r i v i a l f i r s t p a r t i a l sum
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 Ubar ( 2 ∗m)=Ubar (m)+Sbar ( 2 ∗m) ; % down
16 Ubar ( 2 ∗m+1)=Ubar (m)+Sbar ( 2 ∗m+1) ; % up
17 end
18 return
19 end

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.

Octave implementation of average rate options in CRR


From partial sums it is easy to compute averages, so one application is to price
Asian-style average rate options. This implementation uses the simplifying
CRR assumptions:
1 function [ C, P ] = CRRaro (T, S0 , K, r , v , N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e Average Rate Options
3 % (ARO, o r Asian Options ) 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 i n y e a r s (0.5)
7 % S0 = s t o c k p r i c e (100)
8 % K = strike price (95)
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.15)
11 % N = height of the binomial t r e e (5)
12 % OUTPUTS:
118 Exotic Options

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}.

1 function [ C0 , P0 ] = CRRaroAD(T, S0 , K, r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e Average Rate
3 % Options (ARO, o r Asian Options ) u s i n g p a t h w i s e
4 % Arrow−Debreau 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 (0.5)
Path Dependent Prices 119

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).

Octave implementation of CRR for geometric rate options


A variant of average rate options, which use arithmetic means to compute
A(T ), is the geometric mean average rate option, in which the payoff depends
on the difference between the strike price K and the geometric mean G(T ) of
sampled prices for S on t ∈ [0, T ]:
v
uN
uY
N +1
G(T ) = t S(ti ).
i=0

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

At expiry, the values in log G are exponentiated before comparison with K to


give the Call and Put payoffs:
+ +
C(T ) = [exp(log G(T )) − K] , P (T ) = [K − exp(log G(T ))] .
The premiums C(0), P (0) are thereafter computed by backward induction.
120 Exotic Options

1 function [ C, P ] = CRRgro (T, S0 , K, r , v , N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e Geometric Rate Options
3 % (GRO, o r g e o m e t r i c mean Asian−s t y l e Options ) with 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 (0.5)
7 % S0 = s t o c k p r i c e (100)
8 % K = strike price (95)
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.15)
11 % N = height of the binomial t r e e (5)
12 % OUTPUTS:
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]=CRRgro ( 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 lU=NRTpsums( log ( Sbar ) ,N) ; % sums o f l o g a r i t h m s
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 Geom = exp ( lU (m) / (N+1) ) ; % g e o m e t r i c mean
23 C(m) = max( 0 , Geom−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−Geom) ; % 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

Geometric rate options may also be priced using path dependent Arrow-
Debreu securities. The modifications needed to do this are left as an exercise.

4.2.5 Floating Strike Options


In this exotic variation the strike price is set at expiry T to be the average
price of the underlying asset over the period [0, T ]. Thus the Call and Put
options repectively confer the right, but not the obligation, to buy or sell
the underlying asset at its average market price. The Call and Put payoffs,
therefore, are respectively
b ) = [S(T ) − A(T )]+ ;
C(T
+
Pb(T ) = [A(T ) − S(T )] , (4.22)
Path Dependent Prices 121

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

Call-Put parity for floating strike options


The payoffs for a floating strike Call and Put are related by
b ) − Pb(T ) = [S(T ) − A(T )]+ − [A(T ) − S(T )]+ = S(T ) − A(T ),
C(T

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

1 function [ C, P ] = CRRflt (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 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 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 % C = C a l l o p t i o n NRT.
13 % P = Put o p t i o n NRT.
122 Exotic 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

It is left as an exercise to implement floating strike option pricing using geo-


metric means rather than arithmetic means.
4.2.6 Lookback Options
These exotic derivatives may be called extremal. They grant the right, at time
T , to buy or sell the underlying asset at its best price over the period [0, T ].
Thus the lookback Call and Put payoffs are respectively
e ) = S(T ) − Smin (T );
C(T Pe(T ) = Smax (T ) − S(T ), (4.25)

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 }.

A multistep discrete model for S is therefore appropriate. But even if S is


modeled by a recombining tree, the extremal prices Smin , Smax are path de-
pendent and require a non-recombining tree. In that case, the omitted state
variable ω describes the path, so the m notation is appropriate.
Path Dependent Prices 123

Octave program to find minimums along paths


Let S̄min (m) be the minimum value of S(n, j) along the path indexed by m. It
may be computed from the non-recombining tree S̄ by the following recursion:

S̄min (1) = S̄(1), and then for m = 1, 2, . . . , 2N − 1,


S̄min (2m) = min{S̄min (m), S̄(2m)}, (4.26)
S̄min (2m+1) = max{S̄min (m), S̄(2m+1)}.

Eq.4.26 is easily implemented in Octave:


1 function Minb = NRTmin( Sbar , N)
2 % Octave /MATLAB f u n c t i o n t o compute minimums
3 % a l o n g p a t h s i n a non−r e c o m b i n i n g t r e e (NRT) .
4 % INPUTS : ( Example )
5 % Sbar = NRT a r r a y o f l e n g t h 2∗2^N−1 (1:15)
6 % N = t r e e depth , must be >=0 (3)
7 % OUTPUT:
8 % Minb = NRT o f minimums , same s i z e a s Sbar
9 % EXAMPLE:
10 % Minb = NRTmin ( 1 : 1 5 , 3 )
11 %
12 Minb=zeros ( s i z e ( Sbar ) ) ; % a l l o c a t e t h e output
13 Minb ( 1 )=Sbar ( 1 ) ; % min 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 Minb ( 2 ∗m)=min( Minb (m) , Sbar ( 2 ∗m) ) ; % down
16 Minb ( 2 ∗m+1)=min( Minb (m) , Sbar ( 2 ∗m+1) ) ; % up
17 end
18 return
19 end

Implementation of the function NRTmax() to find maximums along all paths


is left as an exercise.

Octave implementation of CRR for lookback options


Once the maximums and minimums along paths are computed, the lookback
Put and Call options are found by backward recursion from terminal values:
1 function [ C, P ] = CRRlb (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 and
3 % 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 (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 i n y e a r s (1)
7 % S0 = s p o t s t o c k p r i c e (100)
8 % r = r i s k l e s s y i e l d per year (0.05)
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:
124 Exotic Options

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.

4.2.7 Ladder Options


Another exotic version of an extremal option is the ladder option. Here the
payoff acquires a lower bound at expiry as soon as the extremal price crosses
a rung on a ladder of in-the-money prices. The holder of such an option is
thus assured a positive payoff even if the underlying asset price retraces back
out of the money at expiry.
For example, a ladder Call option C on S(t) has a specified strike price K
and an increasing sequence {Li }, or ladder, of in-the-money prices above K:

S(0) ≤ max{S(0), K} < L1 < · · · < Lk .

Let M (T ) = max{S(t) : 0 ≤ t ≤ T } be the maximum price of S up to expiry.


Then the ladder Call option payoff is
def +
C(T ) = max{[S(T ) − K] , Li − K}, (4.27)

where Li is the highest rung of the ladder reached by S(t) as recorded by


M (T ):
Li ≤ M (T ) < Li+1 .
Note that
+
C(T ) ≥ [S(T ) − K] ≥ 0,
so this exotic option cannot cost less than a vanilla European Call with the
same parameters.
Path Dependent Prices 125

The ladder for the corresponding Put option satisfies

Lk < · · · < L1 < min{S(0), K} ≤ S(0),

and the very similar analysis and implementation is left as an exercise.

Octave implementation of CRR for ladder Call options


A discrete model for pricing ladder options requires a non-recombining tree of
paths to hold the extremal prices. It is convenient to use a non-recombining
tree for the underlying asset prices, too, even if they are modeled by a recom-
bining binomial tree such as in CRR.
In this example with N time steps to expiry, both S and M are stored
as linear arrays with m indexing. The paths of length N are indexed by
m ∈ M(N ) = {2N , . . . , 2N + (2N −1)}, so those are the indices in the non-
recombining tree C where terminal values are set using Eq.4.27. Then the
option premium is found by backward induction as usual:
pC(2m + 1) + (1 − p)C(2m)
C(m) = , m = 2N −1, 2N −2, . . . , 2, 1,
R
where p is the risk neutral up probability from the CRR model, and R is the
riskless return per time step.
1 function LadC = CRRladC (T, S0 , K, L , r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e a l a d d e r C a l l
3 % o p t i o n u s i n g a Cox−Ross−R u b i n s t e i n (CRR) model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time i n y e a r s (1)
6 % S0 = s p o t p r i c e (50)
7 % K = strike price (55)
8 % L = i n c r e a s i n g p r i c e s > S0 ,K ([60 ,65 ,70])
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 % LadC = Ladder C a l l o p t i o n p r i c e a r r a y .
14 % EXAMPLE:
15 % LadC=CRRladC ( 1 , 5 0 , 5 5 , [ 6 0 , 6 5 , 7 0 ] , 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 i n an NRT
19 MaxS=NRTmax( Sbar ,N) ; % non−r e c o m b i n i n g max t r e e
20 LadC=zeros ( s i z e ( Sbar ) ) ; % C a l l 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 (MaxS(m)<L ( 1 ) ) % below l e v e l L ( 1 ) i s s p e c i a l
25 LadC (m)=max( Sbar (m)−K, 0 ) ;
26 e l s e % MaxS >= L ( 1 )
126 Exotic Options

27 i f (MaxS(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 (MaxS(m)<L( l ) )
30 LadC (m)=max(max( Sbar (m)−K, L( l −1)−K) , 0 ) ;
31 break ; % found l : L( l −1)=<MaxS<L( l ) ,
32 end
33 end % . . . so e x i t the " l " loop
34 e l s e % MaxS>=L( k ) , a n o t h e r s p e c i a l c a s e
35 LadC (m)=max(max( Sbar (m)−K, L( k )−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 LadC (m) =(pu∗LadC ( 2 ∗m+1)+(1−pu ) ∗LadC ( 2 ∗m) ) /R;
41 end
42 return % LadC ( 1 ) i s t h e o p t i o n premium
43 end

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

M(n + 1) = [2M(n)] ∪ [2M(n) + 1] ,


def
where aX + b = {ax + b : x ∈ X} for sets X of numbers.
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.
Further Reading 127

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.

4.4 Further Reading


• Antoine Conze and Viswanathan, “Path Dependent Options: The Case
of Lookback Options.” Journal of Finance 46:5 (1991), pp.1893–1907.
• Espen Gaardner Haug, The Complete Guide to Option Pricing Formu-
las. McGraw-Hill, New York (1997).
• Naoto Kunitomo and Masayuki Ikeda. “Pricing options with curved
boundaries.” Mathematical Finance 2:4 (1992), pp.275–298.
• Israel Nelken (editor). Handbook of Exotic Options. McGraw-Hill, New
York (1996).
• Antoon Pelsser. “Pricing double barrier options using Laplace trans-
forms.” Finance and Stochastics 4:95 (2000), pp.95–104.
• Peter Guangping Zhang. Exotic Options: A Guide to the Second Gen-
eration Options (2nd Edition). World Scientific, New York (1998).
5
Forwards and Futures

Forwards and Futures are contracts for transactions to be completed in the


future. A strike price is negotiated between the parties, but no money is
exchanged until the expiry time when the Long side is obligated to purchase
the underlying asset from the Short side at that price. Models of the future
are used to estimate this strike price, though ultimately it is set by market
action in response to supply and demand.
The strike price does not represent a prediction of the future, but only a
consensus on the probabilities of various future states. A simple example is the
Forward contract described in Section 1.2.1. Its strike price is the spot price
of the underlying asset, which balances current supply and demand, times the
expected riskless return to expiry, which depends on a model of the future.
As time advances and expiry approaches, the riskless returns and the up-
dated spot prices may change. Also, circumstances may arise that affect the
ability or willingness of parties to a contract to fulfill their obligations, raising
the risk of default. A Long Forward default occurs if the buyer does not pay
the agreed price; a Short Forward default occurs if the seller does not deliver
the specified underlying asset.
The Futures contract provides a means to adjust prices and protect both
parties against default. It involves a supervising financial institution that holds
some money from each party, monitors the market, and instantly adjusts bal-
ances in these margin accounts to match changes in the value of the contract.
These adjustments mimic dynamic hedging of the Futures contract with a
riskless asset, though the margin account typically holds only a fraction of
the total contract amount. The result is that both sides have their profits and
losses marked to market, following the market price of the underlying, so that
either side can exit the contract without injuring the other.

5.1 Discrete Models for Forwards


Suppose that S is a risky asset with spot price S0 . The fair price at time t = 0
for a Forward contract to buy S at time t = T is

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)

which is adjusted by the interest rates described by D(n, j).

5.1.1 No-Arbitrage Forwards Values


Let V (n, j) be the value at time n in state j of the Long Forward contract
initiated at time 0 with maturity N at price F (0, 0). It may be computed by
the hedging method as

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

• Return S to cover the short sale.

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.

5.1.2 Binomial Models for Forwards Prices


Now suppose that the asset prices {S(n, j)} and riskless returns {R(n, j)} for
0 ≤ n ≤ N and 0 ≤ j ≤ n are tabulated in a recombining binomial tree. These
tables may be used to model the no-arbitrage price F (n, j) at times between
now (n = 0, j = 0) and maturity (n = N , any 0 ≤ j ≤ N ).
It is evident that
F (N, j) = S(N, j)
for any state j at maturity, since otherwise there is an obvious arbitrage. This
also follows from Eqs.5.1 and 5.2.
Since S(n, j) is given, by Eq.5.2 it remains to model D(n, j) using the
generalized backward pricing formula of Section 3.3.2:

p(n, j)D(n + 1, j + 1) + (1 − p(n, j))D(n + 1, j)


D(n, j) = ,
R(n, j)

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

D(N − 1, j) = 1/R(N − 1, j), 0 ≤ j ≤ N − 1, (5.3)

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

F (N − 1, j) = S(N − 1, j)R(N − 1, j), 0 ≤ j ≤ N − 1, (5.4)

which is the Forward price given by any discrete model with one time step.

5.2 Discrete Models for Futures


Both parties to Futures contract must have margin accounts at a supervisory
financial institution, usually a brokerage firm, exchange, or bank. Denote these
accounts by Mlong for the long side (the future buyer of S) and Mshort for
the short side (the future seller). In a discrete model, the amounts in these
132 Forwards and Futures

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

G(N, j) = S(N, j) (5.5)

for any state j at maturity, since otherwise there is an obvious arbitrage.


For other n, j, use backward induction and risk neutral probabilities to find
no-arbitrage prices G(n, j).
The margin accounts are adjusted at specified intermediate times in re-
sponse to price changes in the underlying assets. This is called marking to
market, and it typically happens daily or weekly, after the exchange closes. In
a discrete model, suppose that the world states at times n and n + 1 are j and
j 0 , respectively. Then the margin adjustments at time n + 1 are

Mlong (n+1, j 0 ) = Mlong (n, j)R(n, j) + [G(n+1, j 0 ) − G(n, j)] (5.6)


Mshort (n+1, j 0 ) = Mshort (n, j)R(n, j) − [G(n+1, j 0 ) − G(n, j)] (5.7)

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.

Theorem 5.1 Suppose that at times n = 0, 1, . . . , N , the price of S is given


by S(n, j(n)) where j(n) is one of the discrete possible states at time n. As-
sume that riskless interest rates are nonnegative and that all margin calls are
covered. Then for all 0 ≤ n ≤ N ,

Mlong (n, j(n)) ≥ Mlong (0, 0) + [G(n, j(n)) − G(0, 0)];


Mshort (n, j(n)) ≥ Mshort (0, 0) − [G(n, j(n)) − G(0, 0)].

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,

Mlong (n + 1, j 0 ) = Mlong (n, j)R(n, j) + [G(n + 1, j 0 ) − G(n, j))]


≥ Mlong (n, j(n)) + [G(n + 1, j 0 ) − G(n, j(n))]
≥ Mlong (0, 0) + [G(n + 1, j 0 ) − G(0, 0)].
Discrete Models for Futures 133

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)).

5.2.1 Binomial Models for Futures Prices


The value of a Futures contract depends on both the underlying asset prices S
and the interest rates R. That is because the margin account balance is affected
by both. The margin account for a Futures contract may thus be considered
a contingent claim on the underlying S. Modeling its balance yields formulas
for Futures prices.
Suppose that both R and S are described by recombining binomial trees
of N levels with states j = 0, 1, . . . , n at each time step n. Let

R(n, j)S(n, j) − S(n + 1, j)


p(n, j) =
S(n + 1, j + 1) − S(n + 1, j)

be the risk neutral up probability for S at time n in state j. The backward


pricing formula for contingent claim Mlong in this model gives

p(n, j)Mlong (n + 1, j + 1) + (1 − p(n, j))Mlong (n + 1, j)


Mlong (n, j) =
R(n, j)
p(n, j)
= [Mlong (n, j)R(n, j) + [G(n + 1, j + 1) − G(n, j)]]
R(n, j)
1 − p(n, j)
+ [Mlong (n, j)R(n, j) + [G(n + 1, j) − G(n, j)]]
R(n, j)
p(n, j)
= Mlong (n, j) + [G(n + 1, j + 1) − G(n, j)]
R(n, j)
1 − p(n, j)
+ [G(n + 1, j) − G(n, j)].
R(n, j)
134 Forwards and Futures

Solving for G(n, j) in terms of future values gives the backward induction
formula for G:

G(n, j) = p(n, j)G(n + 1, j + 1) + (1 − p(n, j))G(n + 1, j). (5.8)

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,

G(N, j) = F (N, j) = S(N, j), j = 0, 1, . . . , N.

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)

and if R(n, j) does not depend on j, then

def 1 1 1
D(n, j) = D(n, ·) =
R(n, ·) R(n + 1, ·) R(N − 1, ·)
for every 0 ≤ n < N , so

F (n, j) = R(n, ·)R(n + 1, ·) · · · R(N − 1, ·)S(n, j)

However, the backward induction formula for S gives


1
S(n, j) = [p(n, j)S(n + 1, j + 1) + (1 − p(n, j))S(n + 1, j)]
R(n, ·)
D(n + 1, ·)
= [p(n, j)F (n + 1, j + 1) + (1 − p(n, j))F (n + 1, j)] ,
R(n, ·)
which, in combination with the previous equations, gives

F (n, j) = p(n, j)F (n + 1, j + 1) + (1 − p(n, j))F (n + 1, j).


Discrete Models for Futures 135

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

With these inputs, at t = 0 the Forward contract price is F (0) = $107.46,


whereas the Futures contract price is G(0) = $107.25.
Remark. Exercise 2 below gives an even simpler example where F (0) 6=
G(0), using only two time steps. Conversely, Exercise 1 shows that every one-
step two-state model must have F (0) = G(0).

Octave code to compute Forwards and Futures

1 function [ F ,G] = FwdFut ( S , R, N)


2 % Octave /MATLAB f u n c t i o n t o compute Forward p r i c e s F
3 % and F u t u r e s p r i c e s G 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
4 % S ,R o f u n d e r l y i n g a s s e t p r i c e s and r i s k l e s s r e t u r n s .
5 % INPUTS : ( Example )
6 % S = a s s e t p r i c e m atrix (N+1 x N+1)
7 % R = r i s k l e s s r e t u r n s matrix (N x N)
8 % N = b i n o m i a l t r e e h e i g h t , must be >1 (3)
9 % OUTPUTS:
10 % F = (N+1) row m atrix o f Forward p r i c e s
11 % G = (N+1) row matri x o f F u t u r e s p r i c e s
12 % EXAMPLE:
13 % S=[100 ,0 ,0 ,0;87 ,115 ,0 ,0;75 ,100 ,133 ,0;65 ,87 ,115 ,152]
14 % R= [ 1 . 0 2 5 , 0 , 0 ; 1 . 0 3 , 1 . 0 2 , 0 ; 1 . 0 3 5 , 1 . 0 2 5 , 1 . 0 1 ]
15 % [ F ,G]= FwdFut ( S , R, 3 ) ; F ( 1 , 1 ) ,G( 1 , 1 )
16 %
17 p = RiskNeut ( S , R,N) ; % Risk n e u t r a l up p r o b a b i l i t i e s
18 D = ZCB( p , R,N) ; % Zero coupon bond d i s c o u n t s
19 F = zeros (N+1 ,N+1) ; % Forward f a i r p r i c e s
20 f o r ( n=0:N)
21 f o r ( j =0:n )
22 F( n+1 , j +1) = S ( n+1, j +1)/D( n+1, j +1) ;
23 end
24 end
25 G = zeros (N+1 ,N+1) ; % F u t u r e s f a i r p r i c e s
26 f o r ( j =0:N)
27 G(N+1 , j +1) = S (N+1 , j +1) ;
28 end
29 f o r ( n=N−1: −1:0)
30 f o r ( j =0:n )
136 Forwards and Futures

31 G( n+1 , j +1) = ( p ( n+1, j +1)∗G( n+2 , j +2)


32 + (1−p ( n+1, j +1) ) ∗G( n+2 , j +1) ) ;
33 end
34 end
35 return
36 end

5.2.2 No-Arbitrage Futures Values


A Forward contract costs nothing to either side, but a Futures contract re-
quires a deposit into a margin account. From the investor’s viewpoint, its cost
is equal to the margin balance minus the initial deposit and any additions re-
quired to satisfy margin calls. A Futures portfolio constructed from zero cash,
using borrowed money, has value

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.

Octave code to compute margin balances


This function assumes a sufficiently large initial balance so that no additions
are needed to satisfy any margin calls.
1 function [ML,MS] = MarFut (ML0, MS0, G, R, N)
2 % Octave /MATLAB f u n c t i o n t o f i n d margin b a l a n c e s f o r
3 % t h e Long and S h o r t s i d e o f a F u t u r e s c o n t r a c t with
4 % modeled p r i c e s G and r i s k l e s s r e t u r n s R.
5 % INPUTS : ( Example )
6 % ML0 = Long−s i d e i n i t i a l margin (200)
7 % MS0 = Short−s i d e i n i t i a l margin (200)
8 % G = F u t u r e s p r i c e m atr ix (N+1 x N+1)
9 % R = r i s k l e s s r e t u r n s matrix (N x N)
10 % N = b i n o m i a l t r e e h e i g h t , must be >1 (3)
11 % OUTPUTS:
12 % ML = Long margin , non−r e c o m b i n i n g t r e e a r r a y
13 % MS = S h o r t margin , non−r e c o m b i n i n g t r e e a r r a y
14 % EXAMPLE:
15 % S=[100 ,0 ,0 ,0;87 ,115 ,0 ,0;75 ,100 ,133 ,0;65 ,87 ,115 ,152]
16 % R= [ 1 . 0 2 5 , 0 , 0 ; 1 . 0 3 , 1 . 0 2 , 0 ; 1 . 0 3 5 , 1 . 0 2 5 , 1 . 0 1 ]
17 % [ F ,G]= FwdFut ( S , R, 3 ) ;
18 % [ML,MS]=MarFut ( 2 0 0 , 2 0 0 ,G, R, 3 )
Discrete Models for Futures 137

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

Octave code to compute riskless balances


The cost of borrowing the initial margin deposit is also path dependent. It
is modeled by the riskless balance in an unadjusted account B(t). It may be
computed by forward induction using the riskless return rate model R.
1 function Bal = PathBal ( Bal0 , R, N)
2 % Octave /MATLAB f u n c t i o n t o t r a c k an a c c o u n t b a l a n c e
3 % along a l l paths in a recombining binomial t r e e R
4 % of r i s k l e s s returns .
5 % INPUTS : ( Example )
6 % Bal0 = i n i t i a l d e p o s i t (200)
7 % R = r i s k l e s s r e t u r n s matrix (N x N)
8 % N = b i n o m i a l t r e e h e i g h t , must be >1 (3)
9 % OUTPUTS:
10 % Bal = non−r e c o m b i n i n g t r e e a r r a y
11 % EXAMPLE:
12 % R= [ 1 . 0 2 5 , 0 , 0 ; 1 . 0 3 , 1 . 0 2 , 0 ; 1 . 0 3 5 , 1 . 0 2 5 , 1 . 0 1 ]
13 % Bal=PathBal ( 2 0 0 ,R, 3 )
14 %
15 Bal = zeros ( 1 , 2 ^ (N+1)−1) ; Bal ( 1 ) = Bal0 ;
16 [ 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
17 f o r (m=1:2^N−1)
18 Rnj=R(nm(m) +1 ,jm (m) +1) ;
19 Bal ( 2 ∗m)=Bal (m) ∗ Rnj ; Bal ( 2 ∗m+1)=Bal (m) ∗ Rnj ;
20 end
21 return
22 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 :

S=[100,0,0,0;87,115,0,0;75,100,133,0;65,87,115,152]; N=3; M0=200;


R=[1.025,0,0;1.03,1.02,0;1.035,1.025,1.01]; ends=2^N:2*2^N-1;
[F,G]= FwdFut(S,R,N); [ML,MS]=MarFut(M0,M0,G,R,N);
Bal=PathBal(M0,R,N); pu=RiskNeut(S,R,N); Lbar=PathAD(pu,R,N)’;
ML(ends)*Lbar(ends), MS(ends)*Lbar(ends), Bal(ends)*Lbar(ends)

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)

if expiry corresponds to time step N . Denote the initial deposit by Mf (1).


On the other hand, the path dependent value of the initial deposit without
margin adjustments satisfies the forward induction

B(2m) = B(m)R̄(m); B(2m + 1) = B(m)R̄(m), 0 < m < 2N ,

with initial deposit B(1) = Mf (1) by hypothesis.


Now let λ̄(m) be the price of the path dependent Arrow-Debreu security
that pays 1 at the end of path m and 0 at the end of all other paths of the
same length. By Theorem 4.1, the set of such prices satisfies

λ̄(1) =
1,
1 − p̄(m)
λ̄(2m) = λ̄(m),
R̄(m)
p̄(m)
λ̄(2m + 1) = λ̄(m), m = 1, 2, . . . .
R̄(m)
Discrete Models for Futures 139

Let the collection of paths of length N be indexed by


def
m ∈ {2N , 2N + 1, . . . , 2N + 2N − 1} = M(N ),

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 )

or equivalently, that for all N = 0, 1, . . . ,


X  
Mf (m) − B(m) λ̄(m) = 0. (5.10)
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

5.2.3 Margin Calls and Defaults


Either party, Long or Short, in a Futures contract may choose to sell its
interest voluntarily before expiry. However, one side may be forced, by the
supervising institution, to sell under certain circumstances. The precipitating
event is a margin call, if the party’s margin balance falls below the institu-
tion’s minimum. Unless additional funds are added to restore the minimum,
by a specified deadline, the contract falls into default. This happens without
injury to the counterparty. The supervising institution markets the defaulted
side of the contract to another trader at the current spot price, including all
fluctuations between the margin call and the default date.
140 Forwards and Futures

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.

Margin account simulations in the CRR model


CRR offers one simple way to model margin accounts for Futures contracts.
Since path-dependent trees are needed, the number N of time steps must be
small so that the O(2N ) non-recombining tree size stays manageable. This will
also keep the recombining binomial model S and the riskless return model R
small, at O(N 2 ) in size.
Suppose that fixed CRR parameters are given: riskless annual rate r,
volatility σ, expiry time T , and number of time steps N . Let the underlying
asset S have spot price S0 , and let M L0 and M S0 , respectively, be the initial
deposits into the Long and Short margin accounts, respectively. Implement
the model in Octave as follows:
1 function [ML,MS, Pr ] = CRRmargin (T, S0 , ML0, MS0, r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o f i n d Margin b a l a n c e s f o r
3 % t h e Long and S h o r t s i d e o f a F u t u r e s c o n t r a c t i n
4 % t h e Cox−Ross−R u b i n s t e i n (CRR) model .
5 % INPUTS : ( Example )
6 % T = time t o e x p i r y , i n y e a r s (1)
7 % S0 = U n d e r l y i n g a s s e t s p o t p r i c e (100)
8 % ML0 = Long−s i d e i n i t i a l Margin (200)
9 % MS0 = Short−s i d e i n i t i a l Margin (200)
10 % r = r i s k l e s s annual i n t e r e s t r a t e (0.02)
11 % v = volatility (0.15)
12 % N = binomial tree height (10)
13 % OUTPUTS:
14 % ML = Long margin , non−r e c o m b i n i n g t r e e a r r a y
15 % MS = S h o r t margin , non−r e c o m b i n i n g t r e e a r r a y
16 % Pr = path p r o b s . , non−r e c o m b i n i n g t r e e a r r a y
17 % EXAMPLE:
18 % [ML,MS, Pr]=CRRmargin ( 1 , 1 0 0 , 2 0 0 , 2 0 0 , 0 . 0 2 , 0 . 1 5 , 1 0 ) ;
19 %
20 [ pu , up , R1 ] = CRRparams (T, r , v ,N) ; % key p a r a m e t e r s
21 S = StreeCRR ( S0 , up ,N) ; % CRR model S matrix
22 R = R1∗ones (N,N) ; % c o n s t . r i s k l e s s r e t u r n s m atr ix
23 [ F ,G] = FwdFut ( S , R, N) ; % F u t u r e s p r i c e s matrix G
24 [ML,MS] = MarFut (ML0, MS0, G, R, N) ; % a c c o u n t s
25 Pr = PathPr ( pu∗ones (N,N) , N) ; % path p r o b a b i l i t i e s
26 return
27 end
Discrete Models for Futures 141

The returned linear arrays are the non-recombining trees of modeled Long
and Short margin acccount balances and the path probabilities.

Probability of default in the CRR model


For simplicity, suppose that a margin call will occur if and only if the margin
balance falls below 0. Further suppose that ML and MS have been computed
and returned by CRRmargin(). If no element in either array is negative, then
neither side will receive a margin call and there will be no defaults. That may
be detected with the Octave commands
T=1; S0=100; ML0=50; MS0=30; r=0.02; v=0.15; N=10;
[ML,MS,Pr]=CRRmargin(T,S0,ML0,MS0,r,v,10);
sum(ML<0) % ans = 0, so there are no Long margin calls
sum(MS<0) % ans = 77, so there are Short margin calls

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

25 Pneg=P0+P1 ; % . . . and add t h e i r p r o b a b i l i t i e s


26 end
27 return % and p a s s t h e c u r r e n t Pneg v a l u e upwards
28 end

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 .

To estimate the risk of a particular margin requirement, let α > 0 be


fixed, and suppose that the supervising institution will require αS0 as an
initial margin deposit at the signing of a Futures contract for asset S with
spot price S0 . Then the probability of a margin call is computed from the
output of CRRmargin() by the following code:
[ML,MS,Pr]=CRRmargin(T,S0,alpha*S0,alpha*S0,r,v,N);
PrNeg(ML, Pr, 1, N), PrNeg(MS, Pr, 1, N)

Remark. The spot price S0 plays no role so it may be set to any convenient
positive value such as $100.

It is left as an exercise to tabulate or plot these probabilities for various


CRR parameters of riskless rate and volatility.

5.3 Exercises
1. Suppose that S and R are modeled with a recombining binomial tree of
N ≥ 1 levels. Prove that

G(N − 1, j) = F (N − 1, j) = S(N − 1, j)R(N − 1, j)

for all states j.


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).
Further Reading 143

3. Suppose that S and R are modeled with a recombining binomial tree of


N > 2 levels. Prove that if
(R(N − 1, j + 1) − R(N − 1, j))(S(N − 1, j + 1) − S(N − 1, j)) > 0
for all j = 0, 1, ..., N − 2, then G(0, 0) > F (0, 0).
4. Fix N = 4 in the function FwdFut() defined on p.135.
(a) Find inputs S and R such that F (0) > G(0), namely F(1,1)>G(1,1)
in the output of [F,G]=FwdFut(S,R,N).
(b) Find S and R such that F (0) < G(0), namely F(1,1)<G(1,1) in
the output of [F,G]=FwdFut(S,R,N).
Note: To be valid, solutions S and R in parts (a) and (b) must be
positive and must satisfy the no-arbitrage condition
S(n + 1, j) < R(n, j)S(n, j) < S(n + 1, j + 1)
for all 0 ≤ n < N and all 0 ≤ j ≤ n.
5. Suppose that a commodities exchange wishes to broker Futures contracts
on an asset S, expiring in 0.5 years while riskless annual interest rates are
expected to remain constant at 0.02%. Under consideration are margin
requirements of 20, 30, 50, 80, and 150% of S0 for each contract.
(a) Compute the probability of a margin call, which will occur if and
only if the margin balance falls below 0, for both Long and Short Futures
contracts, with these five margin requirements. Use N = 6 time steps
and volatilities σ ∈ {0.10, 0.15, 0.20, 0.25, 0.30, 0.40, 0.50, 0.70}. Tabulate
the results and compare Long and Short margin requirements.
(b) Profile the computation with N = 6 and again with N = 13 to
compare the run times. Include in the count all times above 1% of the
total. Compare the run times to test the O(2N ) order of complexity.

5.4 Further Reading


• Chicago Board of Trade. The Chicago Board of Trade Handbook of Fu-
tures and Options. McGraw-Hill, New York (2006).
• Kenneth R. French. “A Comparison of Futures and Forward Prices.”
Journal of Financial Economics 3 (1983), pp.311–342.
• Aron Gottesman. Derivatives Essentials: an Introduction to Forwards,
Futures, Options and Swaps. Wiley, Hoboken (2016).
• John van der Hoek and Robert James Elliot. Binomial Models in Fi-
nance. Springer, New York (2006).
6
Dividends and Interest

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.

6.1 Stocks with Dividends


For starters, suppose that risky asset S is a share of stock in a company that
pays a per-share dividend di at times {ti : i = 1, 2, . . . }, with 0 < t1 < t2 < · · · .
In reality, each ti could be one of four times:
• tdi , the declaration date, when the company behind S announces what
the amount di will be,
• tei , the effective or ex-dividend date, when first the owner of S may sell
it but still receive di ,
• tri , the record date, when the company behind S determines the owner
of record who will receive di ,
• tpi , the payment date, at which time di is paid to the owner of record.
Exchange-traded shares of stock are tracked by the exchange, to determine
ownership at tei −, the day before the ex-dividend date. The owner of record
is identified shortly after tei at tri . This allows time to reconcile information
from multiple sources. Only afterward is payment made at tpi . Thus,

tdi < tei < tri < tpi .

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.

Time Amount Declaration Ex-dividend Record Payment


index (d) (td ) (te ) (tr ) (tp )
0 $0.05 2014-10-24 2014-12-03 2014-12-05 2014-12-26
1 $0.05 2015-02-11 2015-03-04 2015-03-06 2015-03-27
2 $0.05 2015-04-17 2015-06-03 2015-06-05 2015-06-26
3 $0.05 2015-07-24 2015-09-02 2015-09-04 2015-09-25
4 $0.05 2015-10-22 2015-12-02 2015-12-04 2015-12-24
5 $0.05 2016-01-21 2016-03-02 2016-03-04 2016-03-25
6 $0.05 2016-04-29 2016-06-01 2016-06-03 2016-06-24
7 $0.075 2016-07-28 2016-08-31 2016-09-02 2016-09-23
8 $0.075 2016-10-28 2016-11-30 2016-12-02 2016-12-30
9 $0.075 2017-01-26 2017-03-01 2017-03-03 2017-03-31
10 $0.075 2017-05-01 2017-05-31 2017-06-02 2017-06-30
11 $0.12 2017-07-28 2017-08-30 2017-09-01 2017-09-29
12 $0.12 2017-10-25 2017-11-30 2017-12-01 2017-12-29
13 $0.12 2018-01-31 2018-03-01 2018-03-02 2018-03-30
14 $0.12 2018-04-25 2018-05-31 2018-06-01 2018-06-29
15 $0.15 2018-07-26 2018-09-06 2018-09-07 2018-09-28
16 $0.15 2018-10-24 2018-12-06 2018-12-07 2018-12-28
17 $0.15 2019-01-30 2019-02-28 2019-03-01 2019-03-29
18 $0.15 2019-04-24 2019-06-06 2019-06-07 2019-06-28
19 $0.18 2019-07-25 2019-09-05 2019-09-06 2019-09-27
20 $0.18 2019-10-22 2019-12-05 2019-12-06 2019-12-27
21 $0.18 2020-01-29 2020-03-05 2020-03-06 2020-03-27
22 $0.18 2020-04-22 2020-06-04 2020-06-05 2020-06-26
23 $0.18 2020-07-22 2020-09-03 2020-09-04 2020-09-25
24 $0.18 2020-10-21 2020-12-03 2020-12-04 2020-12-24
25 $0.18 2021-01-19 2021-03-04 2021-03-05 2021-03-26

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.

6.1.1 Effects on Forwards


Known dividends to be paid between now (t = 0) and expiry (t = T ) affect
the fair price in Forward contracts. Suppose that S and R are modeled in a
recombining binomial tree of N time steps. Let p(n, j) be the risk neutral up
probability at time n in state j, as defined in Eq.3.16:
R(n, j)S(n, j) − S(n + 1, j)
p(n, j) = , 0 ≤ n < N ; 0 ≤ j ≤ n.
S(n + 1, j + 1) − S(n + 1, j)
Stocks with Dividends 147

Let F1 (n, j) be the Forward price, negotiated at time n in state j, at which to


buy S at time n + 1. Assuming the no-arbitrage-expectation axiom (AE-free,
from Definition 3), it must satisfy
F1 (n, j) = E(S(n+1)) = p(n, j)S(n+1, j + 1) + (1−p(n, j))S(n+1, j). (6.1)
It is also possible to deduce Eq.6.1 from the weaker axiom of no arbitrage
opportunities. Let V be the long Forward contract with expiry time n + 1,
initiated at time n in state j with price F1 (n, j). This is a contingent claim on
S. Since its payoff is S − F1 and its initial price is 0, the generalized backward
pricing formula in this S, R model uses the risk neutral probability p and gives
p(n, j)V (n + 1, j + 1) + (1 − p(n, j))V (n + 1, j)
0 = V (n, j) =
R(n, j)
Substituting the payoffs
V (n + 1, j + 1) = S(n + 1, j + 1) − F1 (n, j),
V (n + 1, j) = S(n + 1, j) − F1 (n, j),
and then solving for F1 (n, j) gives Eq.6.1.
The Forward price relationship to S can also be used to derive risk neutral
probabilities. Note first that
S(n + 1, j) < F1 (n, j) < S(n + 1, j + 1),
since otherwise either the long or short Forward is an arbitrage opportunity.
Thus it is alway possible to express
F1 (n, j) = p1 S(n + 1, j + 1) + (1 − p1 )S(n + 1, j)
for some p1 with 0 < p1 < 1. But in fact p1 is necessarily the risk neutral
probability used to price all contingent claims involving S. To prove this, let
W be the Arrow-Debreu portfolio, combining S with a riskless asset B, that
pays 1 at (n + 1, j + 1) and 0 in the other state (n + 1, j). It may be hedged
with a portfolio containing B and V = S − F1 , the long Forward contract on
S:
W (n + 1, j + 1) = 1 = H0 R(n, j) + H1 V (n + 1, j + 1);
W (n + 1, j) = 0 = H0 R(n, j) + H1 V (n + 1, j).
Substituting for V , then for F1 , then solving for H0 yields
V (n + 1, j)
H0 =
R(n, j)[V (n + 1, j) − V (n + 1, j + 1)]
S(n + 1, j) − F1 (n, j)
=
R(n, j)[S(n + 1, j) − S(n + 1, j + 1)]
S(n + 1, j) − p1 S(n + 1, j + 1) − (1 − p1 )S(n + 1, j)
=
R(n, j)[S(n + 1, j) − S(n + 1, j + 1)]
p1
= ,
R(n, j)
148 Dividends and Interest

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

F1 (n, j) = p1 S(n+1, j + 1) + (1−p1 )S(n+1, j)

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

F1 (n, j) = S(n, j)R(n, j) − dn+1 . (6.3)

A similar effect results if S pays a proportional dividend dn+1 = δn+1 S, but


then the payment is state-dependent:

dn+1 (n, j) = δn+1 S(n, j).

Substitution into Eq.6.3 yields

F1 (n, j) = S(n, j) [R(n, j) − δn+1 ] . (6.4)


Stocks with Dividends 149

Dividends as annual rates


The further simplification that the dividend proportion is a constant, δn+1 =
δ paid at all 0 ≤ n < N , allows its effect to be expressed in terms of an
annualized rate q satisfying
N −1
1 X Nδ
q= δn+1 = , =⇒ δ = qT /N
T i=0 T

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.

Rewriting Eq.6.4 with this exponential approximation gives

F1 (n, j) ≈ S(n, j) [1 + (r − q)T /N ] ≈ S(n, j) exp((r − q)T /N ), (6.5)

so that a proportional dividend behaves like a reduction in the riskless return


rate. This is a common approximation used for Forwards and European-style
options on dividend paying stocks even if the P dividends are fixed amounts per
share rather than proportions. The sum i di of the dividends to be paid
over [0, T ] is divided by T and then by the spot price S0 to get an annualized
proportion rate q using P
di
q≈ i . (6.6)
T S0
P
This a good approximation if i di is much less than T S0 , which is true
for most stocks. However, it ignores the time value of money and treats S
as approximately constant over [0, T ]. Nevertheless, Eq.6.5 shows the right
direction and the approximate amount by which dividends adjust Forward
prices. The rate q from Eq.6.6 is a common extra input for pricing options on
dividend paying stocks in both continuous and discrete models.

6.1.2 Effects on American Call Options


Dividends influence the decision to exercise American Call options before ex-
piry. Taking ownership of the underlying asset just before the ex-dividend date
provides a cash bonus. If the dividend amount is sufficiently high and the Call
option is sufficiently in the money, then early exercise is optimal. This follows
from Lemma 6.3 below.
But first, to prove that a dividend payment is necessary for optimal early
Call exercise, suppose that S and R are modeled by recombining binomial
trees with positive interest rates, so R(n, j) > 1 for all (n, j). Let C(n, j) be
the price of an American-style Call option with strike price K and expiry T
150 Dividends and Interest

corresponding to time step N . Then


p(n, j)C(n + 1, j + 1) + (1 − p(n, j)C(n + 1, j)
C(n, j) ≥
R(n, j)
+ +
p(n, j) [S(n + 1, j + 1) − K] + (1 − p(n, j)) [S(n + 1, j) − K]

R(n, j)
+
[p(n, j)(S(n + 1, j + 1) − K) + (1 − p(n, j))(S(n + 1, j) − K)]

R(n, j)
+
[p(n, j)S(n + 1, j + 1) + (1 − p(n, j))S(n + 1, j) − K]
=
R(n, j)
+
[F1 (n, j) − K]
= , using Lemma 6.1.
R(n, j)
The inequalities of the first two steps follow from the American option prop-
erty that its price is the larger of its exercise value and its backward pricing
+ +
value. The third inequality follows from the general fact that [X] + [Y ] ≥
+
[X + Y ] for all X, Y .
Now let dn+1 be a dividend for S with ex-dividend date te = n + 1. This
affects the one-step Forward price F1 (n, j), so by Eq.6.4,
+ +  +
[F1 (n, j) − K] [S(n, j)R(n, j) − dn+1 − K] K + dn+1
= = S(n, j) −
R(n, j) R(n, j) R(n, j)
If there is no dividend, so dn+1 = 0, then this sequence of inequalities implies
 +
K
C(n, j) ≥ S(n, j) − (6.7)
R(n, j)
Considering whether to exercise the option at time n, note that it is worthless
unless S(n, j) > K. In that case, since K > 0 and R(n, j) > 1,
K
S(n, j) − > S(n, j) − K > 0,
R(n, j)
and since both differences are positive,
 +
K +
C(n, j) ≥ S(n, j) − > [S(n, j) − K] .
R(n, j)
Therefore, if dn+1 = 0, then the Call option is worth more than any positive
early exercise value at n. The equivalent contrapositive of this statement is:
Lemma 6.2 If early exercise at time n is optimal, then dn+1 > 0. 2
The converse to Lemma 6.2 requires additional hypotheses on the S, R
model as well as on the dividend amount. For simplicity, suppose that N = 1
is both the expiry date and the ex-dividend date. Let d1 > 0 be the dividend,
and consider under which conditions it is optimal to exercise an American-
style Call option at time 0.
Stocks with Dividends 151

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.

6.1.3 Dividends as Cash Flows


Another way to model a risky asset S that pays dividends is to decompose its
price into an ex-dividend portion, S 0 , and a cash flow portion, I:

S(t, ω) = S 0 (t, ω) + I(t),

where only S 0 requires a model of the future, continuous or discrete, depending


on states ω.
152 Dividends and Interest

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

Then the present value of the cash flow at time step n is



X dn+k
I(n) = , (6.8)
Rn · · · Rn+k−1
k=1

def
(abusing notation by writing I(n) = I(tn )).

Present value of a dividend cash flow


Under a few simplifying assumptions, there is an efficient way to compute
I(n) by induction, without infinite series. Suppose that:
• Rn depends only on the time tn . This avoids path-dependent cash flows.
• dn+1 ≥ 0, it has ex-dividend date te = tn+1 , it is paid immediately at
tp = tn+1 , and it is credited to the asset owner of record at te − = tn .
Thus dn+1 > 0 =⇒ I(n) > 0.
• There is some finite future time step N > 0, so 0 < tN < ∞, after which
dividends are ignored: dn+1 = 0 for all n > N . This makes Eq.6.8 a
finite sum and implies that I(n) = 0 for all n > N .
The proof of the following Lemma is left as an exercise:
Lemma 6.4 The present value sequence {I(n) : n = 0, 1, 2, . . . } satisfies the
equations:

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

Octave implementation and indexing conventions


The recursion in Lemma 6.4 may be implemented as a single loop in Octave,
given N, the dividend sequence {d1 , . . . , dN +1 } =d(2:N+2), and the riskless
returns sequence {R0 , R1 , . . . , RN } =R(1:N+1). The output will be the present
value cash flow sequence I(0), I(1), . . . , I(N ) =I(1:N+1), part of an infinite
sequence that has the conventional values I(n) = 0 for all n > N .
For consistency, all the time indices in Octave/MATLAB arrays are one
more than the time indices in the textbook formulas:

I(N+1) = d(N+2)/R(N+1); % ignore later dividends


for n=(N-1):(-1):0 % textbook time index n={N-1,...,1,0} is
I(n+1)=(I(n+2)+d(n+2))/R(n+1); % ..Octave array index n+1
end

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.

Modified CRR model with separated dividend cash flow


In the recombining binomial tree model, separating the dividend cash flow
from S to get the risky ex-dividend portion S 0 yields the equation
def
S 0 (n, j) = S(n, j) − I(n). (6.10)

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

p(n, j)S 0 (n+1, j+1) + (1−p(n, j))S 0 (n+1, j)


S 0 (n, j) =
R(n, j)

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.

Time Date DGS3MO R/yr R/mo R/qtr


index (yyyy-mm-dd) (r × 100) (er ) (er/12 ) (er/4 )
0 2014-12-04 0.02 1.000200 1.0000167 1.0000500
1 2015-03-03 0.02 1.000200 1.0000167 1.0000500
2 2015-06-03 0.02 1.000200 1.0000167 1.0000500
3 2015-09-02 0.03 1.000300 1.0000250 1.0000750
4 2015-12-02 0.21 1.002102 1.0001750 1.0005251
5 2016-03-02 0.36 1.003606 1.0003000 1.0009004
6 2016-06-01 0.30 1.003005 1.0002500 1.0007503
7 2016-08-31 0.33 1.003305 1.0002750 1.0008253
8 2016-11-30 0.48 1.004812 1.0004001 1.0012007
9 2017-03-01 0.63 1.006320 1.0005251 1.0015762
10 2017-05-31 0.98 1.009848 1.0008170 1.0024530
11 2017-08-30 1.03 1.010353 1.0008587 1.0025783
12 2017-11-30 1.27 1.012781 1.0010589 1.0031800
13 2018-03-01 1.63 1.016434 1.0013593 1.0040833
14 2018-05-31 1.93 1.019487 1.0016096 1.0048367
15 2018-09-06 2.13 1.021528 1.0017766 1.0053392
16 2018-12-06 2.41 1.024393 1.0020104 1.0060432
17 2019-02-28 2.35 1.023778 1.0019603 1.0058923
18 2019-06-06 2.33 1.023574 1.0019436 1.0058420
19 2019-09-05 1.97 1.019895 1.0016430 1.0049371
20 2019-12-05 1.54 1.015519 1.0012842 1.0038574
21 2020-03-05 0.62 1.006219 1.0005168 1.0015512
22 2020-06-04 0.15 1.001501 1.0001250 1.0003751
23 2020-09-03 0.11 1.001101 1.0000917 1.0002750
24 2020-12-03 0.08 1.000800 1.0000667 1.0002000
25 2021-03-04 0.04 1.000800 1.0000667 1.0002000

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 :

S 0 (n, j) = S 0 (0, 0)uj dn−j . (6.11)

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:

S(n, j) = [S(0, 0) − I(0)]uj dn−j + I(n).


Stocks with Dividends 155

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 ,

where it is assumed that tn − tn−1 = T /N for every n = 1, . . . , N . In this


modified CRR model, the risk neutral probabilities are time-dependent:

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:

pn I(n + 1) + (1 − pn )I(n + 1) + dn+1


I(n) = . (6.13)
Rn
Furthermore, since S(n, j) = S 0 (n, j) + I(n), the two backward pricing formu-
las in Eqs.6.12 and 6.13 may be added to get

pn S(n + 1, j + 1) + (1 − pn )S(n + 1, j) + dn+1


S(n, j) = .
Rn
This is Eq.6.2 for the modified CRR model.

Octave implementation of modified CRR with dividends


To illustrate the effect of dividends on option prices, here is a function using
the modified CRR model with constant volatility and time-dependent riskless
return. It builds separate models of the ex-dividend Sx and cash flow Ipv
portions of the asset S with a function CRRmD(), using the modified Cox-Ross-
Rubinstein simplification:
1 function [ S , Sx , Ipv ] = CRRmD(T, S0 , Di , r i , v ,N)
2 % Octave /MATLAB f u n c t i o n t o model an a s s e t p r i c e
3 % a s a r i s k y ex−d i v i d e n d p r i c e Sx p l u s a r i s k l e s s
4 % d i v i d e n d c a s h f l o w p r e s e n t v a l u e Ipv , u s i n g t h e
5 % m o d i f i e d Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l
6 % p r i c i n g model with time−v a r y i n g r a t e s r i .
7 % INPUTS : ( Example )
8 % T = e x p i r a t i o n time (1 year )
9 % S0 = s p o t s t o c k p r i c e (100)
156 Dividends and Interest

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

Remark. Given a vector input ri corresponding to a time-varying sequence


of annualized riskless rates, the function CRRparams() returns vector outputs
pui and Ri corresponding to time-varying risk neutral up probabilities and
riskless returns.
The model may be used to compare American and European Call option
prices. It marks when early exercise is optimal, for an asset with known divi-
dends over the period from now to expiry:
1 function [ Ca , Ce , EE ] = CRRmDaeC(T, S0 , K, Di , r i , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e American and
3 % European C a l l o p t i o n s on an a s s e t decomposed
4 % i n t o S=Sx+Ipv by CRRD( ) , u s i n g t h e m o d i f i e d
5 % Cox−Ross−R u b i n s t e i n (CRR) y i e l d c u r v e model .
6 % INPUTS : ( Example )
7 % T = e x p i r a t i o n time (1 year )
8 % S0 = s t o c k p r i c e (100)
9 % K = strike price (101)
10 % Di = d i v i d e n d s e q u e n c e 2 :N+2 ( s e e below )
11 % r i = r i s k −f r e e APRs 1 :N+1 ( s e e below )
Stocks with Dividends 157

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 % OUTPUT:
15 % Ca = p r i c e o f American C a l l a t a l l ( n , j ) .
16 % Ce = p r i c e o f European C a l l a t a l l ( n , j ) .
17 % EE = I s e a r l y e x e r c i s e o p t i m a l a t ( n , j ) ?
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 % [ Ca , Ce , EE]=CRRmDaeC( 1 , 1 0 0 , 1 0 1 , 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 [ S , Sx , Ipv ]=CRRmD(T, S0 , Di , r i , v ,N) ; % decompose
25 Ca=zeros (N+1 ,N+1) ; Ce=zeros (N+1,N+1) ; % output
26 EE=zeros (N,N) ; % e a r l y e x e r c i s e o p t i m a l ? T/F
27 f o r j =0:N % t o s e t t e r m i n a l v a l u e s a t (N, j )
28 xC=S (N+1 , j +1)−K; % C a l l p a y o f f a t e x p i r y i s t h e
29 Ca (N+1 , j +1)=Ce (N+1, j +1)=max(xC , 0 ) ; % p l u s p a r t
30 end
31 f o r n=(N−1) :( −1) : 0 % 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 % Backward p r i c i n g f o r A and E :
34 bCe=( p u i ( n+1)∗Ce ( n+2, j +2) + . . .
35 (1− p u i ( n+1) ) ∗Ce ( n+2, j +1) ) / Ri ( n+1) ;
36 bCa=( p u i ( n+1)∗Ca ( n+2, j +2) + . . .
37 (1− p u i ( n+1) ) ∗Ca ( n+2, j +1) ) / Ri ( n+1) ;
38 xC=S ( n+1 , j +1)−K; % C a l l e x e r c i s e v a l u e
39 % S e t p r i c e s a t node ( n , j ) :
40 Ce ( n+1 , j +1)=bCe ; % a lw ays b i n o m i a l p r i c e
41 Ca ( n+1 , j +1)=max( bCa , xC) ; % h i g h e s t p r i c e
42 % I s e a r l y e x e r c i s e optimal ?
43 EE( n+1 , j +1)=(xC>bCa ) ; % Yes , i f xC>bCa
44 end
45 end % . . . backward i n d u c t i o n p r i c i n g :
46 return ; % Ca , Ce , and EE a r e d e f i n e d .
47 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;

(These will be converted into quarterly returns by CRRparams().)


Finally, apply CRRmD() to find the ex-dividend model and the dividend cash
flow model, and apply CRRmDaeC() to price the American and European style
Call options with dividends, find early exercise opportunities, and compare
their premiums:
T=6; S0=17.90; K=30; N=24; sigma=0.1779;
[S,Sx,Ipv]=CRRmD(T,S0,BACdivQ,ri,sigma,N);
Ipv(1) % = 2.847, present value of dividend cash flow
Sx(1,1) % = 15.053, ex-dividend spot price.
[Ca,Ce,EE]=CRRmDaeC(T,S0,K,BACdivQ,ri,sigma,N);
Ca(1,1),Ce(1,1) % 0.29852, 0.28688 ==> early exercise premium
EE % TRUE (=1) shows where early exercise is optimal
Ca>Ce % TRUE (=1) where American-style > European-style

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.”

Interpolation from quarterly to monthly time steps


Modeling monthly samples of the dividend cash flow and ex-dividend prices
may be done by interpolating, or rather injecting, the quarterly data.
For the example above, reuse BACdivQ at every third position in BACdivM to
get a sequence of 76 monthly values with two zero dividends between adjacent
dividend months:
% Monthly BAC dividends:
BACdivM=zeros(1,76); % allocate the array
for m=0:25 % indices of quarters from Dec, 2014
BACdivM(3*m+1) = BACdivQ(m+1); % every 3rd month
end
Stocks with Dividends 159

Then triplicate ri into an array r3i of riskless one-month returns, which is


equivalent to assuming that the quarterly rate holds for three months:
% Monthly riskless return factors:
r3i=zeros(1,75); % textbook time indices 0,1,...,74
for q=0:24 % triplicated quarterly rates
r3i(3*q+1)=r3i(3*q+2)=r3i(3*q+3)=ri(q+1);
end

(These will be converted into monthly returns by CRRparams().)


Repeating CRRmD() and CRRmDaeC() with these longer arrays and larger
N but otherwise identical parameters T, S0 , K, σ gives nearly the same prices:
T=6; S0=17.90; K=30; N=72; sigma=0.1779;
[S,Sx,Ipv]=CRRmD(T,S0,BACdivM,r3i,sigma,N);
Ipv(1) % = 2.677, present value of dividend cash flow
Sx(1,1) % = 15.223, ex-dividend spot price
[Ca,Ce,EE]=CRRmDaeC(T,S0,K,BACdivM,r3i,sigma,N);
Ca(1,1),Ce(1,1) % 0.32185, 0.30802 ==> early exercise premium
EE % TRUE (=1) shows where early exercise is optimal
Ca>Ce % TRUE (=1) where American-style > European-style

Octave implementation of plain CRR with dividends


The unmodified CRR model with constant volatility and riskless return may
be implemented by changing just a few lines in CRRmD.m and CRRmDaeC.m:
1 function [ S , Sx , Ipv ] = CRRD(T, S0 , Di , r , v , N)
2 % Octave /MATLAB f u n c t i o n t o model an a s s e t p r i c e
3 % a s a r i s k y ex−d i v i d e n d p r i c e Sx p l u s a r i s k l e s s
4 % d i v i d e n d c a s h f l o w p r e s e n t v a l u e Ipv , u s i n g t h e
5 % 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 .
6 % INPUTS : ( Example )
7 % T = e x p i r a t i o n time (1 year )
8 % S0 = s p o t s t o c k p r i c e (100)
9 % 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 )
10 % r = c o n s t a n t r i s k −f r e e annual 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 (12)
13 % OUTPUTS:
14 % 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 ) .
15 % 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 ) .
16 % 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 .
17 % EXAMPLE:
18 % Di =[0 1 0 0 1 0 0 2 0 0 2 0 0 2 ] ; % Di ( k+1)=d_k
19 % [ S , Sx , Ipv ]=CRRD( 1 , 1 0 0 , Di , 0 . 0 2 , 0 . 1 5 , 1 2 ) ;
20 %
21 [ pu , up ,R] = CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
22 Sx=zeros (N+1,N+1) ; S=zeros (N+1,N+1) ;
23 Ipv=zeros ( 1 ,N+1) ; % . . . a l l o c a t e output m a t r i c e s
24 Ipv (N+1)=Di (N+2)/R; % i g n o r e Di ( n+1)=d_n i f n>N+1
160 Dividends and Interest

25 f o r n=(N−1) :( −1) : 0 % t e x t b o o k time i n d i c e s


26 Ipv ( n+1)=( Ipv ( n+2)+Di ( n+2) ) /R; % Di ( n )=d_{n+1}
27 end % . . . backward r e c u r s i o n f o r Ipv .
28 Sx ( 1 , 1 )=S0−Ipv ( 1 ) ; S ( 1 , 1 )=S0 ; % i n i t i a l v a l u e s
29 f o r n=1:N % t e x t b o o k time i n d i c e s
30 f o r j =0:n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
31 Sx ( n+1 , j +1)=Sx ( 1 , 1 ) ∗up ^(2∗ j −n ) ;
32 S ( n+1 , j +1)=Sx ( n+1, j +1)+Ipv ( n+1) ;
33 end
34 end % . . . f o r w a r d r e c u r s i o n f o r Sx and S .
35 return ; % P r i c e s a r e i n S , Sx , and Ipv .
36 end

1 function [ Ca , Ce , EE ] = CRRDaeC(T, S0 , K, Di , r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e American and
3 % European C a l l o p t i o n s on an a s s e t decomposed
4 % i n t o S=Sx+Ipv by CRRD( ) , u s i n g t h e CRR model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time (1 year )
7 % S0 = s t o c k p r i c e (100)
8 % K = strike price (101)
9 % Di = d i v i d e n d s e q u e n c e 2 :N+2 ( s e e below )
10 % r = a n n u a l i z e d 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 (12)
13 % OUTPUT:
14 % Ca = p r i c e o f American C a l l a t a l l ( n , j ) .
15 % Ce = p r i c e o f European C a l l a t a l l ( n , j ) .
16 % EE = I s e a r l y e x e r c i s e o p t i m a l a t ( n , j ) ?
17 % EXAMPLE:
18 % Di =[0 1 0 0 1 0 0 2 0 0 2 0 0 2 ] ; % Di ( k+1)=D_k
19 % [ Ca , Ce , EE]=CRRDaeC( 1 , 1 0 0 , 1 0 1 , Di , 0 . 0 2 , 0 . 1 5 , 1 2 ) ;
20 %
21 [ pu , up ,R]=CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
22 [ S , Sx , Ipv ]=CRRD(T, S0 , Di , r , v ,N) ; % decompose
23 Ca=zeros (N+1 ,N+1) ; Ce=zeros (N+1,N+1) ; % output
24 EE=zeros (N,N) ; % e a r l y e x e r c i s e T/F
25 f o r j = 0 :N % t o s e t t e r m i n a l v a l u e s a t (N, j )
26 xC=S (N+1 , j +1)−K; % C a l l p a y o f f a t e x p i r y . . .
27 Ca (N+1 , j +1)=Ce (N+1, j +1)=max(xC , 0 ) ; % p l u s p a r t
28 end
29 f o r n = (N−1) :( −1) : 0 % t e x t b o o k time i n d i c e s
30 f o r j = 0 : n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
31 % Backward p r i c i n g f o r A and E :
32 bCe=(pu∗Ce ( n+2 , j +2)+(1−pu ) ∗Ce ( n+2, j +1) ) /R;
33 bCa=(pu∗Ca ( n+2 , j +2)+(1−pu ) ∗Ca ( n+2, j +1) ) /R;
34 xC=S ( n+1 , j +1)−K; % C a l l e x e r c i s e v a l u e
35 % S e t p r i c e s a t node ( n , j ) :
36 Ce ( n+1 , j +1)=bCe ; % a lw ays b i n o m i a l p r i c e
Interest Rates 161

37 Ca ( n+1 , j +1)=max( bCa , xC) ; % h i g h e s t p r i c e


38 % I s e a r l y e x e r c i s e optimal ?
39 EE( n+1 , j +1)=(xC>bCa ) ; % Yes , i f xC>bCa
40 end
41 end % . . . backward i n d u c t i o n p r i c i n g :
42 return ; % Ca , Ce , and EE a r e d e f i n e d .
43 end
The example in the comments is a simple experiment:
Di=[0 1 0 0 1 0 0 2 0 0 2 0 0 2]; % Di(2:N+2)=d_{1:N+1}
[Ca,Ce,EE]=CRRDaeC(1,100,Di,101,0.02,0.15,12);
EE % shows when early exercise is optimal
Ca>Ce % shows how early exercise adds value

It illustrates how early exercise optimality propagates backward to make the


American Call option more valuable at predecessor states and times.

6.2 Interest Rates


Historical interest rates are not trustworthy predictors of future interest rates.
That job requires a model of the future, typically based on bond prices.
A bond traded on an exchange is actually a risky asset. Its price depends
on several factors:
• time to maturity, when it must be repaid,
• coupons, partial repayments required before maturity,
• creditworthiness, the probability of repayment without default,
• money supply, adjusted from time to time by government actions,
• market demand for capital.

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.

Octave function to convert between discounts and yields


These anonymous functions work with vector inputs t,T because of the point-
wise operators ./ and .*. They also work if t=0 but T is a vector, since the
expression 0-T is correctly evaluated as -T.
ZtT=@(r,t,T)exp(r.*(t-T)); rtT=@(Z,t,T)log(Z)./(t-T);

6.2.1 Zero-Coupon Bonds


Spot discount factors Z(0, T ) are priced by auction in markets. Their recip-
rocals provide riskless returns over various periods in financial models. Only
a few standard maturity times T are available, however. For other periods, it
is necessary to interpolate.
One method is exponential interpolation with the expected forward dis-
count of Eq.1.6. This is estimated from spot discounts at nearby maturities.
Namely, suppose that T1 < T < T2 and that Z(0, T1 ) and Z(0, T2 ) are known.
Determine the expected forward rate r from Eq.1.6:
Z(0, T2 )
Z̄(T1 , T2 ) = er[T1 −T2 ] = ,
Z(0, T1 )
and then interpolate the exponential function with that rate r to get an ex-
pected spot discount estimate
def
Z(0, T ) ≈ Z̄(0, T ) = Z(0, T1 )er[T1 −T ] (6.15)
 −T
 TT1−T
Z(0, T2 ) 1 2
= Z(0, T1 ) = Z(0, T1 )1−α Z(0, T2 )α ,
Z(0, T1 )
Interest Rates 163
def T1 −T T −T2
where α = T1 −T2 , so 1 − α = T1 −T2 .

Another method is spline interpolation. For discount factors, the interpo-


lation set is {(Tn , Z(0, Tn )) : n = 1, . . . , N } for maturities 0 < T1 < · · · TN .
When N > 2, the spline interpolation function is smoother than the piecewise
exponential function obtained from Eq.6.15 on adjacent [Tn , Tn +1]. Discounts
for 0 < T < T1 may use T0 = 0 as an endpoint for which Z(0, T0 ) = 1.

Octave function to interpolate Z(0, T ) by two methods.

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

6.2.2 Coupon Bonds


Zero-coupon bond discounts may be computed from coupon bond prices, using
the present value formula Eq.1.7.
164 Dividends and Interest

Price and Yield to Maturity


Traditionally, prices for bonds are computed after an auction where the bids
are made in percentages called yield to maturity (YTM). That percentage is
the rate r that appears in the present value computation for the bond. Leaving
r as a variable, the other parameters are
• F , the face value, often a nominal amount such as $100;
• T , the time to maturity, in years but with a precision of one day;
• I, the interest rate, annualized by adding up all coupons in one year;
• N , the number of coupon payments per year, such as two for semiannual
coupons or four for quarterly coupons;
• t, the time to the first coupon payment, in years but with a precision of
one day.
Thus the coupon rate is I/N and the coupon amount is F I/N .
At the issuance of the bond, T is an integer such as 2, 3, 5, 7, or 10 for US
Treasury notes, and then the price of the bond will be its present value:
NT NT
−rT
X F I −rn/N F X F I/N
P = Fe + e ≈ T
+ (6.16)
n=1
N (1 + r) n=1
(1 + r/N )n

where the second formula uses the Taylor approximation eθ ≈ 1 + θ which is


quite accurate for small |θ|.
Suppose that a company offers a series of coupon bonds with maturities
0 < T1 < T2 < · · · TM , each with a coupon paying an amount ci per dollar
of face value, i = 1, . . . , M at times ∆, 2∆, 3∆ . . . . Suppose for simplicity
that each Ti = Ni ∆ is an integer multiple of this interval, and that each
bond is repaid at Ti together with the last coupon payment. Denote the spot
prices of these bonds, per unit face value, by B1 , . . . , BM . If the company
is as creditworthy as the US government, then these spot prices should be
the present value of the cash flow from the coupons plus the repayment at
maturity. Then Eq.1.7 produces the linear system of equations
Ni
X
Bi = Z(0, Ti ) + ci Z(0, n∆), i = 1, . . . , M ; Ti = Ni ∆.
n=1

Here Z(0, T ) is the US Treasury zero-coupon bond discount with maturity T .


The matrix A for this linear system written as Az = b is
 
c1 · · · c1 1 + c1 0 · · · ··· ··· ··· 0
c
def  2
··· · · · c2 1 + c2 0 · · · 0 
A =  . ..  .

 .. . .. . 
cM · · · · · · cM 1 + cM
Interest Rates 165

The unknowns z and right-hand side b are


    
Z(0, T1 ) Z(0, ∆) B1
def 
z =  .. .. b =  ...  .
def 
= ;
   
. .
Z(0, TM ) Z(0, NM ∆) BM
There are M rows and NM columns. There is a unique solution if NM = M ,
for then A is a nonsingular matrix: lower triangular with nonzeros on the main
diagonal, so Az = b can be solved by forward substitution. This will be the
case for a series of bonds with maturities T = 1, 2, . . . , M and annual coupons,
so ∆ = 1 and NM = M :
Z(0, 1) = B1 /(1 + c1 )
Z(0, 2) = (B2 − c2 Z(0, 1))/(1 + c2 )
..
. (6.17)
Z(0, M ) = (BM − cM [Z(0, 1) + · · · + Z(0, M − 1)])/(1 + cM )

Interpolation with noninvertible A


When matrix A is not invertible, it is still possible to estimate Z(0, T ) by
using interpolation. Given M coupon bonds, use a model with M parameters:
M
X
Z(0, T ) = aM T M + · · · + a1 T + 1 = 1 + am T m . (6.18)
m=1

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

for i = 1, . . . , M . The right-hand side vector will now be


 
B1 − 1 − N1 c1
def  ..
b̂ =  ,

.
BM − 1 − NM cM

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.

6.2.3 Cash Flow Swaps


Suppose that the owner of an asset that pays a risky, time-varying interest
rate {r(t) : 0 ≤ t < T } wishes to swap, or exchange it for a steady cash flow
at a fixed interest rate κ. The fair rate κ must be computed with a model of
the future, used to estimate the risky rates as they change. Zero-coupon bond
discounts Z(0, T ) for standard choices of T provide the input data when first
estimating κ. Conversely, market rates for κ with various terms provide input
data to estimate Z(0, t) at all values of t.

Fair swap rates


In practice, estimates are needed only at discrete equispaced times
def
tn = nT /N = n∆t, n = 1, 2, . . . , N,

when the variable interest payments are made. Assume that the interest rate
remains constant over these small time intervals:

r(t) = rn , tn ≤ t < tn+1 .

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 )

which is commonly used in practice.


For example, consider the published rates for US T-Bills, which are zero-
coupon bonds with maturities of 4, 8, 13, 26, and 52 weeks. These were col-
lected at the website:
https://www.treasury.gov/resource-center/data-chart-center/
interest-rates/Pages/TextView.aspx?data=billrates
A selection from December 15, 2021 is in Table 6.3. The fair swap rate
for quarterly exchanges requires three of the zero-coupon bond discounts in

TABLE 6.3
Spot US T-bill rates and discounts on December 15, 2021.

Maturity T Yield Discount


(weeks) (years) (APR) Z(0, T )
4 4/52 0.03% 0.99998 = ZtT(.03/100,0,4/52)
8 8/52 0.05% 0.99992 = ZtT(.05/100,0,8/52)
13 1/4 0.06% 0.99985 = ZtT(.06/100,0,1/4)
26 1/2 0.13% 0.99935 = ZtT(.13/100,0,1/2)
52 1 0.27% 0.99730 = ZtT(.27/100,0,1)
168 Dividends and Interest

TABLE 6.4
Quarterly US T-bill rates and discounts, with interpolation.

Maturity T Discount Source Expected r̄


(weeks) (years) Z(0, T ) (or formula) (APR)
13 1/4 0.99985 Z(0, 1/4) from Table 6.3 0.060005%
26 2/4 0.99935 Z(0, 1/2) from Table 6.3 0.20008%
1 1
39 3/4 0.99832 Z(0, 1/2) 2 Z(0, 1) 2 0.41069%
52 4/4 0.99730 Z(0, 1) from Table 6.3 0.41069%

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).

Apply Eq.6.22 to the data in Table 6.4 to compute


!
1 1 − Z(0, 1)
κ= P4 = 0.0027035 = 0.27035%,
1/4 n=1 Z(0, n/4)

which may be done with the Octave commands


Z=[0.99985 0.99935 0 0.99730]; Z(3)=sqrt(Z(2)*Z(4))
kappa=4*(1-Z(4))/sum(Z), kappapct=kappa*100
r1bar=-log(Z(1))*400, r2bar=-log(Z(2)/Z(1))*400
r3bar=-log(Z(3)/Z(2))*400, r4bar=-log(Z(4)/Z(3))*400

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.

Relating swap rates


Denote by κ(T, ∆t) the market swap rate for the period [0, T ] with cash ex-
changes taking place at intervals ∆t. In practice, with units of years, T will
be a positive integer and ∆t will be either 1/2 for semiannual swaps, 1/4 for
quarterly swaps, or 1/12 for monthly swaps. The rates are always annualized
in the published quotes.
These market rates are not available for all combinations of T and ∆t. In
particular, semiannual swap rates are published for large T but only quarterly
swap rates are published for T = 1. An approximation for κ(1, 0.5) may be
obtained by equating compounded returns over one year, regardless of T :
 2  4
κ(T, 0.5) κ(T, 0.25)
1+ = 1+
2 4
Interest Rates 169

Solving gives " #


2
κ(T, 0.25)
κ(T, 0.5) = 2 1+ −1 . (6.23)
4
Put T = 1 to estimate an unavailable κ(1, 0.5) from a published κ(1, 0.25).
For example, the quarterly swap rate κ = κ(1, 0.25) computed from Table 6.4
gives an estimate
" 2 #
κ(1, 0.25)
κ̂(1, 0.5) = 2 1 + − 1 = 0.0027044 = 0.27044%.
4

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

AUD benchmarks. Short-term riskless rates for Australian dollars (AUD)


may be obtained directly from the benchmark BBSW, or Bank Bill SWaps
rate. A full description of this security and its market may be found at the
following URLs:
https://www.rba.gov.au/mkt-operations/resources/interest-rate-
benchmark-reform.html
https://www2.asx.com.au/content/dam/asx/benchmarks/asx-bbsw-
conventions.pdf
The Australian Securities Exchange (ASX) publishes the values at the URL
https://www.asx.com.au/data/benchmarks/bbsw-10-day-rolling-
history.pdf
A 10-day sample of these rates, collected in Table 6.5, provides a good illus-
tration of interest rate variability. This data consists of annualized percentage
rates for tenors of k ∈ {1, 2, 3, 4, 5, 6} months.3

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

The correspondence with zero-coupon bond discounts is

Z(0, k/12) = exp(−BBSW(k)/12) k = 1, 2, . . . , (6.25)

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)

3 By convention, “tenor” is used instead of “maturity” for calculated benchmark rates.


Interest Rates 171

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).

Date (d/m/y) Prime Fed Funds SOFR 30-Day MA 90-Day MA


11/03/22 3.250 0.080 0.05000 0.04967 0.04934
10/03/22 3.250 0.080 0.05000 0.04967 0.04934
11/02/22 3.250 0.080 0.05000 0.04833 0.04934
11/03/21 3.250 0.070 0.01000 0.03133 0.05812

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

by constructing an arbitrage otherwise.


2. Prove Eq.6.9 from Eq.6.8.
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.
Exercises 173

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

4. For the experiments below, use CRRDaeC() with the parameters T = 1,


S0 = 100, K = 101, r = 0.02, v = 0.20, and N = 12.
(a) Find a nonzero dividend sequence for which early Call exercise is
sometimes optimal.
(b) Find another nonzero dividend sequence for which early Call exercise
is never optimal.
5. Implement CRR pricing for American and European Put options on an
asset with dividends, using decomposition into risky ex-dividend and
riskless cash flow portions. (Hint: Make a few changes to CRRDaeC().)
For the experiments below, set T = 1, S0 = 100, K = 101, r = 0.02,
v = 0.20, and N = 12.
(a) Find a nonzero dividend sequence for which early Put exercise is
sometimes optimal.
(b) Find a nonzero dividend sequence for which early Put exercise is
never optimal.
6. Suppose that government bonds are available with maturities of 1, 2,
3, and 4 years, with annual coupons for 0.5, 0.6, 0.8, and 1.1% of face
value, respectively. Their spot prices are respectively 0.9994, 0.9992,
0.9989, and 0.9985 times face value.
(a) Compute the zero-coupon bond discounts Z(0, 1), Z(0, 2), Z(0, 3),
and Z(0, 4) implied by these inputs.
(b) Plot the yield curve implied by {Z(0, T ) : T = 1, 2, 3, 4}.
174 Dividends and Interest

7. Suppose that a company offers coupon bonds with maturities of 1, 2,


3, and 4 years, with semiannual coupons at 0.3, 0.4, 0.5, and 0.6% of
face value, respectively. Their spot prices are respectively 0.9994, 0.9992,
0.9989, and 0.9985 times face value.
(a) Compute the zero-coupon bond discounts Ẑ(0, 1), Ẑ(0, 2), Ẑ(0, 3),
and Ẑ(0, 4) implied by these inputs.
(b) Plot the yield curve implied by {Ẑ(0, T ) : 0 < T ≤ 4}.
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%.
Use both ex and its approximations 1 + x and 1 − x in the present value
calculation and compare the results.
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.

6.4 Further Reading


• Serena Alim and Ellis Connolly. “Interest Rate Benchmarks for the
Australian Dollar.” Bulletin, Reserve Bank of Australia, September
2018. https://www.rba.gov.au/publications/bulletin/2018/sep/
interest-rate-benchmarks-for-the-australian-dollar.html
• Vipul K. Bansal, M.E. Ellis, and John Marshall. “The Pricing of Short-
Dated and Forward Interest Rate Swaps.” Financial Analyst’s Journal
(1993), pp.82–87.
• Kathryn Barraclough and Robert E. Whaley. “Early Exercise of Put
Options on Stocks.” Journal of Finance 67:4 (August 2012), pp.1423–
1456.
• H.D. Grove and J. D. Bazley. “Interest Rate Swaps.” Journal of Account-
ing Education 15:4 (1997), pp.591–614.
7
Implied Volatility

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.

7.1 The Inverse Problem for Volatility


For any model of the future that gives a price function with volatility σ as
an input parameter, there is an inverse mapping that fits volatility to actual
market prices. This inverse mapping will be a function, giving a single σ for
each actual price, if the model’s dependence on σ is one-to-one. That is the case
for Black-Scholes Calls and Puts because of the Inverse Function Theorem:
Theorem 7.1 (Inverse Function) If f (σ) is a continuous function that is
differentiable at a point σ0 where f (σ0 ) = y0 , and f 0 (σ0 ) > 0, then
(a) f is one-to-one, in fact increasing, near σ0 ,
(b) f −1 (y) exists and is continuous near y0 , and
(c) f −1 (y) is differentiable at y0 with (f −1 )0 (y0 ) = 1/f 0 (σ0 ). 2
A proof of this theorem1 may be found in most Calculus textbooks. Apply
the theorem with f (σ0 ) = y0 being the spot Call price from the Black-Scholes
model with volatility σ0 . The derivative exists at σ0 : it is the Vega of the
option, one of the Greeks, which by Eq.2.35 is positive, the product of three
positive factors:
σ2
 
√ log SK0 + r + 20 T
f 0 (σ0 ) = κC = S0 φ(d1 ) T > 0, where d1 = √ .
σ0 T
The same holds for the Put price as a function of σ, since κP = κC by Eq.2.36.
Hence there is a unique implied volatility σ for the Black-Scholes model, for
any Call (or Put) spot price in the range of Eq.2.25 (or Eq.2.26).
1 This version also uses the Calculus fact that f 0 > 0 implies f is an increasing function.

175
176 Implied Volatility

To determine this range, consider d1 , d2 in Eq.2.24 (with v ← σ as in the


current notation). As σ → ∞, d1 → ∞ and d2 → ∞, so since Φ is a c.d.f., so
Φ(d) → 0 as d → −∞ and Φ(d) → 1 as d → +∞, it follows that C(0) < S0
and P (0) < K. But in fact these inequalities must hold in any arbitrage-free
market: no-arbitrage premiums will always be in the range of Black-Scholes
prices for some volatility. The Cox-Ross-Rubinstein model has the same range,
by a similar analysis. The proof is left as an exercise.

Octave/MATLAB bisection search


By the Intermediate Value Theorem, or IVT: if f is continuous on an interval
[a, b], and f (a) ≤ y ≤ f (b), then there exists some x ∈ [a, b] such that f (x) = y.
The bisection search method exploits this theorem iteratively: Evaluate
f (m) at the midpoint m = (a + b)/2. Either f (a) ≤ y ≤ f (m), in which case
x ∈ [a, m], or else f (m) ≤ y ≤ f (b), and thus x ∈ [m, b]. In either case, the
interval containing x is halved. Repeat k times to find x within a tolerance
interval of length 2−k |b − a|, which can be as small as desired.
1 function [ a , b]= b i s e c t i o n ( f , y , a , b , t o l )
2 % Octave /MATLAB f u n c t i o n t o per for m a b i s e c t i o n
3 % s e a r c h t o f i n d an i n t e r v a l [ a , b ] o f width l e s s
4 % than t o l e r a n c e t o l c o n t a i n i n g a p o i n t p such
5 % t h a t f ( p )=y . Assume f ( a )<y and f ( b )>y .
6 % INPUTS : ( Example )
7 % f = f u n c t i o n handle ( @sin )
8 % y = target value f o r f (p) (0.5)
9 % a = i n i t i a l l e f t endpoint (0.0)
10 % b = i n i t i a l r i g h t endpoint (1.0)
11 % tol s t o p when abs ( b−a )< t o l ( 1 e −5)
12 % OUTPUTS:
13 % [ a , b ] = f i n a l i n t e r v a l endpoints
14 % EXAMPLE:
15 % [ a , b ] = b i s e c t i o n ( @sin , 0 . 5 , 0 . 0 , 1 . 0 , 1 e −5)
16 %
17 do
18 m=(a+b ) / 2 ; % midpoint
19 i f ( f (m)<y ) a=m; % then u s e [m, b ]
20 e l s e b=m; % e l s e u s e [ a ,m]
21 end
22 u n t i l ( abs ( b−a )< t o l ) % c l o s e enough !
23 return
24 end

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.

Volatility from the Black-Scholes formula


Implied volatility may be found using BS() defined in Chapter 2 on p.34:
1 % EXAMPLE: I m p l i e d v o l a t i l i t y u s i n g Black−S c h o l e s :
2 T=1; S0 =100; K=S0 ; r = 0 . 0 3 ;
3 f = @( s i g ) BS(T, S0 , K, r , s i g ) % C a l l option price
4 a =0.05; b=0.95; % i n i t i a l range of volatilities
5 y = 10.00; % make s u r e f ( a )<y and f ( b )>y !
6 bisection ( f ,y ,a ,b,0.001)

Volatility from Cox-Ross-Rubinstein models


Implied volatility may also be computed using a discrete model for pricing
European-style Call premiums, such as CRR() defined in Chapter 3 on p.88:
1 % EXAMPLE: I m p l i e d v o l a t i l i t y u s i n g CRR:
2 T=1; S0 =100; K=S0 ; r = 0 . 0 3 ; N=100;
3 g = @( s i g ) CRR(T, S0 , K, r , s i g ,N) ( 1 , 1 ) % r e t u r n s C( 0 )
4 a =0.05; b=0.95; % i n i t i a l range of v o l a t i l i t i e s
5 y = 10.00; % make s u r e g ( a )<y and g ( b )>y !
6 bisection (g , y , a ,b ,0.001)

7.2 Implied Volatility Surfaces


An options chain is a table of market prices for Call and Put options on a
single underlying asset S, for example a share of stock in Bank of America.
These tables are published by exchanges and other financial institutions, for
example at this URL:
https://www.nasdaq.com/market-activity/stocks/bac/option-chain
Assuming that the riskless return rate is known and constant over the
period [0, T ], and using market values for the spot price S0 and option premi-
ums C(0) and P (0) in the options chain, it is possible to estimate the implied
volatility σ(Ti , Kj ) for various expiries 0 < Ti < T and strike prices Kj ≈ S0 .
The plot of σ(Ti , Kj ) over the grid of values (Ti , Kj ) may be interpreted as
points on a volatility surface.
Values of σ(Ti , Kj ) are found by solving the inverse problem
C(0, Ti , Kj ) = f (Ti , S0 , Kj , r, σ(Ti , Kj ))
178 Implied Volatility

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.

Octave commands to graph an implied volatility surface.


The following Octave code uses a double loop to put these volatilities into a
matrix Vimp. They may then be plotted with mesh(x,y,z). This produces a
perspective plot, displayed in Figure 7.1, of a polygonal surface approximating
the function whose value at z(row,col) is determined by x(col) and y(row).
Implied Volatility Surfaces 179

Ks=40:46; Ts=[3,9,21,35,63]; % strikes and days to expiry


C=[4.14 4.35 4.85 4.60 5.15; 3.20 3.42 3.50 4.00 4.35; ...
2.24 2.72 2.89 3.15 3.65; 1.30 1.51 1.96 2.44 2.87; ...
0.63 0.86 1.34 1.71 2.39; 0.23 0.45 0.84 1.24 1.76; ...
0.07 0.22 0.52 0.88 1.39]; % Call premiums on 2021-12-14
S0=44.13; r=0.05; % spot price and riskless APR on 2021-12-14
Vimp=zeros(length(Ks),length(Ts)); % implied volatilities
minv=0.01; maxv=0.99; tol=0.00001; % bisection parameters
for col=1:length(Ts)
T=Ts(col)/365; % time to expiry in years
for row=1:length(Ks)
f=@(v) BS(T,S0,Ks(row),r/100,v); % Black-Scholes Call
Vimp(row,col)=bisection(f,C(row,col),minv,maxv,tol);
end
end
mesh(Ts,Ks,Vimp); % note the transposed order (T,K,V(K,T))
title("Implied Volatility Surface");
xlabel("T (days)"); ylabel("K");

Implied Volatility Surface

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

7.3 Implied Binomial Trees


Consider the problem of fitting a recombining binomial tree model of risky
asset prices {S(n, j) : 0 ≤ n ≤ N, 0 ≤ j ≤ n} to this market data:

• known spot price S(0),


• constant riskless rate r,
• options premiums {Ci (0)} for European-style Calls on S with fixed ex-
piry T > 0 at various strike prices {Ki : i = 1, . . . , m}.
It may be assumed that depth N of the tree is sufficiently large to provide
enough free parameters to fit the target spot price and Call option premiums.
2j−N
One idea is to fix N large enough,
p model S(N, j) = S(0)u using CRR
volatility parameter v in u = exp(v T /N ), and then find a probability mass
function Q(N, j) on the terminal states 0 ≤ j ≤ N at depth N such that
N
X
1 = Q(N, j), with Q(N, j) > 0, all j;
j=0
N
X +
Ci (0) = e−rT Q(N, j) [S(N, j) − Ki ] , i = 1, . . . , m.
j=0
N
X
S(0) = e−rT Q(N, j)S(N, j), (7.1)
j=0

These are evidently Arrow-Debreu expansions. The discounted probability


e−rT Q(N, j) plays the role of λ(N, j), the spot price of the unit security that,
at time N , pays 1 in state j and 0 in all other states. The system of equations
may be written in matrix form using the payoff matrix

rT
e ,
 i = 0; j = 0, 1, . . . , N,
A(i, j) = [S(N, j) − Ki ]+ , i = 1, . . . , m; j = 0, 1, . . . , N, (7.2)

S(N, j), i = m + 1; j = 0, 1, . . . , N.

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

erT q = Ak, (7.4)

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)

These inequalities will hold if and only if



 
1 S(0) maxi Ki
√ log max , < v N.
T mini Ki S(0)

In both cases, the inequalities hold for all sufficiently large N .


Remark. These conditions are necessary but not sufficient to preclude ar-
bitrage since some of the option premiums in q may be mispriced.

7.3.1 Path Independent Probabilities


Suppose that a positive solution {Q(N, j) : j = 0, . . . , N } is found for Eq.7.4.
It may be used to define a probability Q(n, j) for each state (n, j) in a binomial
tree of S prices. Then Arrow-Debreu prices and risk neutral probabilities may
be computed from {Q(n, j) : n = 0, . . . , N ; j = 0, . . . , n}.
The first construction assumes that Q(n, j) is the sum of the equal prob-
abilities of all paths from (0, 0) to (n, j). The number of such paths is the
number of ways to move up j times in n steps, which is
 
n n!
= .
j j!(n − j)!

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

since one of the equiprobable paths (0, 0) → (n + 1, j + 1) first gets to (n, j)


and then goes up to (n + 1, j + 1) with probability p(n, j). Likewise, one path
(0, 0) → (n + 1, j) first gets to (n, j) and then goes down with probability
1 − p(n, j). Solving for p and 1 − p gives
 
j + 1 Q(n + 1, j + 1)
p(n, j) = (7.5)
n+1 Q(n, j)
 
j Q(n + 1, j)
1 − p(n, j) = 1−
n+1 Q(n, 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

Finally, the Arrow-Debreu spot prices may be computed by discounting the


probabilities:

Q(n, j)
λ(n, j) = , n = 0, 1, . . . , N ; j = 0, 1, . . . , n. (7.7)
Rn

7.3.2 Jackwerth’s Generalization


Risk neutral probabilities to be used in the implied binomial tree are not
uniquely defined by the probability function on states at expiry. A weight
function w may be introduced to change the backward induction:
    
j+1 j
Q(n, j) = w Q(n+1, j+1) + 1−w Q(n+1, j), (7.8)
n+1 n+1

for n = N − 1, . . . , 1, 0 and j = 0, . . . , n, with the solution to Eqs.7.1 giving


the terminal values {Q(N, j) : j = 0, . . . , N }. Equation 7.6 is of this form with
w(θ) = θ, but w may be any fixed function defined on [0, 1] that satisfies

0 < θ < 1 =⇒ 0 < w(θ) < 1; w(0) = 0; w(1) = 1. (7.9)

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)

It is left as an exercise to 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 induction, Eq.3.21 on p.69. They may therefore be used to price any
asset that satisfies a backward induction with p, 1 − p, and R:
Theorem 7.3 Suppose that V is an asset that satisfies

p(n, j)V (n + 1, j + 1) + (1 − p(n, j))V (n + 1, j)


V (n, j) = ,
R
for n = 0, 1, . . . , N − 1 and j = 0, 1, . . . , n. Then for any n,
n
X
V (0, 0) = V (n, j)λ(n, j)
j=0

namely the spot price of V has an Arrow-Debreu expansion as a weighted sum


of its future values.
Proof: Proceed by induction on n. The result is evidently true at n = 0, where
the sum contains a single term:

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

Z(n, j) = p(n, j)Z(n + 1, j + 1) + (1 − p(n, j))Z(n + 1, j).


Implied Binomial Trees 185

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

7.3.3 Rubinstein’s One-Two-Three Algorithm


There is an explicit fit to the spot price and options chain due to Mark Ru-
binstein. The inputs are as follows:
• The spot price S0 of the stock.
• A sequence of equispaced, ascending strike prices:
def
K1 < K2 < · · · Km ; ∆ = Ki+1 − Ki > 0, all i = 1, . . . , m − 1,

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 ),

where r is the riskless annual interest rate determined from zero-coupon


government bonds.
186 Implied Volatility

The algorithm builds a minimal tree of depth N = m + 1 that fits some


of the market data. The model for S(T ) is the bottom row {S(N, j) : j =
0, . . . , N } of a recombining binomial tree, mostly consisting of the strike prices:

S(N, j) = Kj , j = 1, 2, . . . , N − 1(= m);


S0 − C1 + K1 (C2 − C1 )/∆
S(N, 0) = , (7.13)
1/R + (C2 − C1 )/∆
∆Cm
S(N, N ) = + Km
Cm−1 − Cm
Rather than solve a linear system of equations, the time-T probabilities are
mostly chosen to be butterfly spread premiums:
R
Q(N, j) = [Cj−1 − 2Cj + Cj+1 ] , j = 2, . . . , N − 2(= m − 1);

Q(N, 1) = 0; Q(N, N − 1) = 0; (7.14)
N
R X
Q(N, N ) = [Cm−1 − Cm ] ; Q(N, 0) = 1 − Q(N, j).
∆ j=1

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.

Octave functions to find an implied binomial tree.


Rubinstein’s 1-2-3 algorithm is readily implemented with Jackwerth’s weight
function. The original version uses the weight w(x) = x, defined by an anony-
mous function as in the example in the comments.
1 function [ S , Q, up , down , pu , N1]=IBT123J ( S0 , Ks , Cs , rho , w)
2 % Octave /MATLAB f u n c t i o n t o compute an i m p l i e d b i n o m i a l
3 % t r e e from s p o t p r i c e s and market European−s t y l e C a l l
4 % o p t i o n ask p r i c e s , by R u b i n s t e i n ’ s " 1 , 2 , 3 " method
5 % with Jackwerth ’ s g e n e r a l i z a t i o n .
6 % INPUTS : ( Example )
7 % S0= s p o t s t o c k p r i c e (BAC 2 0 2 1 / 1 2 / 1 1 : 44.52)
8 % Ks= e q u i s p a c e d , i n c r e a s i n g s t r i k e p r i c e s (40:46)
9 % Cs= C a l l a s k s ([5.6 ,4.8 ,4.1 ,3.45 ,2.87 ,2.29 ,1.81])
10 % rho= r i s k l e s s r e t u r n ( t o 2 0 2 2 / 3 / 2 0 : ( exp ( r ∗ 1 0 9 / 3 6 5 ) )
11 % w= w e i g h t f u n c t i o n (w=@( x ) x )
12 % OUTPUT:
13 % S = binomial t r e e of stock p r i c e s at a l l (n , j )
Implied Binomial Trees 187

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

63 Q = zeros (N1+1 ,N1+1) ; % a r r a y o f path p r o b a b i l i t i e s .


64 pu = zeros (N1+1 ,N1+1) ; % a r r a y o f one−s t e p up p r o b s .
65 up = zeros (N1+1 ,N1+1) ; % up f a c t o r s
66 down = zeros (N1+1 ,N1+1) ; % down f a c t o r s
67 S (N1+ 1 , : )=S1 ; % L a s t row o f pruned s t o c k p r i c e t r e e
68 Q(N1+ 1 , : )=Q1 ; % L a s t row o f s t a t e p r o b a b i l i t i e s t r e e
69 % Backward i n d u c t i o n t o f i l l t h e t r e e s
70 f o r n=N1−1: −1:0
71 f o r j =0:n
72 Qup=w( ( j +1) / ( n+1) ) ∗Q( n+2, j +2) ;
73 Qdown=(1−w( j / ( n+1) ) ) ∗Q( n+2, j +1) ;
74 Q( n+1, j +1)=Qup+Qdown ;
75 pu ( n+1 , j +1) = Qup/Q( n+1, j +1) ; % Eq . 7 . 1 1
76 S ( n+1 , j +1) = ( pu ( n+1 , j +1)∗S ( n+2, j +2)
77 + (1−pu ( n+1, j +1) ) ∗S ( n+2, j +1) ) /R;
78 up ( n+1 , j +1) = S ( n+2, j +2)/S ( n+1, j +1) ; % upfactor
79 down ( n+1 , j +1) = S ( n+2, j +1)/S ( n+1 , j +1) ; % d o w n f a c t o r
80 end
81 end
82 return ;
83 end

It is left as an exercise to compute the implied binomial tree with different


Jackwerth weights and to compare the results.
Experiments and simulations may be performed with implied binomial
trees, as they yield a model of the future that incorporates market information.
In particular, other contingent claims on S, including novel exotic ones, may
be priced using the implied recombining binomial tree built from Call option
premiums. This is left as a project for the ambitious reader.
Remark. Two alternatives to Rubinstein’s construction are the Derman and
Kani algorithm and the Barle and Cakici algorithm, described in the Further
Reading section below.

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

Also, the US T-bill rates for various maturities were


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.
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.

7.5 Further Reading


• Stanko Barle and Nusret Cakici, “How to Grow a Smiling Tree.” Journal
of Financial Engineering 7 (1998), pp.127–146.
190 Implied Volatility

• Emanuel Derman and Iraj Kani. “Riding on a Smile.” RISK 7:2 (1994),
pp.139–145.

• Wolfgang K. Härdle and Alena Myšičková. Numerics of Implied Bi-


nomial Trees. SFB 649 Discussion Paper 2008-044, ISSN 1860-5664,
Humboldt-Universität zu Berlin (2008).
• Jens Carsten Jackwerth and Mark Rubinstein. “Recovering Probabil-
ity Distributions from Option Prices.” Journal of Finance 51 (1996),
pp.1611–1631.
• Jens Carsten Jackwerth, “Generalized Binomial Trees.” Journal of
Derivatives 5:2 (1997), pp.7–17.
• Mark Rubinstein. “Implied Binomial Trees.” Journal of Finance 49:3
(1994), pp.771–818.
8
Fundamental Theorems

In Chapter 7, market-negotiated premiums for derivatives were used to build


a model of the future for the underlying risky asset. As defined in Chapter 1,
such a model is a set of future states, representing possible future prices, with
a probability function on the states.
The goal in this chapter is to prove that such a model exists, or more pre-
cisely that there exists a probability function for future states in any market
without arbitrage. This can be done rigorously for discrete financial models us-
ing only Linear Algebra, Geometry, and Calculus in Rn . The result is called
the “Fundamental Theorem on Asset Pricing.” There are two versions, de-
pending on the type of no-arbitrage hypothesis. The two versions have subtly
different proofs. They are presented here to illuminate some of the abstract
ideas underlying financial models and calculations.

8.1 Finite Financial Models


Recall that in general, an asset a : T × Ω → R is a stochastic process, a
time-varying random variable on a set of times T , over probability space Ω.
Then a(t, ω) is the price of the asset at time t ∈ T in state ω ∈ Ω.
T contains time t = 0, the present, and at least one future time t > 0,
since contingent claims have future payoffs. Ω likewise contains at least two
states, to model uncertainty about the future.
A finite financial model simplifies the choices for T and Ω to the finite sets
T = {0, 1} and Ω = {1, 2, . . . , n}, with fixed n ≥ 2. Then calculations are
performed using just the prices at one of two times in one of n states:
• The spot price a(0), of asset a, assumed to be the same in all states at
time t = 0.

• The payoff a(1, j), of asset a, at future time t = 1, in state ω = j.


The payoff vector a = (a(1, 1), . . . , a(1, j), . . . , a(1, n)) lists all the modeled
future prices for the asset. A market will have a finite number m ≥ 1 of
possibly risky assets, indexed as ai : T × Ω → R, 1 ≤ i ≤ m, which will each
have spot price ai (0), payoff ai (1, j), and payoff vector ai , respectively.

191
192 Fundamental Theorems

It will be assumed throughout that there is a numeraire, also called cash,


that determines the units in which all other assets are priced. This implies
the existence of at least one riskless asset, denoted here by a0 with spot price
a0 (0) = 1 and constant payoff vector a0 = (R, . . . , R) of riskless returns R ≥ 1.
These notions correspond to some familiar abstractions from linear algebra:
Definition 4 (Market Matrices) Using T = {0, 1} and Ω = {1, 2, . . . , n},
a finite market with m assets and cash is modeled by a matrix A and a vector
q, namely:
• Payoff matrix
   
1 1 ... 1
 a   a1 (1, 1) ... a1 (1, n) 
def  1 
A =  . = ,
 
.. .. ..
 ..   . . . 
am am (1, 1) . . . am (1, n)

where ai (1, j) is the payoff of asset i in state j, and


• Spot price vector  
1
 a (0) 
def  1
q =  . .

 .. 
am (0)

The top row of A is the numeraire, or cash. It may be replaced by a row of


riskless returns R ≥ 1, the same in all states, without loss of generality.
A portfolio is a linear combination of assets from {ai : i = 0, 1, . . . , m},
each present in amount xi . It may be written as the column vector
 
x0
 x1 
x = (xi ) =  .  .
 
 .. 
xm
P
In the finite market modeled by A, q, any portfolio i xi ai (t, ω) represented
by the (column) vector of weights x has
• spot price xT q, and
• payoff vector xT A.

Remark. For consistency in linear algebra computations, payoffs will be


row vectors while spot price vectors, portfolio weight vectors, and probability
mass functions will be column vectors. Unfortunately, this is only one of several
conventions in use.
Finite Financial Models 193

The spot price of a portfolio is a number, so it is obvious what it means for


it to be positive or nonnegative. For the payoff vector, those concepts should
be defined componentwise:
Definition 5 (Vector Ordering) For v = (v1 , . . . , vn ) ∈ Rn ,
• Say that v is positive, and write v > 0, iff (∀j) vj > 0.
• Say that v is nonnegative, written v ≥ 0, iff (∀j) vj ≥ 0.
Here 0 = (0, . . . , 0) ∈ Rn is the zero vector. Additionally, for another vector
w ∈ Rn , write v > w to mean v−w > 0 and write v ≥ w to mean v−w ≥ 0.
Such positivity or nonnegativity is a property of orthants, which are subsets
of Rn that generalize the positive real line and the first quadrant of the plane:
Definition 6 (Orthants) Using the vector ordering notation,
• The closed orthant of vectors with nonnegative coordinates is
def
K = {v ∈ Rn : v ≥ 0}.

• Remove the point 0 = (0, . . . , 0) to get the pointless orthant


K \ 0 = {v ∈ Rn : v ≥ 0, (∃j) vj > 0}.

• The interior of K is the open orthant:


def
K o = {v ∈ Rn : (∀j) vj > 0} = {v ∈ Rn : v > 0}.

Definition 7 (Profitable Portfolios) Suppose that A is a market matrix.


• Say that p is a profitable portfolio iff it has a nonnegative payoff vector:
pT A ≥ 0. Equivalently, pT A ∈ K.
• Say that s is a strictly profitable portfolio iff it is profitable and also
has positive payoff in some state: (∃j) sT A(j) > 0. Equivalently, sT A ∈
K \ 0.

Remark. The trivial portfolio p = 0 is profitable for every A, but a market


without a numeraire
 might have no strictly profitable portfolios. For example,
let A = −1 1 be the market with two states for just one asset. A portfolio
here will consist of a one-component vector p = (x), so
pT A = −x x .


If either component of pT A is positive, the other must be negative, so it is


not possible to have pT A ∈ K \ 0.
A market with a numeraire, or cash, as its zero row allows the riskless,
all-cash portfolio x = (1, 0, . . . , 0). Since this satisfies xT A(j) = 1 for all j, it
is both profitable and strictly profitable. Likewise, a market with any riskless
asset contains a riskless porfolio that is both profitable and strictly profitable.
194 Fundamental Theorems

8.1.1 Arbitrage and Positivity


As before, an arbitrage is a portfolio x that yields profit without risk. The
definitions of the two deterministic types from Chapter 1 may be translated
into the notation of finite markets A, q and orthants K and K \ 0.
First note that in a finite financial model, it may be assumed that every
state has positive probability or else it would be omitted as superfluous.

Definition 8 An immediate or type one arbitrage (IA, as in Definition 1 on


p.11), is a portfolio x that satisfies the following:
IA1: xT q < 0, so it leaves a surplus at assembly,
IA2: xT A ≥ 0, so its price in all future states is nonnegative. This is equiv-
alent to xT A ∈ K.

The absence of such an arbitrage in a finite market A, q may be described as


an implication that one of the necessary properties negates the other:
Lemma 8.1 (IA-Free) Finite market A with spot prices q is immediate-
arbitrage-free iff any profitable portfolio must have a nonnegative price:

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

Definition 9 A type two arbitrage opportunity (AO, as in Definition 2 on


p.11) is a portfolio satisfying:
AO1: xT q ≤ 0, so it costs nothing to assemble,
AO2: xT A ≥ 0, so it does not lose money in any state, and
AO3: (∃j) xT A(j) > 0, so there is a state in which it makes a profit.
Note that AO2 and AO3 together are equivalent to xT A ∈ K \ 0.

The absence of this type of arbitrage opportunity may likewise be written as


an implication:
Lemma 8.2 (AO-Free) Finite market A with spot prices q is arbitrage-
opportunity-free iff any strictly profitable portfolio must have a positive price:

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

8.1.2 Fundamental Theorems of Asset Pricing


In any arbitrage-free market, the price vector q is a weighted average of the
payoffs in the states of Ω. This is a consequence of the previous lemmas and
some geometric facts to be proved in Section 8.3 below. For even the weakest
hypothesis of no immediate arbitrages, the weights must be nonnegative:
Theorem 8.3 (FT from IA-Free) Market A with spot prices q is immediate-
arbitrage-free if and only if there is a nonnegative vector k such that

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

xT q = xT (Ak) = (xT A)k ≥ 0,

Thus, by definition, A, q is IA-free.


( =⇒ ): Suppose that A, q is IA-free. Then q ∈ ((AK)0 )0 = AK by Corol-
lary 8.20 and Theorem 8.21. Conclude that there is some k ∈ K, namely some
k ≥ 0, such that q = Ak. 2

Under the stronger hypothesis that there are no arbitrage opportunities,


the weight vector must be strictly positive:
Theorem 8.4 (FT from AO-Free) Market A with spot prices q is AO-free
if and only if there is a positive vector k such that

q = Ak.

Proof: ( ⇐= ): Suppose that k > 0 solves q = Ak and let x be a strictly


profitable portfolio. Then

xT q = xT (Ak) = (xT A)k > 0,

since xT A ∈ K \ 0. Thus, by definition, A, q is AO-free.


( =⇒ ): Suppose that A, q is AO-free. Then q ∈ ((AK o )∗ )∗ = AK o by
Corollary 8.20 and Theorem 8.21 Conclude that there is some k > 0, namely
k ∈ K o , such that q = Ak. 2

8.2 Applications of the Fundamental Theorems


Suppose that payoff matrix A with spot price vector q corresponds to an
arbitrage-free market. The Fundamental Theorem implies that there is a vec-
tor k > 0 such that q = Ak. This k is a discounted risk neutral probability
196 Fundamental Theorems

function, expanding the spot prices of assets as the present value of a weighted
average of their modeled future values:

q(i) = Ak(i) = PV(E(ai )), i = 0, 1, . . . , m,

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

Minimize hsT q, subject to the constraint hsT A = d. (8.1)

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

Maximize hbT q, subject to the constraint that hbT A = d. (8.2)

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.

8.2.2 Complete Markets


Arbitrage-free market A with n states is complete iff every contingent claim
can be hedged exactly. This is true iff the row space of A is all of Rn , iff A has
full rank n. The row space is dependent on the discrete financial model, and
this full rank condition does not hold in general. For example, it cannot hold if
A has fewer rows (assets) than columns (states). However, it can be guaranteed
under additional assumptions. In particular, two-state market models with a
riskless asset and at least one risky asset are always complete.

Example: invertible market matrices


If A is invertible, then it has full rank and models a complete market. Thus
there exists a hedge h for any payoff d, such as any contingent claim on the
other modeled asset payoffs. Furthermore, this hedge portfolio is uniquely
determined: T
hT A = d =⇒ h = dA−1 .
By Theorem 8.4, this market will be arbitrage-opportunity-free (AO-Free) if
and only if there exists k ∈ K o such that q = Ak. But since A is invertible,
there is a unique solution:
Ak = q =⇒ k = A−1 q.
This leads to a simple test for arbitrages:
Corollary 8.6 Finite market model A, q with invertible A is arbitrage-free if
and only if A−1 q > 0. 2
It also provides an explicit formula for risk neutral probabilities. For example,
the two-asset, two-state market considered in Chapter 3 has finite model
   
R R 1
A= , q= .
S↓ S↑ S0
Here 1 is the spot price of one unit of the riskless asset that returns R > 1,
and S0 is the spot price for the risky asset with payoffs S↓ 6= S↑ . It may be
assumed, by renaming the two states if necessary, that S↓ < S↑ . Then solution
k has an explicit formula:
 S − RS 
↑ 0

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

The AO-Free condition holds, by Corollary 8.6, iff k > 0, iff


S↓ < RS0 < S↑ .
The positive components of k are the arbitrage-free weights to use when pric-
ing contingent claims on S that pay off when the riskless asset returns R.
Since the top row of A has R in every column, the top row of vector Ak is
R times the sum of the coefficients k. But that equals the top row coefficient
def
of q, which is 1. Thus p = Rk is a probability mass function on the states
Ω = {↓, ↑}:
S↑ − RS0 RS0 − S↓
p(↓) = , p(↑) = .
S↑ − S↓ S↑ − S↓
These are risk neutral probabilities since A, q is arbitrage-free, and they are
uniquely defined because A is invertible.

Example: noninvertible complete markets


In the general case of complete markets with n states but more than n assets,
A will have rank n but will not be invertible. Even so, if A, q is arbitrage-
free, there exists a unique k ∈ K o such that q = Ak. That is because the
Fundamental Theorem guarantees that such k exists, and AT A is invertible
because A has full row space rank, so k is uniquely determined by
AT q = AT Ak =⇒ k = (AT A)−1 AT q.
For example, let    
R R 1
A = a↓ a↑  ; q = a0 
b↓ b↑ b0
be a three-asset, two-state finite market model, where R > 1 represents riskless
return, and a↓ < a↑ . By the Fundamental Theorem, A, q is arbitrage-free iff
(∃k ∈ K o ) q = Ak. Writing k = (k1 , k2 ), this is three simultaneous linear
equations:
Rk1 + Rk2 = 1,
a↓ k1 + a↑ k2 = a0 ,
b↓ k1 + b↑ k2 = b0 .
There exists a solution k > 0 only if a↓ < Ra0 < a↑ , which together with the
first equation forces the unique solution
a↑ − Ra0 Ra0 − a↓
k1 = , k2 = ,
a↑ − a↓ a↑ − a↓
which determines b0 in terms of b↓ and b↑ , from the third equation. Conclude
that this arbitrage-free complete market must have a consistent risk neutral
weighting on future states, so that
a0 = PV(E(a)), b0 = PV(E(b)),
Applications of the Fundamental Theorems 199

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.

8.2.3 Incomplete Markets


In an incomplete market, matrix A has smaller rank than the number n of
modeled states. Therefore, not every payoff can be hedged. There may still
be derivatives with hedges, however, as an exercise below will show. There
may even be multiple hedges for some contingent claims, but there will be
model-dependent constraints on those derivatives.
Nevertheless, the seller of an arbitrary contingent claim in an incomplete
market can still protect against loss by superreplicating the payoff d. The seller
constructs a portfolio hs by solving
Minimize hsT q subject to hsT A ≥ d.
This is superreplication, creating the cheapest portfolio with a payoff that is
at least as much as the liability incurred by selling the derivative asset.
Conversely, the buyer of the contingent claim d compares its price to the
alternative portfolio hb solving
Maximize hbT q subject to hbT A ≤ d.
This is subreplication, pricing the most expensive of all portfolios worth no
more than the offered derivative.
Both superreplication and subreplication are convex optimization prob-
lems, solved by a minimum or maximum of a linear function, h 7→ hT q, on
the closed set {h : hT A ≥ d} or {h : hT A ≤ d}, respectively. The search
set for solutions h is the intersection of n half-spaces, one for each column
of A. Each half-space is a convex set, and the intersection of convex sets is
convex. Such problems are efficiently solvable by linear programming, as will
be described below.
If market A with prices q is arbitrage-free, then any profitable portfolio p
must have a nonnegative price:

pT A ≥ 0 =⇒ pT q ≥ 0.

Let p = hs − hb be the difference of the portfolios solving the hedge optimiza-


tion problems. Then

pT A = hsT A − hbT A ≥ d − d = 0,
200 Fundamental Theorems

so p is a profitable portfolio, so pT q ≥ 0 and thus hsT q ≥ hbT q. The nonempty


interval
[hbT q, hsT q]
is the no-arbitrage bid-ask spread for the contingent claim d.
Remark. This interval is a single point if the market is complete and there
is an exact hedge portfolio for every contingent claim.
The calculations above may be stated as follows:

Theorem 8.7 If A, q is arbitrage-free, then any portfolio has a nonempty


bid-ask interval of no-arbitrage prices. If the market is complete, then this
interval consists of a single point. 2

Octave computations with GLPK


Reliable open-source software for linear programming, applicable to these sub-
replication and superreplication problems of financial mathematics, may be
found in the GLPK toolkit from
https://www.gnu.org/software/glpk/
Download, compile, and install this package on your computer. It is usable
with many software systems. Documentation on how to use it within Octave
is available online:
https://octave.org/doc/v4.4.1/Linear-Programming.html
This software has its own syntax for defining the abstract optimization prob-
lem, stated in terms of given (column) vectors b, c and matrix A:
“Find a (column) vector x such that cT x is optimal given con-
straints on Ax versus b.”
In the notation conventions of this chapter, the target x = h will be the
hedge portfolio column vector, A will be the transpose of the market payoff
matrix (so asset payoffs will be column vectors), c = q will be the spot price
vector, and b = dT will be the column vector transpose of the contingent
claim payoff row vector.

Example: Three-state model with one risky asset


Suppose that a market model contains one risky asset S and one riskless asset
B with the following attributes:
• Spot price S(0) = 90,
• Unit riskless asset spot price B(0) = 1,

• Modeled prices S(T ) ∈ {85, 90, 95} at future time T > 0,


Applications of the Fundamental Theorems 201

• Riskless return B(T ) = R = 1.02 to time T .


There are more states than assets so the market is incomplete.
Begin the analysis in Octave by determining whether Aq is arbitrage-free.
But augmented row echelon form shows that Ak = q is consistent and has a
one parameter family of solutions:
R=1.02; S=[85,90,95]; S0=90; q=[1;S0]; A=[R R R; S];
rref([A R*q])
% 1.00000 0.00000 -1.00000 -0.36000
% 0.00000 1.00000 2.00000 1.36000
(This is in the notation of Definition 4.) Use R*q in the augmented matrix
def
to get the risk neutral probabilities R k = p = (p1 , p2 , p3 ), which sum to 1,
instead of the discounted vector k which will sum to R1 . The echelon form
implies that p3 is the unique free variable and that the general solution is

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

p3 > 0, p3 − 0.36 = p1 > 0, 1.36 − 2p3 = p2 > 0,

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

The market in this example is incomplete, so there exist derivatives with-


out exact hedges. However, some derivatives may have exact hedges simply
because their payoffs happen to lie in the row space of A. There is a simple
way to detect this, using Theorem 8.7:
Corollary 8.9 Suppose that A, q is an arbitrage-free market model. Then the
following are equivalent for a derivative with payoff d:
(a) d is in the row space of A.
(b) d has an exact hedge.
(c) d has a unique no-arbitrage spot price. 2
In particular, there is no exact hedge for an in-the-money European-style Call
option at strike price K = 88 in this market, though by Theorem 8.7, such a
+
derivative may be both superreplicated and subreplicated. Its payoff [S − K]
may be computed with an anonymous function of the underlying price:
K=88; payoff=@(s)max(s-K,0); % European-style Call at strike K
To begin, put the market matrix and spot prices into the format used by
GLPK:
S0=90; % Spot price of the risky asset
c=[1;S0]; % q: spot prices of all market assets
R=1.02; % B(T): riskless return to expiry.
S1=[85;90;95]; % S(T): modeled payoffs for S
b=payoff(S1); % C(T): modeled payoffs for Call
A=[R*ones(size(S1)),S1]; % A: market transposed into GLPK format
Next, set parameters for the linear programming function glpk():
vartype="CC"; % ==> x(j) is Continuous, j=1,2
param.msglev=1; % ==> use a low verbosity level
param.itlim=1000; % ==> huge iteration limit
ub=100*[S0;1]; % huge Upper bounds on x: buy =< 1000*S0
lb= -ub; % huge Lower bounds on x: sell =< 1000*S0
Then, find a superreplication, taking the derivative seller’s perspective:
sellctype="LLL"; % Lower constraint type A*x(j)>=b(j), j=1,2,3
sellsense=1; % Optimization direction for c’*x: "1" ==> "min"
[hs,ask]=glpk(c,A,b,lb,ub,sellctype,vartype,sellsense,param);
hs % = [ -58.33333; 0.70000]; Cost-minimizing hedge portfolio
ask % = 4.6667; minimum cost to superreplicate the Call
Finally, find a subreplication, taking the derivative buyer’s perspective:
buyctype="UUU"; % Upper constraint type A*x(j)=<b(j), j=1,2,3
buysense=-1; % Optimization direction for c’*x: "-1" ==> "max"
[hb,bid]=glpk(c,A,b,lb,ub,buyctype,vartype,buysense,param);
hb % = [ -86.2745; 1.0000]; Cost-maximizing hedge portfolio
bid % = 3.7255; maximum cost to subreplicate the Call
Cones, Convexity, and Duals 203

Since bid is strictly less than ask, by Corollary 8.9 there is no exact hedge for
this derivative in this market.

8.3 Cones, Convexity, and Duals


The proofs of Fundamental Theorems 8.3 and 8.4, as well as Farkas’s Lemma
8.26, follow from the properties of convex cones. These are intuitive concepts
about shapes that are made precise using analytic geometry:
Definition 10 (Convex Set) A set S ⊂ Rn is said to be convex iff

x, y ∈ S =⇒ (∀λ ∈ [0, 1]) λx + (1 − λ)y ∈ S.

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

x ∈ S =⇒ (∀λ > 0)λx ∈ S.

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 .

It is an easy exercise to prove that any subspace V ⊂ Rn is a convex cone.


But of course, not all convex cones are subspaces.
The smallest subspace of Rn is just {0}. The largest is all of Rn . The
column space Col A of matrix A = {a(i, j)} ∈ Rm×n is a subspace of Rm :
 
x(1) n
Col A = x =  ...  : x(i) =
n o
def
X
cj a(i, j), i = 1, . . . , m .
 

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.

Now suppose that A ∈ Rm×n is an m × n matrix, and that K and K o


are the nonnegative and positive orthants in Rn , respectively. Their images
under A are the sets
def def
AK = {Ak : k ∈ K}; AK o = {Ak : k ∈ K o }. (8.4)
AK and AK o are both subsets of the column space of A, but with restrictions
on the coefficients {cj }. Let vi ∈ Rm denote the ith column of A, for i =
1, . . . , n, and put
def def
Vi = {λvi : λ > 0}; V̄i = {λvi : λ ≥ 0}. (8.5)
These are the rays generated by the column vectors vi , with or without 0.
As in the case of Eq.8.3, each Vi or V̄i is a convex cone. This suggests a
decomposition into sums of simpler sets:
Definition 13 (Sums of Sets) For any finite collection {Si : i = 1, . . . , n}
of subsets of Rm , their sum
n n o
def
X
Si = s1 + · · · + sn : (∀i) si ∈ Si ⊂ Rm
i=1

is the set of all sums of elements, one from each subset.


Apply this definition to write AK and AK o as sums of rays:
n
X n
X
AK = V̄i ; AK o = Vi . (8.6)
i=1 i=1

But sums of convex cones are convex cones:


Lemma 8.10 Suppose that C1 , . . . , Cn is a finite set of convex cones in Rm .
n
X
Then Ci is a convex cone.
i=1

Proof: Check the properties:


n
X n
X
x = x1 + · · · + xn ∈ Ci =⇒ λx = λx1 + · · · + λxn ∈ Ci ,
i=1 i=1
n
X
for any λ > 0, since xi ∈ Ci =⇒ λxi ∈ Ci . Also, for any x, y ∈ Ci , and
i=1
any 0 ≤ µ ≤ 1,
n
X
µx + (1 − µ)y = [µx1 + (1 − µ)y1 ] + · · · + [µxn + (1 − µ)yn ] ∈ Ci ,
i=1
Cones, Convexity, and Duals 205

since xi , yi ∈ Ci =⇒ µxi + (1 − µ)yi ∈ Ci for all i = 1, . . . , n. 2

Lemma 8.11 Both AK and AK o are convex cones.

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

8.3.1 Open and Closed Sets


Every subspace V ⊂ Rn has a basis, a minimal set of vectors {b1 , . . . , bk }
such that every v ∈ V can be written in exactly one way as
k
X
v= ci bi .
i=1

The expansion coefficients ci ∈ R of v in a fixed basis are uniquely determined


by v. Any two bases for V must have the same number of elements k which
is called the dimension of V , or dim V . For any subspace V ⊂ Rn ,

dim{0} = 0 ≤ dim V ≤ n = dim Rn .

The norm of a vector x = (x(1), . . . , x(n)) ∈ Rn is defined by


def p
kxk = x(1)2 + · · · + x(n)2 .

It satisfies kxk ≥ 0, with kxk = 0 if and only if x = 0. It gives a distance


function kx − yk between any two vectors x, y ∈ Rn that satisfies

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

This equation may be written as


n
X n X
X k
b(i, l)x(i) = b(i, l)b(i, j)vj∗ which is B T x = B T Bv∗ . (8.7)
i=1 i=1 j=1

But B T B is an invertible k × k matrix, since B’s columns form a basis, so

v∗ = (B T B)−1 B T x ∈ Rk , =⇒ Bv∗ = B(B T B)−1 B T x ∈ V ⊂ Rn

uniquely defines the closest point Bv∗ ∈ V ⊂ Rn to x.


def
Since x ∈/ V while Bv∗ ∈ V , it must be that  = kx − Bv∗ k > 0.

Since Bv is the point of minimal squared distance, it is the point of minimal
distance, so for all y ∈ V , kx − yk ≥ kx − Bv∗ k =  > 0 as claimed. 2
Remark. For any subspace V with basis matrix B, this closest point in V
to x given by B(B T B)−1 B T x is called the orthogonal projection of x onto V .
Eq.8.7 is just the normal equation, Eq.2.45 on p.40. The nearest point is a
least squares approximation, the best fit to x by vectors of the form Bv.
Two other important properties of sets in Rn are openness and closedness:
Definition 14 (Open and Closed) Suppose that S ⊂ Rn is a subset.
• S is said to be open iff (∀x ∈ S)(∃ > 0) ky − xk <  =⇒ y ∈ S.
Namely, every x ∈ S is completely surrounded by points of S.
• S is said to be closed iff its complement Rn \ S is open.
The empty set ∅ is open since it has no points that need to be checked. Thus
Rn is closed, since its complement Rn \ Rn = ∅ is open. From these examples
it is clear that sets may be both open and closed: Rn is clearly open, so it is
both open and closed. Likewise, ∅ is both open and closed.
The following are basic facts about open and closed sets in Rn :
• The union of any collection of open sets is open. Apply the definition:
any point in the union belongs to one of the open sets, so it is contained
in an open ball entirely within that set, which is therefore entirely within
the union.
• The intersection of any collection of closed sets is closed. Note that
the complement of an intersection of closed sets is the union of the
complements of the sets. The complements are open by definition, so
this union is open. Conclude that the intersection is closed.
Cones, Convexity, and Duals 207

• 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

8.3.2 Dual Cones and Double Duals


Sets of profitable and strictly profitable portfolios for a finite market A, q are
in fact convex cones. This will be shown below by writing them in terms of A
and the orthants K, K o , using the abstract notion of duality, defined here:
Definition 15 (Dual and Strict Dual) Let S ⊂ Rn be any set.
def
• The dual cone of S is: S 0 = {x ∈ Rn : (∀y ∈ S) xT y ≥ 0}.
def
• The strict dual cone of S is: S ∗ = {x ∈ Rn : (∀y ∈ S) xT y > 0}.
Such duals are related to the orthogonal complement S ⊥ of S, which is defined
by zero rather than nonnegative or positive inner products:
def
S ⊥ = {x ∈ Rn : (∀y ∈ S) xT y = 0}

Remark. By convention, ∅0 = ∅∗ = ∅⊥ = Rn since for S = ∅ there is


nothing to check. Also, {0}0 = {0}⊥ = Rn , but {0}∗ = ∅.
It is left as an exercise to show that for any subset S ∈ Rn , the duals S 0 ,
S ∗ , and S ⊥ are convex cones. In addition, the orthogonal complement S ⊥ is
a subspace.

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

it must be that S is a subspace. But in fact, that is a sufficient condition as


well: if S ∈ Rn is a subspace, then (S ⊥ )⊥ = S.
Finding sufficient conditions to get (S ∗ )∗ = S and (S 0 )0 = S is central to
the proofs of the Fundamental Theorems. A method of proving the equality
of two sets is showing that each contains the other. One of the containments
follows directly from the definitions:
Lemma 8.14 Let S ⊂ Rn be any set. Then S ⊂ (S 0 )0 and S ⊂ (S ∗ )∗ and
S ⊂ (S ⊥ )⊥ .
Proof: First check the trivial cases:
• If S 0 = ∅ or S 0 = {0}, then S ⊂ (S 0 )0 = Rn .
• If S ∗ = ∅ then S ⊂ (S ∗ )∗ = Rn .
• If S ⊥ = ∅ or S ⊥ = {0}, then S ⊂ (S ⊥ )⊥ = Rn .
Otherwise, suppose S is a nonempty set containing a point other than 0. Let
x ∈ S be given.
• For every y ∈ S 0 , yT x = xT y ≥ 0. Thus x ∈ (S 0 )0 .
• For every y ∈ S ∗ , yT x = xT y > 0. Thus x ∈ (S ∗ )∗ .
• For every y ∈ S ⊥ , yT x = xT y = 0. Thus x ∈ (S ⊥ )⊥ .
Conclude that S ⊂ (S 0 )0 , S ⊂ (S ∗ )∗ , and S ⊂ (S ⊥ )⊥ , as claimed. 2
Rays and orthants are specific examples of convex cones for which duals
and double duals are easily found:
Let V, V̄ be the rays generated by nonzero v ∈ Rn as in Eq.8.3. Then

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.

Proof: By Lemma 8.14, V ⊂ (V ∗ )∗ . To get (V ∗ )∗ = V , it remains to prove


that (V ∗ )∗ ⊂ V . So, suppose that b ∈ (V ∗ )∗ .
Since vT v > 0, so that v ∈ V ∗ , it follows that bT v > 0.
The subspace {cv : c ∈ R} is closed and convex, so by Lemma 8.27 it
contains a unique nearest point c0 v to b, which satisfies vT (b − c0 v) = 0, so

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

Otherwise, suppose z 6= 0. Since z ∈ V ⊥ and v ∈ V ∗ , for every r ∈ R the


point v + rz belongs to V ∗ , so since b ∈ (V ∗ )∗ ,
(∀r ∈ R) bT (v + rz) = bT v + rbT z > 0.
If bT z 6= 0, then this leads to a contradition for sufficiently large r of the
appropriate sign. Thus bT z = 0, which means
bT b vT b
0 = bT (b − c0 v) =⇒ c0 = = ,
bT v vT v
from which it follows that |bT v| = kbkkvk. This means that b and v are
parallel, namely b = cv for some real c, and then bT v > 0 forces c > 0,
so b ∈ V . Thus in all cases, b ∈ (V ∗ )∗ =⇒ b ∈ V , namely (V ∗ )∗ ⊂ V .
Conclude that (V ∗ )∗ = V .
The very similar proof that (V̄ 0 )0 = V̄ is left as an exercise. 2

Theorem 8.16 For the orthants K, K \ 0, and K o defined above,


(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.
Proof: This is left as an exercise. 2
From this, it follows that profitable and strictly profitable portfolios in a finite
market model A, q must be convex cones, because they are duals:
Corollary 8.17 The set P of profitable portfolios for a market matrix A is a
dual cone: P = (AK)0 .
Proof: Since K 0 = K by Theorem 8.16(a),
p∈P ⇐⇒ pT A ∈ K
⇐⇒ (∀k ∈ K 0 )(pT A)k ≥ 0
⇐⇒ (∀k ∈ K)(pT A)k ≥ 0
⇐⇒ (∀k ∈ K)pT (Ak) ≥ 0
⇐⇒ (∀v ∈ AK)pT v ≥ 0
⇐⇒ p ∈ (AK)0 .
The next to last condition is just the definition of membership (by p) in the
dual cone of AK. 2

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

8.3.3 Proofs of the Fundamental Theorems


The absence of arbitrages for A, q imposes contraints. These constraints may
be stated as membership by q in a convex cone determined by A, at first using
profitable or strictly profitable portfolios:

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 .

(b) A, q is AO-free iff q ∈ S ∗ , the strict dual cone of S.


Proof: (a) Observe that x ∈ P ⇐⇒ xT A ≥ 0. Thus, by Lemma 8.1, A, q is
IA-free iff
(∀x ∈ P ) xT q ≥ 0
which is true (by the definition of dual cone) iff q ∈ P 0 .
(b) Observe that x ∈ S ⇐⇒ xT A > 0. Thus, by Lemma 8.2, A, q is
AO-free iff
(∀x ∈ S) xT q > 0
which is true (by the definition of strict dual cone) iff q ∈ S 0 . 2
Both P and S are nonempty and nontrivial, since A has a numeraire, but
it is not necessary to mention them when characterizing q such that A, q is
arbitrage-free. Simply combine Lemma 8.19 with Corollary 8.17, P = (AK)0 ,
or Corollary 8.18, S = (AK o )∗ :
Corollary 8.20 Suppose that A is a market matrix with spot price vector q.
Then
(a) A, q is IA-free if and only if q ∈ ((AK)0 )0 , the double dual cone.
(b) A, q is AO-free iff q ∈ ((AK o )∗ )∗ , the strict double dual cone. 2
Thus, A, q being arbitrage-free is just the geometric property of q belonging
to the double dual of AK or strict double dual of AK o , respectively.
To complete the proofs of Theorems 8.3 and 8.4, it remains to prove that
AK and AK o are self double duals:
Theorem 8.21 Let K, K o ⊂ Rn be the nonnegative and positive orthants,
respectively. Let A ∈ Rm×n be any matrix such that (AK)0 and (AK o )∗ are
both nonempty. Then ((AK)0 )0 = AK and ((AK o )∗ )∗ = AK o .
(By Corollaries 8.17 and 8.18 and the remark on p.193, the hypothesis is
satisfied by any market matrix with a numeraire.) This will be done in several
steps, with an analysis of the convex cones AK and AK o , which are sums of
rays as in Eq.8.6. Let V̄i and Vi be the rays generated by column vi of matrix
A, for i ∈ {1, . . . , n}, as in Eq.8.5. Let V̄i0 and Vi∗ be their dual cones and
strict dual cones, respectively.
Cones, Convexity, and Duals 211
n
\ n
\
Lemma 8.22 Vi∗ ⊂ (AK o )∗ , and V̄i0 ⊂ (AK)0 .
i=1 i=1

Proof: If (∀i) y ∈ Vi∗ , then yT A = (yT v1 , . . . , yT vn ) > 0, so for k ∈ K o ,


yT Ak > 0. Thus y ∈ (AK o )∗ .
Similarly, if (∀i) y ∈ V̄i0 , then yT A = (yT v1 , . . . , yT vn ) ≥ 0, so for k ∈ K,
y Ak ≥ 0. Thus y ∈ (AK)0 .
T
2

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,

since A ⊂ B. Thus x ∈ A0 . Conclude that B 0 ⊂ A0 .


The same argument with “≥” replaced with “>” shows that B ∗ ⊂ A∗ .
Likewise, replace “≥” with “=” to show that B ⊥ ⊂ A⊥ . 2
Apply Lemma 8.23 to get inclusion relations for double duals:
n
!∗ n
!0
\ \
Corollary 8.24 o ∗ ∗
((AK ) ) ⊂ Vi∗ 0 0
, and ((AK) ) ⊂ V̄i . 2
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: This is left as a challenging exercise. 2

8.3.4 Farkas’s Lemma


The use of double duals illustrates the similarity between the two Fundamen-
tal Theorems. There is, however, an alternative proof of Theorem 8.3 that
uses Farkas’s Lemma, a result from 1902. It is presented here since it has
applications in many convex optimization algorithms.
Theorem 8.26 (Farkas’s Lemma) Suppose that A ∈ Rm×n is a matrix
and q ∈ Rm is a vector. Then exactly one of the following must be true:
X: There exists x ∈ Rm such that xT A ≥ 0 and xT q < 0.
Y: There exists y ∈ Rn such that Ay = q and y ≥ 0.
212 Fundamental Theorems

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},

(using the closed orthant K of Definition 6), so if Y fails to hold it must be


that q ∈
/ AK. It remains to show that in this case, Condition X must hold.
But AK is a nonempty closed convex cone. By Theorem 8.28, there exists a
nonzero vector x ∈ Rm and a constant γ ∈ R defining a separating hyperplane
function
def
f : Rm → R, f (y) = xT y − γ,
such that f (q) < 0 but f (z) > 0 for every z ∈ AK.
Now 0 ∈ AK, since 0 ∈ K, so f (0) = xT 0 − γ = −γ > 0, and therefore
γ < 0. But then

xT q − γ = f (q) < 0 =⇒ xT q < γ < 0.

On the other hand, since AK is a cone, any z ∈ AK and any λ > 0 result in
λz ∈ AK, so

(∀λ > 0) λxT z − γ = f (λz) > 0 =⇒ (∀λ > 0) xT z > γ/λ =⇒ xT z ≥ 0.

Thus xT z ≥ 0 for all z ∈ AK. Writing z = Ak gives

(∀k ∈ K) xT Ak ≥ 0,

so xT A is in the dual cone of K. But K 0 = K by Theorem 8.16(a), so xT A ≥ 0.


Conclude that Condition X holds. 2

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.

8.3.5 Hyperplane Separation


Farkas’s Lemma, and thus one of the Fundamental Theorems on Asset Pricing,
use an important geometrical fact about closed convex sets. Notice that its
proof does not use the cone property:
Lemma 8.27 (Closed Convex Minimum) If Q is a nonempty closed con-
vex set in Rm , and b ∈ Rm is any point, then there is a unique point q0 ∈ Q
that is closest to b.
Cones, Convexity, and Duals 213

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

for all i, j. But then

kxi − xj k2 = 2kxi k2 + 2kxj k2 − kxi + xj k2 ≤ 2kxi k2 + 2kxj k2 − 4δ 2 → 0,

as i, j → ∞. Thus {xn } is a Cauchy sequence which, since Q is closed, con-


verges to a limit point q0 ∈ Q satisfying kq0 k = δ. This limit is unique: if
x ∈ Q also satisfies kxk = δ, then

kx − q0 k2 ≤ 2kxk2 + 2kq0 k2 − 4δ 2 = 0,

from which it follows that x = q0 . 2


Not only is there positive distance between outside points and a closed
convex set, there is a whole hyperplane that lies strictly between them. To
prove this, use Lemma 8.27 in combination with some tools from Calculus:

Theorem 8.28 (Hyperplane Separation) Suppose that Q ⊂ Rm is a


nonempty closed and convex set, and that b ∈ Rm is a point not in Q.
Then there exist a nonzero vector x ∈ Rm and a constant γ ∈ R defining
a hyperplane as the zeros of the function
def
f (y) = xT y − γ,

such that f (b) < 0 but f (q) > 0 for every q ∈ Q.

Proof: Part I: Find f to construct the hyperplane.


def
Define s : Rm → R by s(y) = ky − bk2 , continuous and differentiable
with gradient
∇s(y) = 2(y − b) ∈ Rm .
It achieves its minimum at the nearest point q0 ∈ Q to b, whose existence
def
and uniqueness follow from Lemma 8.27. So, put f (y) = xT y − γ for

kq0 k2 − kbk2
x = q0 − b, γ= .
2
214 Fundamental Theorems

Hyperplane {y : f (y) = 0} is normal to q0 − b and passes through the


midpoint between b and q0 .
It remains to show that f separates b from Q.
Part II: Show that f (b) < 0.
2 2
Compute f (b) = q0T b − kq0 k 2+kbk . The Cauchy-Schwartz inequality and
the arithmetic-geometric mean inequality together imply
kq0 k2 + kbk2
q0T b ≤ kq0 kkbk ≤ ,
2
with equality only if q0 = b. Since b 6= q0 , conclude that f (b) < 0.
Part III: Show that f (q) > 0.
Take any q ∈ Q and suppose toward contradiction that f (q) ≤ 0. Then

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

where A ∈ Rm×n , and K, K o are the orthants of Definition 6.


8. Prove Corollary 8.18 on p.209: The set S of strictly profitable portfolios
is a strict dual cone: S = (AK o )∗
9. Suppose S ⊂ Rn is any set. Prove the following:
(a) S ⊥ is a subspace.
(b) S ∗ ⊂ S 0 and thus S ∗ ∩ S 0 = S ∗ .
(c) S ⊥ ⊂ S 0 and thus S ⊥ ∩ S 0 = S ⊥ .
(d) S ⊥ ∩ S ∗ = ∅.
(e) S ⊥ , S 0 , and S ∗ are all convex cones.
(f) If 0 ∈ S, then S ∗ = ∅. Thus if S is a subspace, then S ∗ = ∅.
10. Suppose that n > 2 and market model A, q has
 
R ··· R
A= ,
a1 · · · an

where R > 1 is the riskless return and a = (a1 , . . . , an ) is a nonconstant


payoff vector for the sole risky asset.
(a) Find necessary and sufficient conditions on q such that A, q is
arbitrage-free. (Hint: use the Fundamental Theorem.)
(b) Exhibit a derivative payoff d for which no exact hedge exists. (This
shows that A is not a complete market.)
(c) Exhibit a derivative d for which an exact hedge does exist.
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.
216 Fundamental Theorems

8.5 Further Reading


• Richard F. Bass, Real Analysis for Graduate Students, Version 2.1. Pub-
lished by the author (2014).

• Freddy Delbaen and Walter Schachermayer. “A General Version of the


Fundamental Theorem of Asset Pricing.” Mathematische Annalen, 300:1
(1994), pp.463–520.
• Julius (Gyula) Farkas, “Theorie der Einfachen Ungleichungen.” Journal
für die Reine und Angewandte Mathematik, 124 (1902), pp.1–27.
• Ruth J. Williams. Introduction to the Mathematics of Finance. Gradu-
ate Texts in Mathematics, Volume 72. American Mathematical Society,
Providence (2006).
9
Project Suggestions

These larger-scale assignments supplement the chapter exercises. They com-


bine theorems, algorithms, and experiments to test understanding while also
demanding a degree of patience and fortitude. They are presented as alter-
natives to timed final examinations, allowing students to access and deploy
computers without jeopardizing academic integrity.
For these projects, let XYZ denote the common stock of a publicly traded
company that offers a dividend. The choice may be left to the students, or
else made by the instructor for individuals or small groups. One of the stocks
listed among the Standard and Poor’s 100 (S&P100) is a good choice, as these
are heavily traded with widely published data.

• Choose a time to expiry T that includes at least two dividend payments


for XYZ expected to equal the most recent. Use the CRR model for
American-style options with dividend to price Call and Put options with
expiry T at various near-the-money strike prices. What volatility should
be used? How do the modeled prices compare with the market prices
for these options? How would the modeled prices change if the second
dividend was 20% higher than the first?
• Find the implied volatility σ(K, T ) of XYZ using options at various
near-the-money strike prices K and near-future expiry dates T . Justify
your choice of options. Use both CRR and Black-Scholes pricing models
and compare the results. Also compare the results to published implied
volatilities and comment on any differences. Plot the implied volatility
surface σ(K, T ) for your results.
• Choose a time to expiry T that contains no expected dividends. Con-
struct an implied binomial tree from the spot price and at least five
near-the-money Call option premiums on XYZ with expiry T . Use it to
price five near-the-money Put options on XYZ with the same expiry T .
Compare your results with the market prices of those Puts and also with
the values given by the Call-Put parity formula.

217
A
Answers

A.1 . . . to Chapter 1 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.
1
Solution: (a) From the formula on p.3, Z(0, T ) = R = 0.9889.
(b) By Eq.1.15, the fair price is K = RS(0) = 101.12.
(c) By Eq.1.5, r = (log R)/T = 0.0111, or 1.11%. 2
2. With S(0), R, and T as in Exercise 1, suppose that S(T ) is modeled by
the following table:

S(T ) 90 95 98 100 102 105 110


Pr(S(T )) 0.01 0.04 0.15 0.30 0.30 0.18 0.02

(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:

R=1.0112; S0=100; ST=[90 95 98 100 102 105 110];


K=101; Pr=[0.01 0.04 0.15 0.30 0.30 0.18 0.02];
+
By Eq.1.8, the Call payoff at expiry is C(T ) = [S(T ) − K] . By Fair
Price Theorem 1.4, the no-arbitrage Call premium is the present value
of the expected value of this payoff:
1 X +
C(0) = E(C(T ))/R = [S(T ) − K] Pr(S(T )),
R
219
220 Answers

which may be computed with Octave/MATLAB commands

Cpayoff=max(0,ST-K); C0=(Cpayoff*Pr’)/R % C0 = 1.1867


+
Likewise, by Eq.1.9 the Put payoff is P (T ) = [K − S(T )] and the no-
arbitrage Put premium is therefore:
1 X +
P (0) = E(P (T ))/R = [K − S(T )] Pr(S(T )),
R
which may be computed with the commands

Ppayoff=max(0,K-ST); P0=(Ppayoff*Pr’)/R % P0=1.0878

(b) Observe that Call-Put parity does not quite hold:

C0-P0 % ans = 0.098892


S0-K/R % ans = 0.11867

The difference is approximately 0.02 instead of exacly 0 as in Eq.1.16.


This is the difference between E(S(T )) = 101.10, which is the model’s
estimate for the Forward price of S, and RS(0) = 101.12, which is
another Forward estimate using riskless return. 2
3. Use the no-arbitrage Axiom 1 to prove that Eq.1.7 holds.
Solution: If the asset A costs more, then short-sell A for A(0), buy the
sequence of zero-coupon bonds, pocket the surplus, and use the proceeds
from the bonds to pay the cash flow to the A buyer over time, settling
all liabilities.
Otherwise, if the asset A costs less, then short-sell the bonds, use the
money to buy A for A(0), pocket the surplus, and then pay the bond
buyers back over time to settle all obligations.
In either case there is an arbitrage, contradicting Axiom 1. 2
4. Prove Corollary 1.3. (Hint: review the proof of Theorem 1.2.)
Solution: Recall the statement of Corollary 1.3: If at some time T > 0,
A(T, ω) > B(T, ω) in all states ω, then A(t) > B(t) for all times 0 ≤
t < T.
Proof: Suppose not. Then there is a time t with 0 ≤ t < T such that
A(t) ≤ B(t), so assemble the portfolio −A + B by selling B short and
buying A. Observe that −A(t) + B(t) ≤ 0 costs nothing and may even
leave a surplus.
At time T , sell A for A(T, ω) and buy B for B(T, ω) to cover the short.
By hypothesis this pays off A(T, ω)−B(T, ω) > 0 in all states ω. The as-
sembled portfolio would thus be an arbitrage opportunity, contradicting
Axiom 1. Conclude that A(t) > B(t) for all times 0 ≤ t ≤ T . 2
. . . to Chapter 1 Exercises 221

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

7. (a) Prove that the plus-part function satisfies Eq.1.17:


+ +
[X] − [−X] = X,

for any number X.


(b) Apply the identity in part (a) to the payoff values of European-style
Call and Put options for S at strike price K and expiry T to show
Eq.1.18:
C(T ) − P (T ) = S(T ) − K.

Solution: (a) Let X be any number. Then either X < 0, X = 0, or


X > 0. Check all three possibilities:

0 − (−X) = X, X < 0,

+ +
[X] − [−X] = 0 + 0 = X, X = 0, = X,

X − 0 = X, X > 0,

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 .

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).)
Solution: (a) See the payoff graph for a butterfly spread and its com-
ponent Calls in Figure A.3.
(b) The net cost to assemble a butterfly spread at t = 0 is CL (0) +
CH (0) − 2CM (0). If CM (0) ≥ 21 [CL (0) + CH (0)], then this net cost is
less than or equal to zero. But its value at t = T is nonnegative in all
states and positive in some states, namely if L < S(T ) < H, so this is
. . . to Chapter 1 Exercises 225






 










FIGURE A.2
Payoff and profit for a Long strangle portfolio Y = CKC + PKP .

an arbitrage opportunity. Conclude by the no-arbitrage Axiom 1 that


CM (0) < 12 [CL (0) + CH (0)]. 2
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.
Solution: (a) Let icp(S(T )) be the payoff at expiry T of the iron condor
portfolio, as a function of the underlying asset’s price S(T ). By Eqs.1.8
226 Answers

   
 ! "

 


  




  



  

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

min{(K2 −K1 ), (K4 −K3 )} − y ≥ − max{(K2 −K1 ), (K4 −K3 )}.

Equality holds for S(T ) ≤ K1 if K4 −K3 is bigger, or for S(T ) ≥ K4 if


K2 −K1 is bigger. 2

A.2 . . . to Chapter 2 Exercises


1. Let Z x
1 2
Φ(x) = √ e−t /2
dt
2π −∞

be the cumulative distribution function of the standard normal random


variable. Prove that
1 − Φ(x) = Φ(−x)
for every x.
Solution: This result holds for every cumulative distribution function
with a density function that is symmetric about t = 0. In particular,
2
that is true for √12π e−t /2 :
Z x
1 2
Φ(x) = √ e−t /2 dt
2π −∞
Z ∞ Z ∞
1 2 1 2
= √ e−t /2 dt − √ e−t /2 dt
2π −∞ 2π x
Z ∞
1 2
= 1− √ e−t /2 dt
2π x
Z −x
1 2
= 1− √ e−t /2 dt = 1 − Φ(−x),
2π −∞
where the last step employs the change of variable t ← −t. 2
2. Rewrite the recursive definition of the random walk X in Section 2.2
with these normalizations:
p √
• Multiply by 1/ n/4 = 2/ n to have variance 1.
• Change the time step to 1/n so that the time interval is [0, 1].
228 Answers

Solution: Renormalize X(t, ω) to get the continuous piecewise linear


function X̂ on 0 ≤ t ≤ 1 defined recursively 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,

with values at intermediate points ni < t < i+1


n defined by linear inter-
polation:
       
i i+1 i+1 i
X̂(t, ω) = t − X̂ ,ω + − t X̂ ,ω .
n n n n

By the same analysis as for X, renormalized X̂(1, ω) takes values in this


set of n + 1 reachable points:

 
def 2
X̂k = − 2 n + 2k √ : k = 0, 1, . . . , n .
n

It has the same binomial probability mass function as X on its reachable


points:
     k  n−k
  1 n n 1 1
Pr X̂(1, ω) = X̂k = n = .
2 k k 2 2

By symmetry, conclude that E(X̂(1, ·)) = 0 = E(X(n, ·)). Then compute


the variance by observing that
√ 2 2 2
X̂(1, ω) = −2 n + 2k √ = √ (−n + 2k) = √ X(n, ω),
n n n
 2
so by Eqs.2.6 and 2.7, Var(X̂(1, ·)) = √2
n
Var(X(n, ·)) = 1. 2

3. Derive the Black-Scholes formula for European-style Put options,


Eq.2.26:
P (0) = e−rT KΦ(−d2 ) − S0 Φ(−d1 ).
(Hint: follow the steps in Section 2.3.1, but use the Put payoff
+
[K − S(T )] at expiry.)
Solution: Under the assumptions of no expected arbitrage and constant
riskless rate r, the premium for a European Put option with strike price
K and expiry time T is
+
P (0) = e−rT E(P (T )), where P (T ) = [K − S(T )] . (A.1)
. . . to Chapter 2 Exercises 229

Compute this expectation using the lognormal p.d.f. q assumed by the


+
Black-Scholes model of the future. So, integrate [K − s] q(s) over all
positive prices s that S may take:
Z ∞
+
P (0) = e−rT [K − s] q(s) ds
0
Z K
= e−rT (K − s)q(s) ds
"0 Z #
K Z K
−rT
= e K q(s) ds − sq(s) ds .
0 0

Apply Eq.2.16 to compute the left-hand integral:


Z K  
log K − µ
q(s) ds = Q(K) = Φ .
0 σ

The other integral may be evaluated by substituting s ← et in Eq.2.13,


then completing squares and factoring out constant terms:
Z K Z K
[log s − µ]2
 
1
sq(s) ds = √ exp − ds
0 σ 2π 0 2σ 2
Z log K
[t − µ]2
 
1
= √ exp − et dt
σ 2π −∞ 2σ 2
Z log K 
σ2 [t−(µ+σ 2 )]2
  
1
= exp µ+ √ exp − dt
2 σ 2π −∞ 2σ 2
σ2 log K − (µ + σ 2 )
   
= exp µ+ Φ ,
2 σ

recognizing the c.d.f. of N ((µ + σ 2 ), σ 2 ). Combining the two parts gives


  
log K − µ
P (0) = e−rT KΦ
σ
σ2 log K − (µ + σ 2 )
   
− exp µ + Φ .
2 σ

Using Eq.2.11 with t = T and the identities in Eqs.2.22 gives

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

so the Put premium should be


  2
 
− log SK0 − r − v2 T
P (0) = e−rT KΦ  √ 
v T
  2
 
− log SK0 − r + v2 T
−S0 Φ  √ .
v T

This may be written using d1 and d2 from Eq.2.24 as

P (0) = e−rT KΦ (−d2 ) − S0 Φ (−d1 ) ,

which is the Black-Scholes formula for European-style Puts. 2


4. Let d1 , d2 be defined as in Eq.2.24, and let φ be the standard normal
p.d.f. defined in Eq.2.18. Show that

S0 φ(d1 ) − Ke−rT φ(d2 ) = 0.



(Hint: Notice that d1 − d2 = v T and
S0 √
d1 + d2 = 2(log + rT )/(v T ),
K
and thus (d21 − d22 )/2 = (d1 − d2 )(d1 + d2 )/2 = log(S0 /K) + rT .)

Solution: Expand 2π [S0 φ(d1 ) − Ke−rT φ(d2 )] to get
2 2 2
 2 2

S0 e−d1 /2 − Ke−rT e−d2 /2 = e−d2 /2 S0 e(d2 −d1 )/2 − Ke−rT .

Now (d22 − d21 )/2 = − log(S0 /K) − rT from the hint, so


S0 K
S0 exp(− log − rT ) − Ke−rT = S0 e−rT − Ke−rT = 0,
K S0
proving the result. 2
5. Derive ∆C and ∆P in Section 2.3.3 by differentiating the Black-Scholes
formulas.
Solution: First, differentiate the Black-Scholes C(0) formula, Eq.2.25,
with respect to S0 :
∂C(0) ∂d1 ∂d2
∆C = = Φ(d1 ) + SΦ0 (d1 ) − Ke−rt Φ0 (d2 ) ,
∂S0 ∂S0 ∂S0
by the product rule and the chain rule. Also, from Eq.2.24,
∂d1 ∂d2 1
= = √ .
∂S0 ∂S0 S0 v T
. . . to Chapter 2 Exercises 231

Next, by the Fundamental Theorem of Calculus,


1 2 1 2
Φ0 (d1 ) = φ(d1 ) = √ e−d1 /2 , Φ0 (d2 ) = φ(d2 ) = √ e−d2 /2 ,
2π 2π

where φ(x) = exp(−x2 /2)/ 2π is the standard normal density. These
may be combined to give

S0 φ(d1 ) − Ke−rT φ(d2 )


∆C = Φ(d1 ) + √ .
S0 v T

But S0 φ(d1 ) − Ke−rT φ(d2 ) = 0 by Exercise 4, so the second term van-


ishes. Conclude that ∆C = Φ(d1 ), as claimed.
Finally, use the Call-Put Parity formula to find ∆P :

C(0) − P (0) = S0 − Ke−rT =⇒ P (0) = C(0) − S0 + Ke−rT .

The partial derivative with respect to S0 yields ∆P = ∆C −1 = Φ(d1 )−1,


also as claimed. 2
6. Derive ΓC and ΓP in Section 2.3.3 from Black-Scholes.
Solution: Compute Gammas by differentiating the Deltas with respect
to S0 . Using Eq.2.28 for ∆C ,

∂∆C ∂Φ(d1 ) ∂d1 φ(d1 )


ΓC = = = φ(d1 ) = √ .
∂S0 ∂S0 ∂S0 S0 v T
Likewise, using Eq.2.29 for ∆P ,

∂∆P ∂ ∂d1 φ(d1 )


ΓP = = [Φ(d1 ) − 1] = φ(d1 ) = √ .
∂S0 ∂S0 ∂S0 S0 v T

These both use ∂d1


∂S0 = 1√
S0 v T
, found while computing Deltas. 2

7. Derive ΘC and ΘP in Section 2.3.3 from Black-Scholes.


Solution: Begin by differentiating Eq.2.25 with respect to T :
∂C ∂d1 ∂d2
ΘC = − = −S0 Φ0 (d1 ) − Kre−rT Φ(d2 ) + Ke−rT Φ0 (d2 ) .
∂T ∂T ∂T
Then differentiate Eqs.2.24 with respect to T :
v2 v2
∂d1 r+ 2 − T1 log SK0 ∂d2 r− 2 − T1 log SK0
= √ and = √ .
∂T 2v T ∂T 2v T
232 Answers

Substitute and write v 2 /2 = v 2 − v 2 /2 to get


v2
r+ − T1 log SK0
ΘC = −S0 φ(d1 ) 2
√ − Kre−rT Φ(d2 )
2v T
v2
−rT r− 2 − T1 log SK0
+Ke φ(d2 ) √
2v T
−S0 φ(d1 )v 2
= √ − Kre−rT Φ(d2 )
2v T
v2
[S0 φ(d1 ) − Ke−rT φ(d2 )](r − 2 − 1
T log SK0 )
− √ ,
2v T

after rearrangement. But S0 φ(d1 ) − Ke−rT φ(d2 ) = 0 by Exercise 4, so


the last term vanishes, leaving

−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:

P (0) = C(0) − S0 + Ke−rT .

Then applying −∂/∂T to both sides yields

−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 .

Differentiating the Call-Put Parity formula C(0) − P (0) = S0 − Ke−rT


then gives √
κP = κC = S0 φ(d1 ) T ,
since the difference does not depend on v. 2
9. Derive ρC and ρP in Section 2.3.3 from Black-Scholes.
Solution: Differentiate Eq.2.25 with respect to interest rate r to get
∂C ∂d1 ∂d2
ρC = = S0 Φ0 (d1 ) − K(−T )e−rT Φ(d2 ) − Ke−rT Φ0 (d2 ) .
∂r ∂r ∂r
By hand or using Macsyma, compute

∂d1 ∂d2 T
= = ,
∂r ∂r v
so √ √
T −rT −rT T
ρC = S0 φ(d1 ) + KT e Φ(d2 ) − Ke φ(d2 ) ,
v v
which, after simplification and rearrangement, gives

−rT T
= [S0 φ(d1 ) − Ke φ(d2 )] + KT e−rT Φ(d2 ).
v
The first term vanishes because S0 φ(d1 ) − Ke−rT φ(d2 ) = 0 by Exercise
4, leaving
ρC = KT e−rT Φ(d2 ).
Using the Call-Put Parity Formula as P (0) = C(0) − S0 + Ke−rT and
differentiating both sides with respect to r gives

ρP = ρC − 0 − KT e−rT = KT e−rT [Φ(d2 ) − 1] = −KT e−rT Φ(−d2 )

as claimed, using Eq.2.19 at the last step. 2


234 Answers

10. Implement the computation of all the Black-Scholes Greeks in Octave or


MATLAB and add this functionality to the program BS() in Section 2.4.
Apply it to compute the premiums and all 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%, volatility 15%.
Solution: Start with the Macsyma program on p.34 and translate it to
augment the Octave program BS() into the following:
1 function [ Op, De , Ga , Th , Ve , Rh]=BSG(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 p a r t i a l d e r i v a t i v e s , o r " Greeks "
4 % f o r European−s t y l e C a l l and Put o p t i o n s
5 % u s i n g t h e 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 % Op = [ C0 ; P0 ] Option premiums
14 % De = [ DeltaC ; DeltaP ] Deltas
15 % Ga = [GammaC; GammaP] Gammas
16 % Th = [ ThetaC ; ThetaP ] Thetas
17 % Ve = [ VegaC ; VegaP ] Vegas=kappas
18 % Rh = [ RhoC ; RhoP ] rhos
19 % EXAMPLE:
20 % [ Op, De , Ga , Th , Ve , Rh]=BSG( 1 , 9 0 , 9 5 , 0 . 0 2 , 0 . 1 5 )
21 %
22 normcdf = @( x ) 0 . 5 ∗ ( 1 . 0 + e r f ( x/ sqrt ( 2 . 0 ) ) ) ;
23 normpdf = @( x ) exp(−x ^2/2) / sqrt ( 2 ∗ pi ) ;
24 d1 = ( log ( S0 /K)+T∗ ( r+v ^2/2) ) / ( v∗ sqrt (T) ) ;
25 d2 = ( log ( S0 /K)+T∗ ( r−v ^2/2) ) / ( v∗ sqrt (T) ) ;
26 C0 = S0 ∗ normcdf ( d1 )−K∗exp(− r ∗T) ∗ normcdf ( d2 ) ;
27 P0 = K∗exp(− r ∗T) ∗ normcdf(−d2 )−S0 ∗ normcdf(−d1 ) ;
28 DeltaC = normcdf ( d1 ) ; DeltaP = normcdf ( d1 ) −1;
29 GammaP = GammaC = normpdf ( d1 ) / ( v∗ S0 ∗ sqrt (T) ) ;
30 boTh = −v∗ S0 ∗ normpdf ( d1 ) / ( 2 ∗ sqrt (T) ) ; % common
31 ThetaC = boTh − r ∗exp(− r ∗T) ∗K∗ normcdf ( d2 ) ;
32 ThetaP = boTh + r ∗exp(− r ∗T) ∗K∗ normcdf(−d2 ) ;
33 VegaP = VegaC = S0 ∗ normpdf ( d1 ) ∗ sqrt (T) ;
34 RhoC = T∗exp(− r ∗T) ∗K∗ normcdf ( d2 ) ;
35 RhoP = −T∗exp(− r ∗T) ∗K∗ normcdf(−d2 ) ;
36 Op = [ C0 ; P0 ] ; De = [ DeltaC ; DeltaP ] ;
37 Ga = [GammaC; GammaP ] ; Th = [ ThetaC ; ThetaP ] ;
38 Ve = [ VegaC ; VegaP ] ; Rh = [ RhoC ; RhoP ] ;
39 return
40 end
. . . to Chapter 2 Exercises 235

Use this augmented function BSG() to compute the option premiums


and all the Greeks for the parameters given in this exercise:

T=1; S0=90; K=95; r=0.02; v=0.15;


[Op,De,Ga,Th,Ve,Rh] = BSG(T,S0,K,r,v)

The output is an array of six column vectors as in this table:

Option ∆=De Γ=Ga Θ=Th κ=Ve ρ=Rh


Call 4.0548 0.43955 0.029211 −3.3720 35.492 35.505
Put 7.1736 −0.56045 0.029211 −1.5096 35.492 −57.614

As a check for typographical errors, repeat the calculation in Macsyma


after defining the Greeks as on p.34:

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 */

The returned values are in agreement with those computed by Octave


for the Call option premium and Greeks. 2
11. (a) Verify Eq.2.34 relating ΘC , ∆C , and ΓC .
(b) Find the equivalent relation for Puts and verify it.
Solution: (a) Substitute Eqs.2.28, 2.30, and 2.32 into ΘC + rS0 ∆C +
1 2 2
2 v S0 ΓC − rC(0) to get:

−S0 φ(d1 )v 1 φ(d1 )


√ − Kre−rT Φ(d2 ) + rS0 Φ(d1 ) + v 2 S02 √ − rC(0).
2 T 2 S0 v T
But this equals

−Kre−rT Φ(d2 ) + rS0 Φ(d1 ) − rC(0) = 0,

since C(0) = S0 Φ(d1 ) − Ke−rT Φ(d2 ) by Eq.2.25, the Black-Scholes Call


pricing formula.
(b) The equivalent relation for Puts simply replaces C(0) with P (0) and
uses the Put Greeks:
1
ΘP + rS0 ∆P + v 2 S02 ΓP − rP (0) = 0.
2
236 Answers

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:

x=[-2;-1;0;1;2]; y=[4;1;0;1;4]; % data


f1=@(v)ones(size(v)); f2=@exp; f3=@(v)exp(-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

If the optim package is available, the last step may be done with

pf=LinearRegression(F(x),y) % least squares best fit coeffs

Both methods give p1 = −1.25403, p2 = 0.70066, and p3 = 0.70066.


(b) Modify the example plotting code to use 81 z values equispaced
between −2 and 2:

z=linspace(-2,2,81)’; % must be a column vector to use with F


yf=F(z)*pf; % column vector of the best-fit function at z
plot(z,yf,"b--", x,y,"k*"); % graph of best fit versus data
title("Best fit to (x,y) by 1,exp(x),exp(-x)")
legend("best fit","(x,y)");

The results may be seen in Figure A.4. 2


13. At one instant, two days before expiry, near-the-money Call options for
ABC common stock had the following prices:
. . . to Chapter 2 Exercises 237

Best fit to (x,y) by 1,exp(x),exp(-x)


5
best fit
(x,y)

0
-2 -1 0 1 2

FIGURE A.4
Graph from Exercise 12(b).

Strike price Premium Open interest


44.00 3.80 3,260
45.00 2.77 4,499
46.00 1.77 3,862
47.00 0.78 6,271
48.00 0.18 10,156
49.00 0.03 10,619
50.00 0.01 14,219

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:

x=[44.00; 45.00; 46.00; 47.00; 48.00; 49.00; 50.00];


y=[ 3.80; 2.77; 1.77; 0.78; 0.18; 0.03; 0.01];
f1=@(v)ones(size(v)); f2=@(v)v; f3=@(v)v.*v; % 1,v,v^2
F=@(v) [f1(v),f2(v),f3(v)]; % regression matrix function
S0=47.58; % Spot price, to be used as the strike price

There are three equivalent quadratic regression methods:

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)

All three give the same estimate $0.51.


(b) With the data entered in part (a), add open-interest weights as
follows:

w=[ 3260; 4499; 3862; 6271; 10156; 10619; 14219];


W=diag(w); % weight matrix
p=(F(x)’*W*F(x))\(F(x)’*W*y); F(S0)*p

Alternatively,

pa=LinearRegression(F(x),y,sqrt(w)); F(S0)*pa

Both ways give an at-the-money premium estimate $0.47.


(c) Reusing the data entered in part (a), this is returned by

polyval(polyfit(x,y,length(x)-1),S0)

This estimate is $0.37.


(d) With the data entered in part (a), this is returned by:

ppval(spline(x,y),S0)

A feature of Octave’s spline() function is that it evaluates the com-


puted spline if given a third argument:

spline(x,y,S0)

Both commands give the same estimate $0.37.


NOTE: the market premium at this instant was $0.38 for the Call option
at strike price $47.50. 2
. . . to Chapter 3 Exercises 239

A.3 . . . to Chapter 3 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

S(T, ↓) < RS(0) < S(T, ↑).

(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,

RS(0) = Pr(↓)S(T, ↓) + Pr(↑)S(T, ↑)

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

d < R1/N < u.

(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

0 < S(T, ω0 ) = S(0)dN < S(T, ω1 ) < · · · < S(T, ωN ) = S(0)uN

(a) If R1/N ≤ d < u, then R ≤ dN < uN , which implies

RS(0) ≤ S(T, ω0 ); RS(0) < S(T, ωk ), k = 1, . . . , N,

so that borrowing S(0) to buy S at t = 0 will result in an arbitrage


profit at t = T . Similarly, if d < u ≤ R1/N , then dN < uN ≤ R, which
implies

RS(0) ≥ S(T, ωN ); RS(0) > S(T, ωk ), 0 ≤ k < N,

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

Dividing by S(0) > 0 simplifies this to


N
X
R= Pr(ωk )uk dN −k .
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 ,

from which it follows that d < R1/N < u as claimed. 2


. . . to Chapter 3 Exercises 241

3. Suppose that a portfolio X contains risky stock S and riskless bond B


in amounts h0 , h1 :

X(t, ω) = h0 B(t, ω) + h1 S(t, ω).

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 :

X(T, ↑) = h0 B(T, ↑) + h1 S(T, ↑) = h0 R + h1 S(T, ↑)


X(T, ↓) = h0 B(T, ↓) + h1 S(T, ↓) = h0 R + h1 S(T, ↓)

Use these Macsyma commands to solve the system:

eq1: xTu=h0*R+h1*sTu; /* Up state equation */


eq2: xTd=h0*R+h1*sTd; /* Down state equation */
h0h1: solve([eq1,eq2],[h0,h1]); /* Solve for h0,h1 */

That results in this output:

[[h0=-(sTd*xTu-sTu*xTd)/((sTu-sTd)*R),
h1=(xTu-xTd)/(sTu-sTd)]]

Writing the Macsyma solution in the orginal notation gives


S(T, ↑)X(T, ↓) − S(T, ↓)X(T, ↑) X(T, ↑) − X(T, ↓)
h0 = ; h1 = .
(S(T, ↑) − S(T, ↓))R S(T, ↑) − S(T, ↓)
2
4. In Exercise 3 above, suppose that X is a European-style Call option for
S with expiry T and strike price K. Use the payoff formula X(T ) =
+
[S(T ) − K] in the equation for h1 to prove that

0 ≤ h1 ≤ 1.

Conclude that, in this model of the future, a European-style Call option


for S is equivalent to a portfolio containing part of a share of S plus or
minus some cash.
Solution: Substitute the payoff formula into the equation for h1 , then
add and subtract K in the denominator to get:
+ +
X(T, ↑) − X(T, ↓) [S(T, ↑) − K] − [S(T, ↓) − K]
h1 = = .
S(T, ↑) − S(T, ↓) (S(T, ↑) − K) − (S(T, ↓) − K)

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)

But the denominator is (S(T, ↓) − K) ≤ 0, which implies

(S(T, ↑) − K) − (S(T, ↓) − K) ≥ (S(T, ↑) − K) > 0,

so the positive denominator is no smaller than the positive numerator,


so 0 < h1 ≤ 1.

Conclude that 0 ≤ h1 ≤ 1 in all cases. 2


5. In Exercise 3 above, suppose that X is a European-style Put option for
S with expiry T and strike price K. Use the payoff formula X(T ) =
+
[K − S(T )] in the equation for h1 to prove that

−1 ≤ h1 ≤ 0.

Conclude that, in this model of the future, a European-style Put option


for S is equivalent to a portfolio containing part of a share of S sold
short plus or minus some cash.
Solution: Substitute the payoff formula into the equation for h1 , mul-
tiply numerator and denominator by −1, and then add and subtract K
in the denominator to get:
+ +
X(T, ↑) − X(T, ↓) [K − S(T, ↑)] − [K − S(T, ↓)]
h1 = =− .
S(T, ↑) − S(T, ↓) (K − S(T, ↑)) − (K − S(T, ↓))

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

(K − S(T, ↑)) − (K − S(T, ↓))


h1 = − = −1.
(K − S(T, ↑)) − (K − S(T, ↓))

Case 2: If S(T, ↑) > S(T, ↓) ≥ K, then both plus-parts are zero, so


0−0
h1 = − = 0.
(K − S(T, ↑)) − (K − S(T, ↓))

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, ↓))

But the denominator is (K − S(T, ↑)) ≤ 0, which implies

(K − S(T, ↑)) − (K − S(T, ↓)) ≤ −(K − S(T, ↓)) < 0,

so the negative denominator has no smaller absolute value than the


positive numerator, so −1 ≤ h1 < 0.

Conclude that −1 ≤ h1 ≤ 0 in all cases.


+ +
Remark. An alternative proof uses the identity y = [y] −[−y] which
is true for any y. Then
+ +
(S(T, ω) − K) = [S(T, ω) − K] − [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

(a) Use a LibreOffice Calc spreadsheet to implement the Cox-Ross-


Rubinstein (CRR) model to compute C(0) and P (0) with N = 10 time
steps, using the backward pricing formula in Eq.3.18. (Hint: compare
output with CRReurAD() to check for bugs.)
(b) Use the Octave function CRReurAD() with N = 10, N = 100, and
N = 1000 time steps to compute C(0) and P (0).
(c) Repeat part (b) with the Octave function CRReur() on p.88, again
using N = 10, N = 100, and N = 1000 time steps to compute C(0) and
P (0). Profile the time required to compute them, and compare the time
and the output with that of CRReurAD().
(d) Compare the prices from parts (b) and (c). Is it justified to use
N = 1000? Is N = 10 sufficiently accurate?
Solution: (a) See the spreadsheet CRR.ods in the programs archive.
With N = 10 time steps, rounding to five significant digits, it computes
C(0) = $4.1733 and P (0) = $7.2922.
(b) Implement the program CRReurAD() on p.76, input the parameters,
and compute the CRR approximations at N = 10, N = 100, and N =
1000 with the commands

T=1; S0=90; K=95; r=0.02; v=0.15;


[C0,P0]=CRReurAD(T,S0,K,r,v,10) % 4.1733, 7.2922
[C0,P0]=CRReurAD(T,S0,K,r,v,100) % 4.0572, 7.1761
[C0,P0]=CRReurAD(T,S0,K,r,v,1000) % 4.0555, 7.1744

At N = 10 time steps it returns C(0) = $4.1733 and P (0) = $7.2922, in


agreement with the spreadsheet.
After N = 100 time steps, C(0) = $4.0572 and P (0) = $7.1761.
After N = 1000 time steps, C(0) = $4.0555 and P (0) = $7.1744.
In all cases the computations are almost instantaneous, requiring no
noticeable time.
(c) The Octave program CRReur()m on p.88 uses the backward induc-
tion formula to compute Call and Put premiums. It therefore fills two
recombining binomial trees of depth N at a cost of O(N 2 ) compared
with the O(N ) cost of the Arrow-Debreu expansion method.
Input the parameters and compute the CRR approximations at N = 10,
N = 100, and N = 1000 with the commands

T=1; S0=90; K=95; r=0.02; v=0.15;


[C,P]=CRReur(T,S0,K,r,v,10); C(1,1),P(1,1) % 4.1733, 7.2922
profile on; CRReur(T,S0,K,r,v,10); profshow % ~0.013 seconds
[C,P]=CRReur(T,S0,K,r,v,100); C(1,1),P(1,1) % 4.0572, 7.1761
profile on; CRReur(T,S0,K,r,v,100); profshow % ~1.05 seconds
[C,P]=CRReur(T,S0,K,r,v,1000); C(1,1),P(1,1) % 4.0555, 7.1744
profile on; CRReur(T,S0,K,r,v,1000); profshow % ~103 seconds
. . . to Chapter 3 Exercises 245

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:

T=1; S0=90; K=95; r=0.02; v=0.15; [C0,P0]=BS(T,S0,K,r,v)

This returns CBS = C0 = 4.0548 and PBS = P0 = 7.1736. Now compute


the logarithms of the differences as a function of log N :

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))

The output is tabulated below:

N log N log |CCRR − CBS | log |PCRR − PBS |


10 2.3026 −2.1328 −2.1320
100 4.6052 −6.0323 −5.9915
1000 6.9078 −7.2644 −7.1309

Finally, generate the log-log plots:

plot(log(Ns),log(abs(CCRR-C0))); title("Call Difference");


xlabel("log N"); ylabel("log|CRR(N)-BS|"); figure;
plot(log(Ns),log(abs(PCRR-P0))); title("Put Difference");
xlabel("log N"); ylabel("log|CRR(N)-BS|");
246 Answers
Call Difference Put Difference
-2 -2

-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

Solution: Recall that q = (u − 1/R)/(u − 1/u). Using Taylor’s approx-


imation in the numerator gives
r r 3
T σ2 T T rT T
[1 + σ + + O( )] − [1 − + O([ ]2 )],
N 2 N N N N
while in the denominator it gives
r r 3 r r 3
T σ2 T T T σ2 T T
[1+σ + + O( )] − [1−σ + + O( )].
N 2 N N N 2 N N
. . . to Chapter 3 Exercises 247

Canceling terms and simplifying the ratio gives


q   q 3   2 
T σ2 T T T
σ N + r+ 2 N +O N +O N
q = q q 3 
T T
2σ N +O N
2 r
1 r + σ2
 
T T
= + +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:

T=1; K=95; r=0.02; v=0.15; N=4; m=401;


S=linspace(75,115,m); CS=zeros(size(S));
for i=1:m
S0=S(i); [C0,P0]=CRReurAD(T,S(i),K,r,v,N); CS(i)=C0;
end
plot(S,CS); title("CRR with N=4");xlabel("S0");ylabel("C0");

See the result in Figure A.6.


(b) The graph appears piecewise linear with joints Ŝ0 ∈ {82, 95, 110}
where the Call premium is not differentiable with respect to S0 .
(c) Compute the joints, or points of nondifferentiability Ŝ0 nearest K,
using Eq.3.39 and j ∈ {N/2 − 1, N/2, N/2 + 1} = {1, 2, 3}:
 
K K K
= d2 K, K, u2 K ,

Ŝ0 ∈ 2(j+1)−N
, 2j−N
, 2(j−1)−N
u u u
p
where 1/d = u = exp(σ T /N ). With the given parameters,
p
u = exp(0.15 1/4) = 1.0779, =⇒ Ŝ0 ∈ {81.767, 95, 110.37},

in good agreement with the visual estimate. 2


248 Answers

CRR with N=4


25

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():

T=1; S0=90; K=95; r=0.02; v=0.15; N=100;


[C0,P0]=CRReurAD(T,S0,K,r,v,N)

For ∆ and Γ, use the interpolation method on p.83:

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

This is necessary because the approximation is not differentiable with


respect to S0 .
For the other Greeks, use the centered difference approximation to the
derivative with h set to 10% of the abscissa value:

h=0.10*T; % for ThetaC, ThetaP


[C0u,P0u]=CRReurAD(T+h,S0,K,r,v,N);
[C0d,P0d]=CRReurAD(T-h,S0,K,r,v,N);
ThetaC=-(C0u-C0d)/(2*h), ThetaP=-(P0u-P0d)/(2*h)
h=0.10*v; % for VegaC, VegaP
[C0u,P0u]=CRReurAD(T,S0,K,r,v+h,N);
[C0d,P0d]=CRReurAD(T,S0,K,r,v-h,N);
VegaC=(C0u-C0d)/(2*h), VegaP=(P0u-P0d)/(2*h)
h=0.10*r; % for RhoC, RhoP
[C0u,P0u]=CRReurAD(T,S0,K,r+h,v,N);
[C0d,P0d]=CRReurAD(T,S0,K,r-h,v,N);
RhoC=(C0u-C0d)/(2*h), RhoP=(P0u-P0d)/(2*h)

Since the centered difference approximation has O(h2 ) ≈ 1% rela-


tive error, expect roughly two significant digits of accuracy. Much
smaller values of h are not justified since the option premiums are only
O(1/N ) ≈ 1% accurate as shown in Exercise 7.
The results are tabulated below:

Option Delta Gamma Theta Vega Rho


Call 4.0572 0.43987 0.029063 −3.4348 36.298 35.457
Put 7.1761 −0.56013 0.029063 −1.5724 36.298 −57.661

Comparison with the Black-Scholes premiums and Greeks computed in


Chapter 2, Exercise 10 shows good agreement. 2

A.4 . . . to Chapter 4 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.)
Solution: The Octave function CRRcp() differs from CRRcc() at line
25 and in a few updated comments.
250 Answers

1 function [W, P ] = CRRcp(T, T1 , S0 , K, L , r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e a compound Put
3 % i n t h e Cox−Ross−R u b i n s t e i n (CRR) b i n o m i a l model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time i n y e a r s (1)
6 % T1 = c h o i c e time ; must have 0<T1<T (0.5)
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 (20)
13 % OUTPUT:
14 % W = p r i c e o f t h e compound Put o p t i o n
15 % P = p r i c e o f t h e v a n i l l a European Put o p t i o n
16 % EXAMPLE:
17 % [W, P ] = CRRcp ( 1 , 0 . 5 , 9 0 , 9 5 , 4 . 5 0 , 0 . 0 2 , 0 . 1 5 , 2 0 ) ;
18 % W( 1 , 1 ) ,P( 1 , 1 ) % t o g e t j u s t W( 0 ) and P( 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 e x p i r y T1
25 W(M+1 , j +1) = max(L−P(M+1, j +1) , 0 ) ; % p l u s 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 % Binomial 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 P a r e d e f i n e d .
33 end

Compute the compound Put premium with the requested parameters as


follows:

[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

Conclude that the premium is about 0.96. 2


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

M(n + 1) = [2M(n)] ∪ [2M(n) + 1] ,


def
where aX + b = {ax + b : x ∈ X} for sets X of numbers.
. . . to Chapter 4 Exercises 251

Solution: Apply the definitions:

M(n) = {2n , 2n + 1, . . . , 2n + (2n −1)},


2M(n) = {2n+1 , 2n+1 + 2, . . . , 2n+1 + (2n+1 −2)},
2M(n) + 1 = {2n+1 + 1, 2n+1 + 3, . . . , 2n+1 + (2n+1 −1)},

so the union of the last two sets is evidently

M(n + 1) = {2n+1 , 2n+1 + 1, . . . , 2n+1 + (2n+1 −1)},

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

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

Compare (and test for bugs) by running the geometric mean and arith-
metic mean functions on the same suggested example inputs:

[Cg,Pg]=CRRflg(1,90,0.02,0.20,4);Cg(1),Pg(1) % 4.6711, 3.4209


[Ca,Pa]=CRRflt(1,90,0.02,0.20,4);Ca(1),Pa(1) % 4.4853, 3.5920

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:

r=0.05; T=1; K=100; S0=100; v=0.15;


limit=S0*(1-exp(-r*T))/(r*T)-K/exp(r*T) % limit = 2.4182
[C,P]=CRRaro(T,S0,K,r,v,3); N3=C(1)-P(1) % N3 = 2.4250
[C,P]=CRRaro(T,S0,K,r,v,5); N5=C(1)-P(1) % N5 = 2.4223
[C,P]=CRRaro(T,S0,K,r,v,7); N7=C(1)-P(1) % N7 = 2.4211
[C,P]=CRRaro(T,S0,K,r,v,9); N9=C(1)-P(1) % N9 = 2.4205
[C,P]=CRRaro(T,S0,K,r,v,11); N11=C(1)-P(1) % N11 = 2.4201

The outputs suggest that every N ≥ 5 achieves an approximation within


one cent. 2
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.
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)
. . . to Chapter 4 Exercises 253

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
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

Compare (and test for bugs) by running both the geometric mean and
the arithmetic mean functions on the same suggested example inputs:

[Cg,Pg]=CRRflg(1,90,0.02,0.20,4);Cg(1),Pg(1) % 4.6711, 3.4209


[Ca,Pa]=CRRflt(1,90,0.02,0.20,4);Ca(1),Pa(1) % 4.4853, 3.5920

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

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]=CRRfltAD ( 1 , 9 0 , 0 . 0 2 , 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 Ubar=NRTpsums( Sbar ,N) ; % a l l p a r t i a l sums
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 , Sbar (mN)−AvgN) ∗ Lbar (mN) ’ ; % C a l l
25 P0=max( 0 , AvgN−Sbar (mN) ) ∗ Lbar (mN) ’ ; % Put
26 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
27 end

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)

The outputs agree: C0=4.4853=C(1) and P0=3.5920=P(1). 2


7. Write an Octave program to compute the maximums along all paths in
a non-recombining binary tree of depth N . (Hint: modify NRTmin().)
Solution: Let S̄max (m) be the maximum value of S(n, j) along the
path indexed by m. It may be computed from the non-recombining tree
S̄ by the following recursion:
def
S̄max (1) = S̄(1),
S̄max (2m) = max{S̄max (m), S̄(2m)}, (A.2)
S̄max (2m+1) = max{S̄max (m), S̄(2m+1)}.

Eq.A.2 is easily implemented in Octave. Following the hint, start with


NRTmin() and modify lines 15 and 16, replacing min with max.
1 function Maxb = NRTmax( Sbar , N)
2 % Octave /MATLAB f u n c t i o n t o compute maximums
3 % a l o n g p a t h s i n a non−r e c o m b i n i n g t r e e (NRT) .
4 % INPUTS : ( Example )
5 % Sbar = NRT a r r a y o f l e n g t h 2∗2^N−1 (1:15)
6 % N = t r e e depth , must be >=0 (3)
7 % OUTPUT:
8 % Maxb = NRT o f maximums , same s i z e a s Sbar
9 % EXAMPLE:
. . . to Chapter 4 Exercises 255

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)

The outputs agree: C0=13.758=C(1) and P0=9.6589=P(1). 2


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.
Solution: For the ladder Put option, there is a specified strike price K
and a decreasing ladder {Li } of in-the-money prices below K:

S(0) ≥ min{S(0), K} > L1 > · · · > Lk .

Let M (T ) = min{S(t) : 0 ≤ t ≤ T } be the minimum price of S up to


expiry. Then the payoff is
def +
P (T ) = max{[K − S(T )] , K − Li }, (A.3)

where Li is the lowest rung reached by S(t) as recorded by M (T ):

Li+1 < M (T ) ≤ Li .

In the discrete CRR implementation with N time steps to expiry, both S


and M are stored as linear arrays with m indexing. The paths of length
N are indexed by m ∈ M(N ) = {2N , . . . , 2N + (2N −1)}, so those are
the indices in the non-recombining tree P where terminal values are set
using Eq.A.3. Then the option premium is found by backward induction
as usual:
pP (2m+1) + (1−p)P (2m)
P (m) = , m = 2N −1, 2N −2, . . . , 2, 1,
R
where p is the risk neutral up probability from the CRR model, and R
is the riskless return per time step.
1 function LadP = CRRladP (T, S0 , K, L , r , v ,N)
2 % Octave /MATLAB f u n c t i o n t o p r i c e a l a d d e r Put
3 % o p t i o n u s i n g a Cox−Ross−R u b i n s t e i n (CRR) model .
4 % INPUTS : ( Example )
5 % T = e x p i r a t i o n time i n y e a r s (1)
6 % S0 = s p o t p r i c e (50)
7 % K = strike price (55)
8 % L = d e c r e a s i n g p r i c e s < S0 ,K ([45 ,40 ,35])
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 % LadP = Ladder Put o p t i o n p r i c e a r r a y .
14 % EXAMPLE:
. . . to Chapter 4 Exercises 257

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

Note that, as with the Call,


+
P (T ) ≥ [K − S(T )] ≥ 0,

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

A.5 . . . to Chapter 5 Exercises


1. Suppose that S and R are modeled with a recombining binomial tree of
N ≥ 1 levels. Prove that

G(N − 1, j) = F (N − 1, j) = S(N − 1, j)R(N − 1, j)

for all states j.


Solution: From Eq.5.4 it follows that

F (N − 1, j) = S(N − 1, j)R(N − 1, j).

It remains to compute G(N −1, j) with the backward induction formula.


Since G(N, j) = S(N, j) for all j,

G(N − 1, j) = πG(N, j + 1) + (1 − π)G(N, j)


= πS(N, j + 1) + (1 − π)S(N, j)
πS(N, j + 1) + (1 − π)S(N, j)
= R(N − 1, j)
R(N − 1, j)
= S(N − 1, j)R(N − 1, j),
def
where π = p(N − 1, j) is the risk neutral up probability at n = N − 1
in state j. Conclude that

F (N − 1, j) = S(N − 1, j)R(N − 1, j) = G(N − 1, j).

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:

F (N, j) = G(N, j) = S(N, j)


F (N − 1, j) = G(N − 1, j) = S(N − 1, j)R(N − 1, j).

Now fix N = 2 and suppose that

(R(1, 1) − R(1, 0))(S(1, 1) − S(1, 0)) > 0.

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,

G(1, 1) = R(1, 1)S(1, 1) > R(1, 0)S(1, 0) = G(1, 0)


def
Write π = p(0, 0), the risk neutral up probability, to compute

G(0, 0) = πG(1, 1) + (1 − π)G(1, 0),

using Eq.5.8. Likewise, compute the Forward price by backward induc-


tion for S and D with that π:

F (0, 0, 2) = S(0, 0)/D(0, 0)


[πS(1, 1) + (1 − π)S(1, 0)]/R(0, 0)
=
[πD(1, 1) + (1 − π)D(1, 0)]/R(0, 0)
πS(1, 1) + (1 − π)S(1, 0)
=
πD(1, 1) + (1 − π)D(1, 0)
πS(1, 1) + (1 − π)S(1, 0)
=
π/R(1, 1) + (1 − π)/R(1, 0)
πG(1, 1)/R(1, 1) + (1 − π)G(1, 0)/R(1, 0)
=
π/R(1, 1) + (1 − π)/R(1, 0)
= θG(1, 1) + (1 − θ)G(1, 0),

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

F (0, 0, 2) = θG(1, 1, 2) + (1 − θ)G(1, 0, 2)


< πG(1, 1, 2) + (1 − π)G(1, 0, 2)
= G(0, 0, 2),

so G(0, 0, 2) > F (0, 0, 2), as claimed. 2


3. Suppose that S and R are modeled with a recombining binomial tree of
N > 2 levels. Prove that if

(R(N − 1, j + 1) − R(N − 1, j))(S(N − 1, j + 1) − S(N − 1, j)) > 0


260 Answers

for all j = 0, 1, ..., N − 2, then G(0, 0) > F (0, 0).


Solution: For each 0 ≤ j ≤ N − 2, there is a two-level recombining
binomial tree below (N − 2, j) with this portion of the S and R model:

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)

Adjusting the time to N ← 2 and renumbering the state to j ← 0 results


in the two-level model
S(0, 0)
R(0, 0)
S(1, 0) S(1, 1)
R(1, 0) R(1, 1)
S(2, 0) S(2, 1) S(2, 2)

Likewise, the hypothesis thus renumbered goes from

(R(N − 1, j + 1) − R(N − 1, j))(S(N − 1, j + 1) − S(N − 1, j)) > 0

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

Net proceeds will be

F (0, 0) − F (N − 2, j) + G(N − 2, j) − G(0, 0) > 0,

with no remaining liabilities.


Conclude by the no-arbitrage axiom that F (0, 0) < G(0, 0). 2
4. Fix N = 4 in the function FwdFut() defined on p.135.
(a) Find inputs S and R such that F (0) > G(0), namely F(1,1)>G(1,1)
in the output of [F,G]=FwdFut(S,R,N).
(b) Find S and R such that F (0) < G(0), namely F(1,1)<G(1,1) in
the output of [F,G]=FwdFut(S,R,N).
Note: To be valid, solutions S and R in parts (a) and (b) must be
positive and must satisfy the no-arbitrage condition

S(n + 1, j) < R(n, j)S(n, j) < S(n + 1, j + 1)

for all 0 ≤ n < N and all 0 ≤ j ≤ n.


Solution: First note that the function pu=RiskNeut(S,R,N) will return
risk neutral up probabilities satisfying

R(n, j)S(n, j) − S(n + 1, j)


0 < pu(n + 1, j + 1) = < 1,
S(n + 1, j + 1) − S(n + 1, j)

iff the no-arbitrage conditions hold for all 0 ≤ n < N and 0 ≤ j ≤ n.


Thus it may be used to check candidate solutions. Roughly speaking,
the conditions will hold if R(n, j) ≈ 1 and S(n, j) has sufficient volatility
so that the up and down factors are far from 1.
Note also that solutions are not unique. For example, if S solves part
(a) for some particular R, then so does cS for any c > 0 since both F
and G are linear functions of S.
(a) Adding a row to the example on p.135 gives
S= 100 R= 1.025
85 115 1.03 1.02
75 100 130 1.035 1.025 1.015
65 85 115 150 1.04 1.03 1.02 1.01
55 80 100 130 170

Enter this into Octave as follows:

Sa=[100,0,0,0,0; 85,115,0,0,0; 75,100,130,0,0;


65,85,115,150,0; 55,80,100,130,170];
Ra=[1.025,0,0,0; 1.03,1.02,0,0; 1.035,1.025,1.015,0;
1.04,1.03,1.02,1.01];
262 Answers

Check the no-arbitrage conditions by running RiskNeut(Sa,Ra,4),


which returns valid probabilities:

0.58333
0.50200 0.57667
0.63125 0.58333 0.48429
0.50400 0.37750 0.57667 0.53750

Finally, compute F (0) = Fa(1, 1) = 109.92 > 109.52 = Ga(1, 1) = G(0):

[Fa,Ga]=FwdFut(Sa,Ra,4); Fa(1,1),Ga(1,1)

(b) It is suggested by the previous exercises that if S, R solves part (a),


then reversing the numbering of the R states will solve part (b). So, put

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];

Confirm the no-arbitrage conditions with RiskNeut(Sb,Rb,4), and then


compute:

[Fb,Gb]=FwdFut(Sb,Rb,4); Fb(1,1),Gb(1,1)

which returns F (0) = Fb(1, 1) = 110.81 < 111.32 = Gb(1, 1) = G(0). 2


5. Suppose that a commodities exchange wishes to broker Futures contracts
on an asset S, expiring in 0.5 years while riskless annual interest rates are
expected to remain constant at 0.02%. Under consideration are margin
requirements of 20, 30, 50, 80, and 150% of S0 for each contract.
(a) Compute the probability of a margin call, which will occur if and
only if the margin balance falls below 0, for both Long and Short Futures
contracts, with these five margin requirements. Use N = 6 time steps
and volatilities σ ∈ {0.10, 0.15, 0.20, 0.25, 0.30, 0.40, 0.50, 0.70}. Tabulate
the results and compare Long and Short margin requirements.
(b) Profile the computation with N = 6 and again with N = 13 to
compare the run times. Include in the count all times above 1% of the
total. Compare the run times to test the O(2N ) order of complexity.
Solution: (a) The following Octave commands use the programs in the
textbook to fill tables TabL and TabS with the Long and Short margin
call probabilities, respectively:

T=0.5; r=0.02; N=6; S0=100; % S0>0 is arbitrary


as=[0.20,0.30,0.50,0.80,1.50]; % alphas
vs=[0.10,0.15,0.20,0.25,0.30,0.40,0.50,0.70]; % volatilities
TabL=zeros(length(vs),length(as)); % output table - Longs
. . . to Chapter 5 Exercises 263

TabS=zeros(length(vs),length(as)); % output table - Shorts


for i=1:length(vs)
v=vs(i);
for j=1:length(as)
a=as(j);
[ML,MS,Pr] = CRRmargin(T,S0,a*S0,a*S0,r,v,N);
TabL(i,j) = PrNeg(ML, Pr, 1, N);
TabS(i,j) = PrNeg(MS, Pr, 1, N);
end
end

The results, tabulated by volatility σ and margin deposit multiple, are


in the table below:

σ α (%) TabL α (%) TabS


(%) 20 30 50 80 20 30 50 80 150
10 0 0 0 0 0 0 0 0 0
15 0.029 0 0 0 0.034 0 0 0 0
20 0.125 0.016 0 0 0.125 0.031 0 0 0
25 0.227 0.033 0 0 0.210 0.119 0.014 0 0
30 0.235 0.121 0 0 0.203 0.113 0.028 0 0
40 0.493 0.182 0.020 0 0.414 0.191 0.105 0.012 0
50 0.508 0.261 0.042 0 0.399 0.399 0.181 0.023 0
70 0.538 0.538 0.177 0 0.622 0.371 0.163 0.163 0.02

Long Futures (TabL) and Short Futures (TabS) margin call probabilities (N = 6).

The probability of a margin call mostly increases with volatility and


decreases with increasing margin deposit. This experiment suggests that,
to avoid margin calls at the same volatiliy, the Short margin account
needs a larger initial deposit than the Long.
(b) To profile the run times, the Octave commands in part (a) may be
enclosed as follows:

profile off; profile clear; profile on


T=0.5; r=0.02; N=13; S0=100; % S0>0 is arbitrary
% (insert code from above)
profile off; profshow % N=13 results
profile clear; profile on
T=0.5; r=0.02; N=6; S0=100; % S0>0 is arbitrary
% (insert code from above)
profile off; profshow % N=6 results

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

A.6 . . . to Chapter 6 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

by constructing an arbitrage otherwise.


Solution: If S(te +) > S(te −) − D, then
• buy S at time te −: −S(te −)
• collect D at time tp : +D
• sell S at te +: +S(te +)
Net: S(te +) + D − S(te −) > 0.
Else S(te +) < S(te −) − D, so
• sell S short at time te −: +S(te −)
• pay out D at time tp : −D
• buy S to cover at te +: −S(te +)
Net: S(te −) − D − S(te +) > 0.
In either case there is profit with no risk. Here it is assumed that any
borrowing is cost-free since te +, te −, and tp are nearly equal. Note that
the borrower of shares sold short is responsible for paying any dividend
owed to the lender. 2
2. Prove Eq.6.9 from Eq.6.8.
Solution: Substitute n ← n + 1 into Eq.6.8 to get
∞ ∞
X dn+1+k X dn+k
I(n + 1) = = ,
Rn+1 · · · Rn+1+k−1 Rn+1 · · · Rn+k−1
k=1 k=2

where the sums are actually finite because dN +2 = dN +3 = · · · = 0. It


follows that

I(n + 1) X dn+k dn+1
= = I(n) − .
Rn Rn Rn+1 · · · Rn+k−1 Rn
k=2

Adding dn+1 /Rn to both sides gives Eq.6.9. 2


. . . to Chapter 6 Exercises 265

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

Remark. These computations are all done in the function CRRmD()


which may be reused as follows:

T=6; Na=24; S0=17.90; sigma=0.1779;


[S,Sx,IpvQ]=CRRmD(T,S0,BACdivQ,ri,sigma,Na);

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

% Backward recursion for IpvM


IpvM(Nb+1) = BACdivM(Nb+2)/RM(Nb+1); % ignore later dividends
for n = (Nb-1):(-1):0 % textbook times {Nb-1,...,1,0}
IpvM(n+1) = (IpvM(n+2)+BACdivM(n+2))/RM(n+1);
end

CRRmD() may be used instead, as follows, with the nominal values S0 =


K = σ = 1:
T=6; Nb=72; S0=1; sigma=1;
[S,Sx,IpvM]=CRRmD(T,S0,BACdivM,r3i,sigma,Nb);

(c) Use the plotting function as in the Octave code below.


% Part (c):
tM=0:72; tQ=0:3:72; tD=0:3:75; % time indices
plot(tM,IpvM,"b--", tQ,IpvQ,"r-", tD,BACdivQ,"k*");
xlabel("Months from start of 2015");
ylabel("Dollars"); legend("IpvM","IpvQ","BACdivQ");
title("BAC dividends as cash flow present values");

BAC dividends as cash flow present values


3
IpvM
IpvQ
BACdivQ
2.5

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

4. For the experiments below, use CRRDaeC() with the parameters T = 1,


S0 = 100, K = 101, r = 0.02, v = 0.20, and N = 12.
(a) Find a nonzero dividend sequence for which early Call exercise is
sometimes optimal.
(b) Find another nonzero dividend sequence for which early Call exercise
is never optimal.
Solution: (a) Sufficiently large dividends will make early exercise op-
timal. For the given parameters r = 0.02, T = 1, K = 101, and N = 12
of this experiment, quarterly $1 dividends are sufficient:

T=1; S0=100; K=101; r=0.02; v=0.20, N=12;


Diq1=[0 1 0 0 1 0 0 1 0 0 1 0 0 1]; % Quarterly 1.00
[Ca,Ce,EE]=CRRDaeC(T,S0,K,Diq1,r,v,N);
EE % shows where early exercise is optimal
Ca>Ce % shows how early exercise adds value

From EE it may be seen that early exercise is optimal at states (n, j) ∈


{(6, 5), (6, 6), (9, 7), (9, 8), (9, 9)} before expiry.
(b) By the Remark on p.151 concerning Lemma 6.2, very small positive
dividends will not make early exercise optimal for American-style Calls.
The threshold is roughly
d < (R − 1)K = (exp(rT /N ) − 1)K ≈ 0.17,
So even with quarterly dividends of 0.16, early exercise will never be
optimal in this 12-step model. Check this with the previously entered
parameters:

Dtiny = (exp(r*T/N)-1)*K % about 0.16847


[Ca,Ce,EE]=CRRDaeC(T,S0,K,Dtiny*Diq1,r,v,N); % Qrtrly Dtiny
EE % shows that early exercise is never optimal
Ca>Ce % shows how early exercise adds no value

Of course, these solutions are not unique. 2


5. Implement CRR pricing for American and European Put options on an
asset with dividends, using decomposition into risky ex-dividend and
riskless cash flow portions. (Hint: Make a few changes to CRRDaeC().)
For the experiments below, set T = 1, S0 = 100, K = 101, r = 0.02,
v = 0.20, and N = 12.
(a) Find a nonzero dividend sequence for which early Put exercise is
sometimes optimal.
(b) Find a nonzero dividend sequence for which early Put exercise is
never optimal.
+
Solution: Following the hint, change the payoffs from [S − K] to
+
[K − S] in CRRDaeC() to get the CRR pricing function for Puts:
268 Answers

1 function [ Pa , Pe , EE ] = CRRDaeP(T, S0 , K, Di , r , v ,N)


2 % Octave /MATLAB f u n c t i o n t o p r i c e American and
3 % European Put o p t i o n s on an a s s e t decomposed
4 % i n t o S=Sx+Dpv by CRRD( ) , u s i n g t h e CRR model .
5 % INPUTS : ( Example )
6 % T = e x p i r a t i o n time (1 year )
7 % S0 = s t o c k p r i c e ( $100 )
8 % K = strike price ( $101 )
9 % Di = d i v i d e n d s e q u e n c e ( s e e below )
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 (12)
13 % OUTPUT:
14 % Pa = p r i c e o f American Put a t a l l ( n , j ) .
15 % Pe = p r i c e o f European Put a t a l l ( n , j ) .
16 % EE = I s e a r l y e x e r c i s e o p t i m a l a t ( n , j ) ?
17 % EXAMPLE:
18 % Di = [ 0 1 0 0 1 0 0 2 0 0 2 0 0 2 ] ; % Di ( k )=D_k
19 % [ Pa , Pe , EE]=CRRDaeP( 1 , 1 0 0 , 1 0 1 , Di , 0 . 0 2 , 0 . 1 5 , 1 2 ) ;
20 %
21 [ pu , up ,R]=CRRparams (T, r , v ,N) ; % Use CRR v a l u e s
22 [ S , Sx , Dpv]=CRRD(T, S0 , Di , r , v ,N) ; % decompose
23 Pa=zeros (N+1 ,N+1) ; Pe=zeros (N+1,N+1) ; % o u t p u t s
24 EE=zeros (N,N) ; % e a r l y e x e r c i s e T/F
25 f o r j = 0 :N % t o s e t t e r m i n a l v a l u e s a t (N, j )
26 xP=K−S (N+1 , j +1) ; % Put p a y o f f a t e x p i r y
27 Pa (N+1 , j +1) = Pe (N+1, j +1) = max( xP , 0 ) ;
28 end
29 % Use backward i n d u c t i o n p r i c i n g :
30 f o r n = (N−1) :( −1) : 0 % t i m e s n={N− 1 , . . . , 1 , 0 }
31 f o r j = 0 : n % s t a t e s j = { 0 , 1 , . . . , n} a t time n
32 % Backward p r i c i n g f o r A and E :
33 bPe=(pu∗Pe ( n+2 , j +2)+(1−pu ) ∗Pe ( n+2 , j +1) ) /R;
34 bPa=(pu∗Pa ( n+2 , j +2)+(1−pu ) ∗Pa ( n+2 , j +1) ) /R;
35 xP=K−S ( n+1, j +1) ; % Put e x e r c i s e v a l u e
36 % S e t p r i c e s a t node ( n , j ) :
37 Pe ( n+1 , j +1)=bPe ; % always b i n o m i a l p r i c e
38 Pa ( n+1 , j +1)=max( bPa , xP ) ; % h i g h e s t p r i c e
39 % I s e a r l y e x e r c i s e optimal ?
40 EE( n+1 , j +1)=(xP>bPa ) ; % Yes , i f xP>bPa
41 end
42 end
43 return ; % Pa , Pe , and EE a r e d e f i n e d .
44 end

(It is a good idea to update the comments, as is done here.)


(a) Quarterly $1 dividends provide an example where early exercise is
sometimes optimal:
. . . to Chapter 6 Exercises 269

T=1; S0=100; K=101; r=0.02; v=0.20, N=12;


Diq1 = [0 1 0 0 1 0 0 1 0 0 1 0 0 1]; % Quarterly 1.00
[Pa,Pe,EE]=CRRDaeP(T,S0,K,Diq1,r,v,N);
EE % shows where early exercise is optimal
Pa>Pe % shows how early exercise adds value

From EE it may be seen that early exercise is optimal at states (n, j) ∈


{(10, 0), . . . , (10, 4); (11, 0), . . . , (11, 5)} before expiry. This is also clear
from the premiums: Pa(1,1)=9.55 versus Pe(1,1)=9.41, so the early
exercise option is worth a little more.
(b) Since there is no similar result as Lemma 6.2, it is not clear what
makes early exercise nonoptimal for Puts. However, with a little exper-
imentation one might discover that a $1 monthly dividend suffices:

Dim1=[0 1 1 1 1 1 1 1 1 1 1 1 1 1]; % Monthly 1.00


[Pa,Pe,EE]=CRRDaeP(T,S0,K,Dim1,r,v,N);
EE % all zeros, so early exercise is never optimal
Pa>Pe % shows how early exercise adds no value

Remark. Increasing the monthly dividend, say to $2, preserves the


never-optimal property:

[Pa,Pe,EE]=CRRDaeP(T,S0,K,2*Dim1,r,v,N); EE % still all zeros

Reducing the monthly dividend to the Call threshold Dtiny, on the other
hand, has an effect:

Dtiny = (exp(r*T/N)-1)*K % about 0.16847


[Pa,Pe,EE]=CRRDaeP(T,S0,K,Dtiny*Dim1,r,v,N); EE % some ones!

The presence of nonzeros in EE shows that early exercise is optimal


at states (n, j) ∈ {(10, 2), (10, 3), (10, 4), (11, 2), (11, 5)} before expiry.
Reducing the monthly dividend still further, say to Dtiny/2, adds even
more early exercise states. 2
6. Suppose that government bonds are available with maturities of 1, 2,
3, and 4 years, with annual coupons for 0.5, 0.6, 0.8, and 1.1% of face
value, respectively. Their spot prices are respectively 0.9994, 0.9992,
0.9989, and 0.9985 times face value.
(a) Compute the zero-coupon bond discounts Z(0, 1), Z(0, 2), Z(0, 3),
and Z(0, 4) implied by these inputs.
(b) Plot the yield curve implied by {Z(0, T ) : T = 1, 2, 3, 4}.
Solution: For this case, the linear system relating coupon bond dis-
counts to zero coupon bond discounts is nonsingular.
(a) Write an Octave/MATLAB program to perform the calculation using
forward substitution as in Eq.6.17:
270 Answers

c=[0.5,0.6,0.8,1.1]/100; % coupon rates


B=[0.9994,0.9992,0.9989,0.9985]; % spot prices
Z=B; Z(1)=Z(1)/(1+c(1)); % allocate Z, set Z(1)
for i=2:4
Z(i) = (Z(i)-c(i)*sum(Z(1:i-1)))/(1+c(i));
end

This returns Z(i) = Z(0, i) values corresponding to

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:

rtT=@(Z,t,T)log(Z)./(t-T); % convert discounts to yields


plot(1:4,100*rtT(Z,0,1:4)); % use percentages
title("Yield Curve"); xlabel("T (years)"); ylabel("APR (%)");

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.

The results may be seen in Figure A.8. 2


. . . to Chapter 6 Exercises 271

7. Suppose that a company offers coupon bonds with maturities of 1, 2,


3, and 4 years, with semiannual coupons at 0.3, 0.4, 0.5, and 0.6% of
face value, respectively. Their spot prices are respectively 0.9994, 0.9992,
0.9989, and 0.9985 times face value.
(a) Compute the zero-coupon bond discounts Ẑ(0, 1), Ẑ(0, 2), Ẑ(0, 3),
and Ẑ(0, 4) implied by these inputs.
(b) Plot the yield curve implied by {Ẑ(0, T ) : 0 < T ≤ 4}.
Solution: For this case, the linear system relating coupon bond dis-
counts to zero-coupon bond discounts is underdetermined, so use poly-
nomial interpolation as in Eq.6.18.
(a) Write an Octave/MATLAB program to perform the calculation using
built-in commands:

B=[0.9994,0.9992,0.9989,0.9985]; % spot discounts B(i)


c=[0.3,0.4,0.5,0.6]/100; % coupon rates c(i)
T=[1,2,3,4]; % bond maturities T(i), in years
Del=0.5; N=T/Del; % number N(i) of semiannual coupons
bhat=(B-1-N.*c)’; % right-hand side column vector
M=4; Ahat=zeros(M,M); % allocate matrix for M=4 bonds
for i=1:M
nDel=(1:N(i))*Del; % [Del, 2*Del, ..., N(i)*Del]
for j=1:M
Ahat(i,j)= (N(i)*Del)^j+c(i)*sum(nDel.^j);
end
end
ahat=Ahat\bhat; % column of coefficients of Z polynomial
Zhat=@(t) 1+ahat’*[t; t.^2; t.^3; t.^4]; % use row vector t
Zhat(1:4) % returns Z^(0,1),Z^(0,2),Z^(0,3),Z^(0,4)

This returns Zhat(i) = Ẑ(0, i) values corresponding to

T 1 2 3 4
Ẑ(0, T ) 0.99343 0.98335 0.96936 0.95157

(b) Plot the yield curve with Octave/MATLAB at many values of T ∈


(0, 4] after converting discounts to yields:

rtT=@(Z,t,T)log(Z)./(t-T); % convert discounts to yields


t=linspace(0.5,4,36); % 36 equispaced points in [0.5, 4]
plot(t,100*rtT(Zhat(t),0,t)); % use percentages
title("Company Yield"); xlabel("T (years)"); ylabel("APR (%)");

The results may be seen in Figure A.9.


272 Answers

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%.

Use both ex and its approximations 1 + x and 1 − x in the present value


calculation and compare the results.
Solution: Implement Eq.6.16 using Octave commands.

T=7; N=2; I=1.5/100; F=1000; r=1.414/100;


P1=F*exp(-r*T)+(F*I/N)*sum(exp(-r*(1:(N*T))/N)); % 1005.38
P2=F/(1+r)^T+(F*I/N)*sum((1+r/N).^(-(1:(N*T)))); % 1006.03
P3=F*(1-r)^T+(F*I/N)*sum((1-r/N).^(1:(N*T))); % 1004.72
. . . to Chapter 7 Exercises 273

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

Note that BBSW is given as annualized percentages, so that it is neces-


sary to divide by 100 as well as by 12 before exponentiation to get the
monthly riskless returns R̄a .
(b) There are three given values in the tenor range 1–6 months, so use
quadratic interpolation with the 1, 3, and 6 month tenors to find the 2,
4, and 5 tenors:

libor=[0.39657,0.82600,1.13057]; % 11 Mar 2022, 1,3,6 mos.


tenor=[1,3,6]; months=[1,2,3,4,5,6]; % evaluation months
p=polyfit(tenor,libor,2); bench=polyval(p,months)
% bench = 0.39657 0.63392 0.82600 0.97280 1.07432 1.13057
rbb=12*diff([0,bench])
% rbb= 4.75884 2.84824 2.30492 1.76160 1.21828 0.67496
Rbb=exp(rbb/1200)
% Rbb= 1.0040 1.0024 1.0019 1.0015 1.0010 1.0006

As in part (a), divide the annualized percentages by 1200 and exponen-


tiate to get the monthly riskless returns R̄b . 2

A.7 . . . to Chapter 7 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
274 Answers

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:

1 − p(n−1, j) p(n−1, j−1)


λ(n, j) = λ(n−1, j) + λ(n−1, j−1)
 R     R
1 j Q(n, j) Q(n − 1, j)
= 1−w
R n Q(n − 1, j) Rn−1
  
1 j Q(n, j) Q(n − 1, j − 1)
+ w
R n Q(n − 1, j − 1) Rn−1
    
j j Q(n, j) Q(n, j)
= 1−w +w = .
n n Rn Rn

Thus Jamshidian’s forward induction with Jackwerth’s probabilities pro-


duces Jackwerth’s Arrow-Debreu spot prices. 2
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.
Solution: Use the Octave code that produced Figure 7.1, with the
following modifications:
. . . to Chapter 7 Exercises 275

Ks=40:46; Ts=[3,9,21,35,63]; % strikes and days to expiry


C=[4.14 4.35 4.85 4.60 5.15; ...
3.20 3.42 3.50 4.00 4.35; ...
2.24 2.72 2.89 3.15 3.65; ...
1.30 1.51 1.96 2.44 2.87; ...
0.63 0.86 1.34 1.71 2.39; ...
0.23 0.45 0.84 1.24 1.76; ...
0.07 0.22 0.52 0.88 1.39]; % Call premiums on 2021-12-14
S0=44.13; r=0.05; % spot price and riskless APR on 2021-12-14
VimpBS=zeros(length(Ks),length(Ts)); % BS implied volatilities
VimpCRR=zeros(length(Ks),length(Ts)); % CRR implied volatilities
minv=0.01; maxv=0.99; tol=0.00001; % bisection parameters
for col=1:length(Ts)
T=Ts(col)/365; % time to expiry in years
for row=1:length(Ks)
f=@(v) BS(T,S0,Ks(row),r/100,v); % Black-Scholes Call
VimpBS(row,col)=bisection(f,C(row,col),minv,maxv,tol);
g=@(v) CRReur(T,S0,Ks(row),r/100,v,20)(1,1); % CRR Call
VimpCRR(row,col)=bisection(g,C(row,col),minv,maxv,tol);
end
end

The output is in Table A.1:

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.

Dec17 Dec23 Jan7 Jan21 Feb18


K CRR BS CRR BS CRR BS CRR BS CRR BS
40 .50 .50 .54 .54 .54 .55 .36 .35 .37 .37
41 .56 .56 .49 .49 .35 .35 .39 .39 .35 .35
42 .47 .47 .52 .52 .39 .39 .36 .36 .34 .34
43 .36 .36 .30 .30 .31 .32 .33 .34 .31 .31
44 .35 .35 .29 .29 .30 .30 .30 .30 .32 .32
45 .34 .35 .29 .29 .28 .29 .29 .30 .29 .29
46 .36 .36 .30 .30 .28 .29 .30 .30 .29 .29

Remark. As expected, the two methods produce nearly identical val-


ues. To further check the results and the code, compare the Black-Scholes
(BS) values with the σ columns of Table 7.1. 2
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
276 Answers

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

Also, the US T-bill rates for various maturities were

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.

Ks=42:47; Ts=[1,8,15,21,27]; % strikes and days to expiry


C=[1.10 1.44 1.76 1.96 2.18 ;...
0.34 0.86 1.10 1.33 1.58 ;...
0.06 0.44 0.69 0.88 1.06 ;...
0.02 0.18 0.35 0.53 0.71 ;...
0.01 0.07 0.16 0.31 0.44 ;...
0.01 0.02 0.09 0.17 0.27 ]; % Call premiums on 2022-03-17
S0=43.03; r=0.215; % spot price and riskless APR
Vimp=zeros(length(Ks),length(Ts)); % implied volatilities
minv=0.01; maxv=0.99; tol=0.00001; % bisection parameters
for col=1:length(Ts)
T=Ts(col)/365; % time to expiry in years
for row=1:length(Ks)
f=@(v) BS(T,S0,Ks(row),r/100,v); % Black-Scholes Call
Vimp(row,col)=bisection(f,C(row,col),minv,maxv,tol);
end
end
mesh(Ts,Ks,Vimp); % note the transposed order (T,K,V(K,T))
title("Implied Volatility Surface");
xlabel("T (days)"); ylabel("K");

The results may be seen in Figure A.10. 2


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:
. . . to Chapter 7 Exercises 277

Implied Volatility Surface

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.

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.
Solution:
(a) Apply Rubinstein’s original 1-2-3 algorithm using IBT123J.m with
the following Octave commands:

Ks=[45,46,47,48,49]; Cs=[3.52 2.78 2.10 1.44 1.37];


S0=47.12; r=0.66/100; rho=exp(r); w=@(x)x;
[S,Q,up,down,pu,N1]=IBT123J(S0,Ks,Cs,rho,w); S,pu

That produces the following output, edited for space savings:

S = % implied binomial tree pu = % risk neutral up probs.


278 Answers

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:

w1=@(x)sqrt(x); w2=@(x)x.^2; w3=@(x)(1-cos(pi*x))/2;


t=0:0.01:1; plot(t,w1(t),"r--",t,w2(t),"b..",t,w3(t),"k-");
legend("w1","w2","w3","location","southeast");
title("Weight Functions for Jackwerth’s Generalization");

Weight Functions for Jackwerth’s Generalization


1

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.

(c) Run three experiments as follows, reusing previously assigned vari-


ables from parts (a) and (b):

[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

The results, side-by-side, are:

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

Note that there is one less row for the up probabilities. 2

A.8 . . . to Chapter 8 Exercises


1. Prove that any subspace V ⊂ Rn is a closed convex cone.
Solution: Check the needed properties:
Cone: v ∈ V =⇒ λv ∈ V for any λ > 0, since any multiple of a
vector is still in the subspace.
Convex: For any x, y ∈ V and any λ ∈ [0, 1], both λx ∈ V and
(1 − λ)y ∈ V just as above. Then λx + (1 − λ)y ∈ V because sums of
vectors in V remain in V .
Closed: If V = Rn , then its complement Rn \ V = ∅ is open, so V is
closed. Otherwise, let x ∈ Rn \ V be any point. By Lemma 8.12, there is
some  > 0 such that kx − yk ≥  for all y ∈ V . Hence B (x) ⊂ Rn \ V ,
so the complement of V is open by definition, so V is closed. 2
2. Prove that the closed orthant K ∈ Rn of vectors with nonnegative
coordinates is a closed convex cone.
Solution: Check the needed properties:
Cone: k = (k1 , . . . , kn ) ∈ K ⇐⇒ (∀i)ki ≥ 0, so for any λ > 0,
λk = (λk1 , . . . , λkn ) ∈ K because (∀i)λki ≥ 0.
280 Answers

Convex: For any x, y ∈ K and any λ ∈ [0, 1], the coordinates of


λx + (1 − λ)y will be

λxi + (1 − λ)yi ≥ 0, i = 1, . . . , n,

since xi , yi , λ, and 1 − λ are all nonnegative. Hence λx + (1 − λ)y ∈ K.


Closed: It suffices to prove that the complement of K is open. But
x = (x1 , . . . , xn ) ∈ Rn \ K ⇐⇒ (∃i)xi < 0. Suppose without loss of
generality that x1 < 0. Let  = |x1 |/2. Then for every y = (y1 , . . . , yn ) ∈
B (x), it must be that |y1 −x1 | <  = |x1 |/2, so y1 < 0 as well. Conclude
that B (x) ⊂ Rn \ K, so Rn \ K is an open set, so K is closed. 2
3. Prove that the pointless orthant K \ 0 is a convex cone but is neither
open nor closed.
Solution: Check the needed properties:
Cone: k = (k1 , . . . , kn ) belongs to K \ 0 if and only if all coordinates
ki are nonnegative and at least one of them is positive. This property is
preserved by multiplication by λ > 0.
Convex: For any x, y ∈ K \ 0 and any λ ∈ [0, 1], the coordinates of
λx + (1 − λ)y will be

λxi + (1 − λ)yi ≥ 0, i = 1, . . . , n,

since xi , yi , λ, and 1 − λ are all nonnegative. Hence λx + (1 − λ)y ∈ K.


It remains to show that some coordinate is positive, which can be done
by checking two cases for λ ∈ [0, 1]. By hypothesis, there is some i such
that xi > 0 and some j such yj > 0.
• If λ > 0, then λxi + (1 − λ)yi > 0.
• Else λ = 0, so 1 − λ = 1 > 0, so λxj + (1 − λ)yj = yj > 0.
Conclude that λx + (1 − λ)y ∈ K \ 0.
Not open: Every open ball centered at the point (1, 0, . . . , 0) ∈ K \ 0
contains points with some negative coordinates which are therefore not
in K \ 0. Hence K \ 0 is not open.
Not closed: Every open ball B (0) centered at the point 0 in the
complement of K \ 0 contains points with all positive coordinates which
are therefore in K \0. Hence the complement of K \0 is not open. Hence
K \ 0 is not closed. 2
4. Prove that K o is an open convex cone.
Solution: Check the needed properties:
Cone: k = (k1 , . . . , kn ) belongs to K o if and only if all coordinates ki
are positive. This property is preserved by multiplication by λ > 0.
. . . to Chapter 8 Exercises 281

Convex: For any x, y ∈ K o and any λ ∈ [0, 1], the coordinates of


λx + (1 − λ)y will be

λ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

|yi − xi | < , =⇒ yi > xi −  > 0.

Thus y ∈ K o , so B (x) ⊂ K o , so K o is open. 2


5. Prove that the intersection of any collection of convex sets is convex.
Solution: Suppose that {Cα : α ∈ I} is an arbitrary collection of
convex sets. Let S = ∩α∈I be the intersection of all of them.
If S = ∅, then S is convex as there is nothing to check.
Otherwise, suppose x, y ∈ S, fix t ∈ [0, 1], and let z = tx + (1 − t)x. For
every α ∈ I, x, y ∈ Cα implies z ∈ Cα , since Cα is convex. But then
z ∈ S = ∩α Cα . Conclude that S is convex. 2
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.

Solution: (a) Choose any x = (x1 , . . . , xn ) ∈ K 0 . Take k =


(1, 0, . . . , 0) ∈ K to compute x1 = xT k ≥ 0. Corresponding arguments
show that xi ≥ 0 for every i = 1, 2, . . . , n. Thus K 0 ⊂ K.
Conversely, if x ∈ K, then for every k ∈ K compute

xT k = x1 k1 + · · · + xn kn ≥ 0,

since all terms are nonnegative. Thus K ⊂ K 0 . Conclude that K = K 0 .


(b) To find the dual, suppose x = (x1 , . . . , xn ) ∈ (K o )0 . Take k =
(1, , . . . , ) ∈ K o to compute x1 + (x2 + · · · xn ) = xT k ≥ 0. If x1 < 0,
then for sufficiently small  > 0 this inequality will be violated. Thus it
282 Answers

must be that x1 ≥ 0. Corresponding arguments show that xi ≥ 0 for


every i = 1, 2, . . . , n. Thus (K o )0 ⊂ K.
Conversely, if x ∈ K, then for every k ∈ K o compute
xT k = x1 k1 + · · · + xn kn ≥ 0,
since all factors and summands are nonnegative. Thus K ⊂ (K o )0 . Con-
clude that K = (K o )0 .
To find the strict dual, suppose x = (x1 , . . . , xn ) ∈ (K o )∗ . Take k =
(1, , . . . , ) ∈ K o to compute x1 + (x2 + · · · xn ) = xT k > 0. If x1 <
0, then, as before, for sufficiently small  > 0 this inequality will be
violated. Thus x1 ≥ 0. Corresponding arguments show that xi ≥ 0 for
every i = 1, 2, . . . , n. But also, if x = 0, then xT k = 0 so the inequality
will be violated. Thus (K o )∗ ⊂ K \ 0.
Conversely, if x ∈ K \ 0, then for every k ∈ K o 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 )∗ .

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

where A ∈ Rm×n , and K, K o are the orthants of Definition 6.


Solution: Recall that vi ∈ Rm is the ith column of A, defining the
rays Vi = {cvi : c > 0} and V̄i = {cvi : c ≥ 0} for i = 1, . . . , n. Then
x ∈ AK iff there exists k = (k1 , . . . , kn ) ∈ K such that x = Ak. But
then,
Xn Xn
x = Ak = ki vi ∈ V̄i ,
i=1 i=1

since ki vi ∈ V̄i because ki ≥ 0 for all i.


Likewise, x ∈ AK o iff there exists ko = (k1o , . . . , kno ) ∈ K o such that
x = Ako , But then
n
X n
X
x = Ako = kio vi ∈ Vi ,
i=1 i=1

since kio vi ∈ Vi because kio > 0 for all i. 2


8. Prove Corollary 8.18 on p.209: The set S of strictly profitable portfolios
is a strict dual cone: S = (AK o )∗
Solution: Modify the proof of Corollary 8.17 as follows:
Proof: Since (K \ 0)∗ = K o by Theorem 8.16(c),

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 )∗ ,

since AK o = {Ak : k ∈ K o }, so that the next to last condition is just


the definition of membership in the strict dual cone (AK o )∗ . 2

9. Suppose S ⊂ Rn is any set. Prove the following:


(a) S ⊥ is a subspace.
(b) S ∗ ⊂ S 0 and thus S ∗ ∩ S 0 = S ∗ .
(c) S ⊥ ⊂ S 0 and thus S ⊥ ∩ S 0 = S ⊥ .
(d) S ⊥ ∩ S ∗ = ∅.
284 Answers

(e) S ⊥ , S 0 , and S ∗ are all convex cones.


(f) If 0 ∈ S, then S ∗ = ∅. Thus if S is a subspace, then S ∗ = ∅.

Solution: (a) Check the definition:


• 0 ∈ S ⊥ since 0T s = 0 for any s ∈ S.
• Given x, y ∈ S ⊥ , take any s ∈ S and compute

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

sT (cx) = csT x = c0 = e0.

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

where R > 1 is the riskless return and a = (a1 , . . . , an ) is a nonconstant


payoff vector for the sole risky asset.
. . . to Chapter 8 Exercises 285

(a) Find necessary and sufficient conditions on q such that A, q is


arbitrage-free. (Hint: use the Fundamental Theorem.)
(b) Exhibit a derivative payoff d for which no exact hedge exists. (This
shows that A is not a complete market.)
(c) Exhibit a derivative d for which an exact hedge does exist.
Solution: (a) Following the hint, observe that A, q is arbitrage-free if
and only if there exists a positive vector k = [k1 , . . . , kn ]T such that
q = Ak. But q = [1, S0 ]T , so Rk is a p.d.f., so if q = Ak, then
n n
X 1 X
S0 = q(2) = Ak(2) = ai ki = ai (Rki ),
i=1
R i=1

which is possible if and only if min{ai } < RS0 < max{ai }.

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

where d = [d1 , d2 , d3 , . . . ]T is the payoff vector for the derivative to


be hedged. Now choose d1 = d2 = 1, determine h0 , h1 , and choose d3
different from h0 R + h1 a3 . The derivative with this payoff cannot be
exactly hedged in this market.
(c) As in part (b), choose d1 = d2 = 1, determine h0 , h1 , but choose

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

Solution: The computations may be done in Octave with the glpk


package. Begin by putting the data into a finite market model Aq:

a=[10,15,20,25,30]; b=[17,15,12,10,7]; a0=20; b0=12;


R=1.02; A=[R R R R R; a; b]; q=[1; a0; b0]; A,q

(This is in the notation of Definition 4.)


(a) To show that A, q is arbitrage-free, by Fundamental Theorem 8.4 it
suffices to find k > 0 such that q = Ak. This 3 × 5 linear system may
be placed into row echelon form, yielding

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

A\q*R % p = 0.024 0.432 0.040 0.448 0.056


A\q % k = 0.023529 0.423529 0.039216 0.439216 0.054902

Conclude that A, q is arbitrage-free.

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

p4 > 0, p5 > 0, p4 + p5 > 0.48, p4 < 0.88, p4 + 2p5 < 0.60,

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

This gives another explicit positive solution k > 0, proving that A, q is


arbitrage-free without using Corollary 8.8.

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:

sellctype="LLLLL"; % Lower constraint type A’*x(j)>=bb(j), j=1:5


sellsense=1; % Optimization direction for q’*x: "1" ==> "min"
buyctype="UUUUU"; % Upper constraint type A’*x(j)=<bb(j), j=1:5
buysense=-1; % Optimization direction for q’*x: "-1" ==> "max"
vartype="CCC"; % ==> x(j) is Continuous, j=1:3
param.msglev=1; % ==> use a low verbosity level
huge=1000; infty=huge*(abs(a0)+abs(b0)); % huge and huger
param.itlim=huge; % ==> huge maximum number of iterations
lb=[-infty; -huge; -huge]; % huge Lower bounds on x
ub=[ infty; huge; huge]; % huge Upper bounds on x

(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:

Ka=20; ba=max(a-Ka,0); % C(T): payoff for "a" Call


[hs,ask]=glpk(q,A’,ba,lb,ub,sellctype,vartype,sellsense,param)
% hs = [102.9412; -2.00; -5.00]; Cost-minimizing hedge portfolio
% ask = 2.9412; minimum cost to superreplicate the Call
[hb,bid]=glpk(q,A’,ba,lb,ub,buyctype,vartype,buysense,param)
% hb = [ -117.6471; 3.00; 5.00]; Cost-maximizing hedge portfolio
% bid = 2.3529; 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.

(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:

Kb=13; bb=max(Kb-b,0); % P(T): payoff for "b" Put


[hs,ask]=glpk(q,A’,bb,lb,ub,sellctype,vartype,sellsense,param)
% hs = [ 61.7647; -1.20; -3.00]; Cost-minimizing hedge portfolio
% ask = 1.7647; minimum cost to superreplicate the Call
288 Answers

[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

AD.m, 69 DGS3MO.csv, 153


BACdivM, 158 DGS3MO.ods, 153
BACdivQ, 157 FwdFut.m, 135
BS.mac, 34 GLPK.m, 200
BS.m, 34 IBT123J.m, 186
BSG.m, 234 MarFut.m, 136
CRR.ods, 244 NJfromM.m, 108
CRRD.m, 159 NRTCRR.m, 107
CRRDaeC.m, 160 NRTinject.m, 109
CRRDaeP.m, 267 NRTmax.m, 254
CRRa.m, 89 NRTmin.m, 123
CRRaro.m, 117 NRTpsums.m, 116
CRRaroAD.m, 118 PathAD.m, 112
CRRbin.m, 91 PathBal.m, 137
CRRboo.m, 103 PathPr.m, 110
CRRcc.m, 92 PrNeg.m, 141
CRRcho.m, 94 RiskNeut.m, 64
CRRcp.m, 249 StreeCRR.m, 74
CRReur.m, 88 ZCB.m, 72
CRReurAD.m, 76 ZT.m, 163
CRRflg.m, 251, 252 ZtT(), 162
CRRflt.m, 121 bisectEG.m, 177
CRRfltAD.m, 253 bisection.m, 176
CRRfws.m, 95 polyfit(), 38
CRRgro.m, 119 polyval(), 38
CRRladC.m, 125 ppval(), 40
CRRladP.m, 256 r3i, 159
CRRlb.m, 123 ri, 158
CRRlbAD.m, 255 rtT(), 162
CRRmD.m, 155 spline(), 39
CRRmDaeC.m, 156 vander(), 38
CRRmargin.m, 140
CRRparams.m, 73 American-style option, 5, 89
CRRpuoC.m, 99 annual percentage rate, 3
CRRruoC.m, 101 annualized dividend, 149
CRRuiC.m, 97 AO-free, 194, 198
CRRuoc.m, 98 APR, 3

289
290 Index

arbitrage, 6, 194 contrapositive, 12, 150


Arrow-Debreu, 66 converse, 150
expansion, 55, 180 convex, 203
securities, 66 convex optimization, 199
Asian-style option, 113 countable additivity, 8
ask price, 196 coupon bonds, 163
asset, 1 coupons, 161
payoff vector, 191 Cox-Ross-Rubinstein model, 73
average rate option, 113 creditworthiness, 161
CRR model, 73
backward pricing, 52, 133, 148 cumulative distribution function, 8,
barrier monitoring, 97 24
basis, 55, 61, 205
BBSW, 170 default, 129, 139, 161
benchmarks, 169 Delta ∆, 32
Berry-Esséen Theorem, 79 in CRR, 82
bid price, 196 dimension, 205
bid-ask spread, 200 discount, 162
big-Oh, 36, 67 discretization error, 35
binomial distribution, 26 distance function, 205
binomial p.d.f., 61 distribution, 8
bisection search, 176 binomial, 26, 62
Black-Scholes lognormal, 28
equation, 31, 33 normal, 23
formula, 30, 82 divided differences, 83
booster option, 102 dividend, 148
Brownian motion, 25 dividend dates, 145
double dual, 209, 210
c.d.f., 8, 24 down state ↓, 49
Call-Put, 2 down-and-in, 96
exchange rate parity, 18 down-and-out, 96
parity, 16, 31, 53 dual cone, 207
cash, 1, 133, 192 dynamic hedging, 14
settlement, 16, 113
cash flow, 4 early exercise, 149
dividend, 151 equiprobable paths, 182
swap, 2 European-style option, 5, 29, 87
centered difference, 35 ex-dividend, 151
Central Limit Theorem, 24, 79 exchange rate, 2
closed set, 206 parity, 17
column space, 203 expansion coefficients, 205
complete market, 54, 61, 197 expectation, 24, 50, 114, 147, 196
compounding, 168 conditional, 14
continuous, 3, 23 expected price, 10, 50
cone, 203 exponential interpolation, 162
Index 291

extremal option, 122, 124 maturity, 3, 161


maximum process, 122
face value, 3, 130, 161, 164 minimum process, 122
Farkas’s Lemma, 211 model independent, 12
finite market, 192 model risk, 14
floating strike, 120
floor function, 104 no-arbitrage price, 7, 202
FLOP, 67 non-recombining tree, 106, 108
Fundamental Theorem, 60, 181 norm of a vector, 205
normal
Gamma Γ, 32 distribution, 23
in CRR, 82 equations, 40, 42, 44
Gauss-Markov Theorem, 43 random variable, 28
graph, 38, 82, 178 numeraire, 192
payoff, 4
Greeks, 32, 82 One Price Theorem, 13
one-step model, 49
hedge, 13, 51, 196 open set, 206
hedge ratios, 51 optimal early exercise, 150
hyperplane separation, 213 options chain, 177
orthant, 193
IA-free, 194 orthogonal complement, 207
implied volatility, 175, 177 orthogonal projection, 206
incomplete market, 199
indicators, 171 p.d.f, 24
Intermediate Value Theorem, 176 partial barrier option, 99
Inverse Function Theorem, 175 Pascal’s triangle, 75
Itô’s stochastic integral, 27 path dependent, 104, 105, 107, 108,
IVT, 176 111, 114, 122, 136
path indexing, 104, 105
Jackwerth’s weight, 182 payoff
Jamshidian’s induction, 69 graph, 4
knock-in, 96 matrix, 54, 180
knock-out, 96 vector, 191
plus-part, 5
ladder option, 124 portfolio, 1, 192
least squares, 40 profitable, 193
linear programming, 199 portfolio replication, 13
lognormal distribution, 28 positive vector, 193
lookback option, 122 premium, 5
present value, 4, 30, 152, 167
margin account, 2, 131 PV, 196, 198
margin call, 139 primitive securities, 66
mark to market, 129, 132 probability density function, 24
martingale, 14 probability space, 7, 25, 191
martingale property, 27 profile, 67
292 Index

profit graph, 4 stochastic process, 10, 23


profitable portfolio, 193 strict dual cone, 207
proportional dividend, 148 strictly profitable portfolio, 193
pure securities, 66 subreplication, 199
subspace, 203
quadratic interpolation, 83 sums of sets, 204
superreplication, 199
random variable, 8 swap, 166
random walk, 25
ray, 203, 204 tenor, 170
rebate barrier option, 101 terminus index, 105
recombining model, 62 Theta Θ, 33
recursive program, 141 in CRR, 84
regression, 40 time-invariant, 65
Rho ρ, 33 truncation error, 35
in CRR, 84
risk neutral probabilities, 51, 196 unbiased, 43
π notation, 51 up state ↑, 49
risk-adjusted probabilities, 30 up-and-in, 96
riskless up-and-out, 96
asset, 1
interest rate, 3, 73 Vandermonde matrix, 38
return, 2, 49, 153 vector ordering, 193
row space, 204 Vega κ, 33
in CRR, 84
self-dual, 209 VIX, 158
separating hyperplane, 212, 213 volatility, 73, 175
span, 204
spline interpolation, 163 Wiener process, 25
spot price, 1
standard normal yield, 162
density (p.d.f.), 29 to maturity (YTM), 164
distribution (c.d.f.), 24, 79 yield curve, 155
state-price securities, 66
zero-coupon bond, 57, 130, 152, 162,
stationary, 65
166, 167, 185

You might also like