C++ Design Patterns and Derivatives Pricing (Mathematics, Finance and Risk)
|
| Price: |
9 new or used available from £30.00
Average customer review:Product Description
Design patterns are the cutting-edge paradigm for programming in object-oriented languages. Here they are discussed, for the first time in a book, in the context of implementing financial models in C++. Assuming only a basic knowledge of C++ and mathematical finance, the reader is taught how to produce well-designed, structured, re-usable code via concrete examples. Each example is treated in depth, with the whys and wherefores of the chosen method of solution critically examined. Part of the book is devoted to designing re-usable components that are then put together to build a Monte Carlo pricer for path-dependent exotic options. Advanced topics treated include the factory pattern, the singleton pattern and the decorator pattern. Complete ANSI/ISO-compatible C++ source code is included on a CD for the reader to study and re-use and so develop the skills needed to implement financial models with object-oriented programs and become a working financial engineer. Please note the CD supplied with this book is platform-dependent and PC users will not be able to use the files without manual intervention in order to remove extraneous characters. Cambridge University Press apologises for this error. Machine readable files for all users can be obtained from www.markjoshi.com/design.
Product Details
- Amazon Sales Rank: #441922 in Books
- Published on: 2004-08-05
- Original language: English
- Number of items: 1
- Binding: Hardcover
- 214 pages
Editorial Reviews
Review
'This is a short book, but an elegant one. It would serve as an excellent course text for a course on the practical aspects of mathematical finance.' International Statistical Institute
Customer Reviews
A fast-paced introduction to sophisticated C++
C++ is a big language. It has a lot of features and even more in the way of clever ideas for combining these features to create effective code. Most books on the subject are dauntingly huge, at least to the novice. Perhaps the greatest virtue of this book is that it covers a lot of ground while being slim enough (under 200 widely-spaced pages) to be easily read from cover to cover.
The book is clearly aimed at those in quantitative finance and the examples are designed to be of genuinely useful code that a quant might write. This is a refreshing change from more general books where the examples are either silly ("a Sauternes is inherited from a Bordeaux and has a pour() member function") or do the kind of low-level manipulation (such as container classes) that few programmers write. The examples are given in full, even if this involves repeating a good deal of code, but I suppose this does give the reader the satisfaction of quickly skimming two or three pages from time to time.
Aside from a basic acquaintance with mathematical finance, the reader is required to have a rudimentary knowledge of C++. However the more advanced language features, such as virtual functions and templates, are explained concisely as they are introduced. Writing good object-oriented code depends very much on knowing not so much the syntatical rules but why the language features are there and when to use them. This is the emphasis of this book; it gives very clear well-reasoned guidance for effective use of the language. One very important aspect of this is the use of so-called "design patterns". I'm not sure this term is ever defined but it becomes clear through many examples that it refers to clever ways to combine language features to achieve particular generic goals.
There are places where the author introduces several ideas at once and almost trips over himself in an effort to explain them all. But once the reader becomes accustomed to this and is therefore prepared to wait a little for an explanation of something, this is an effective way of getting through the material rapidly. Consequently this is a very readable book, in which the alert reader can learn a lot in a short time. All in all, this book is ideal for someone starting to write C++ for finance or even for a more experienced quant who feels his code is insufficiently sophisticated.
The boss and his/her requests
Having implemented mathematical finance solutions in a variety of programming languages, I found in Joshi's book the ideal guide to move to the C++ way of doing things.
The book certainly requires some knowledge of C++ (at least an introductory book) but leads the reader through a learning process focused on the reasons why C++ is the most used language in financial engineering.
It starts for the simplest non-OO implementation, highlighting (pros and) cons, and then moves on to the appropriate C++ solution. In the way, fundamental design patterns are introduced and used (strategy, decorator, bridge...). By the end of the book the reader will have seen how to build a Monte Carlo engine for exotic options and how to simplify its interface through the more complicated factory pattern.
Numerically, the book is mainly focused on Monte Carlo methods but it also spends a chapter on trees (binomial) and one on templatised root finding (for the implied vol). PDEs are not dealt with.
The never-ending requests of the "evil boss" are a constant driver in the quest for reusability and generality and the book clearly shows how to achieve these. Knowing how evil bosses can be I would say that this book is certainly a BUY!!!
Good, all the code works.
Unlike many textbooks, all the code in Joshi's book works and compiles. However, do save yourself time and get the latest version of the code from his website, forget the bundled CD.
Joshi not only explains quickly how to implement the basic pricing techniques (trees, monte carlo), but also offers some good guidance on modern OO C++ techniques (patterns) along the way.
My only criticism is that the book is too short. I would have gladly read another 50% on top.




