CHAPTER 2
Modeling
Irrationally held truths may be more harmful than reasoned errors.
—Thomas Huxley
Guildenstern: We only know what we’re told and that’s little enough. And for all we know it isn’t even true.
Player: For all anyone knows, nothing is. Everything has to be taken on trust; truth is only that which is taken to be true. It’s the currency of living. There may be nothing behind it, but it doesn’t make any difference so long as it is honoured. One acts on assumptions. What do you assume?
—Tom Stoppard, Rosencrantz & Guildenstern Are Dead
The purpose of this book is to introduce modeling cash flow–driven financial structures—specifically, modeling mortgage securitizations with spreadsheets (Excel) and object-oriented programming (Visual Basic). Why these specific choices? The abstract modeling concepts introduced are best learned in the context of rich and complex applications. Mortgages are notoriously complex deal structures because of the variability and detail of the assets and liabilities. Spreadsheets are chosen because for many businesses they are the quickest and most intuitive way to build financial models (Benninga 2000; Jackson and Staunton 2001). Object-oriented programming is chosen, as opposed to other programming paradigms, because it engenders modular organization required for complex applications.
Many textbooks cover financial modeling in Excel or C++. The main trouble with Excel is that models rapidly hit a complexity barrier. At some point, most serious ...