12.1 Introduction and Objectives
In this chapter we apply the data structures and mechanism functions from Chapter 11 to write code to price European and American options for a range of payoff functions. As in Chapter 11, the focus is on producing accurate results as efficiently as possible. Furthermore, we use features in C++ to allow the software to be adapted to new situations.
A summary of the topics that we discuss in this chapter is:
- Creating and testing the properties of Pascal's triangle using the lattice ADT.
- Computing option prices using Bernoulli paths.
- Option pricing with dividends.
- Computing option hedge sensitivities (greeks).
- Numerical analysis: accuracy and efficiency of the binomial method.
- Two-factor binomial pricing.
- The trinomial method and its extension to explicit finite difference methods.
We use the CRR, Tian three-moment and Chang–Palmer models. For a detailed discussion of the binomial method, see Müller (2009).
This chapter also introduces the finite difference method that we elaborate on in later chapters.
Some of the reasons for discussing the lattice method in Chapters 11 and 12 are:
- Most quant developers are familiar with the method and have probably implemented it in one or more programming languages such as VBA and Matlab, for example. They can relate to the C++ code and associated design patterns presented here.
- Lattice mechanisms can be viewed as explicit finite difference methods ...