This book is a a discussion of the calculation of specific formulas in finance. The field of finance has seen a rapid development in recent years, with increasing mathematical sophistication. While the formalization of the field can be traced back to the work of Markowitz (1952) on investors mean-variance decisions and Modigliani and Miller (1958) on the capital structure problem, it was the solution for the price of a call option by Black and Scholes (1973); Merton (1973) which really was the starting point for the mathematicalization of finance. The fields of derivatives and fixed income have since then been the main fields where complicated formulas are used. This book is intended to be of use for people who want to both understand and use these formulas, which explains why most of the algorithms presented later are derivatives prices.
This project started when I was teaching a course in derivatives at the University of British Columbia, in the course of which I sat down and wrote code for calculating the formulas I was teaching. I have always found that implementation helps understanding these things. For teaching such complicated material it is often useful to actually look at the implementation of how the calculation is done in practice. The purpose of the book is therefore primarily pedagogical, although I believe all the routines presented are correct and reasonably efficient, and I know they are also used by people to price real options.
To implement the algorithms in a computer language I choose C++. My students keep asking why anybody would want to use such a backwoods computer language, they think a spreadsheet can solve all the worlds problems. I have some experience with alternative systems for computing, and no matter what, in the end you end up being frustrated with higher end "languages", such as Matlab og R (Not to mention the straitjacket which is is a spreadsheet.) and going back to implementation in a standard language. In my experience with empirical finance I have come to realize that nothing beats knowledge a real computer language. This used to be FORTRAN, then C, and now it is C++. All example algorithms are therefore coded in C++. I do acknowledge that matrix tools like Matlab are very good for rapid prototyping and compact calculations, and will in addition to C++ in places also illustrate the use of Matlab, as well as other (public domain) tools.
This open book is licensed under a Open Publication License (OPL). You can download Financial Numerical Recipes in C++ ebook for free in PDF format (1.4 MB).
Table of Contents
On C++ and programming
The value of time
Bond Pricing with a flat term structure
The term structure of interest rates and an object lesson
The Mean Variance Frontier
Binomial option pricing
Basic Option Pricing, the Black Scholes formula
Extending the Black Scholes formula
Option pricing with binomial approximations
Option pricing by simulation
Pricing American Options - Approximations
Average, lookback and other exotic options
Generic binomial pricing
Alternatives to the Black Scholes type option formula
Pricing of bond options, basic models
Term Structure Models
Binomial Term Structure models
Interest rate trees
Building term structure trees using the Ho and Lee (1986) approach
Term Structure Derivatives
Date (and time) revisited - the BOOST libraries