
P1: JYS
c08 JWBK378-Fletcher May 12, 2009 18:58 Printer: Yet to come
8
The Hull–White Model
The purpose of this chapter is to develop a fully functional Hull–White model in Python. We
will separate the characteristic features of the Hull–White model into functionally orthogonal
components, thereby fostering code re-use and facilitating rapid model development. The
Hull–White model has been chosen because it is both simple and rich enough to illustrate the
power of component-based programming in Python.
In finance there are broadly speaking two approaches to pricing financial instruments:
(a) deriving analytic or semi-analytic formulae; or (b) applying numerical techniques. Which
approach is chosen depends upon the complexity of the financial instrument. For example,
for many so-called ‘vanilla’ financial instruments there exist commonly accepted pricing
formulae. However, exotic or hybrid financial instruments generally require the application
of numerical techniques in their valuation. Both ‘vanilla’ and ‘exotic’ financial instruments
can be split into two categories: (a) non-path dependent, where the payoff only depends of
the asset price(s) at the present moment in time; and (b) path dependent, where the pay-
off depends on some property of the asset price(s) history as well as the asset price(s)
at the present moment in time. Path dependent financial instruments can be further cate-
gorised into