Top critical review
29 people found this helpful
Don't waste your time - much clearer elsewhere
on 17 May 2005
This book seems to alternate between about 10 pages of dense financial maths, followed by about 5-10 pages of code. But they aren't clearly related - it's not easy to see where the code comes from. In many cases, I found it easier to understand the code by referring to a much more readable reference on derivatives, the classic 'Hull' (Options, Futures and other Derivatives).
Also the rationale for implementing the code in a particular way is not discussed. The attitude seems to be "here's one way, take it or leave it". I found myself with many questions, for example, in the first few pages, they define
class Option, which contains 'double price_, double vol_, double dividend_' etc.
there is then a derived class
class VanillaOption: public Option, which contains 'double underlying_, double volatility_, double dividendYield_', etc.
there is then a class derived from this:
class BlackScholesOption : public VanillaOption, which contains 'double underlying_, double volatility_, double dividendYield_', etc.
At no point is it explained why these variables are duplicated at several levels, nor why they have subtly different names in different places. Is this a consious design decision, or just sloppy coding?
Having said that, this book does show a huge range of common pricing techniques implemented as C++ code. However, for a good introduction of pricing derivatives in C++, I'd instead recommend Mark Joshi's book (which is unfortunately much smaller, with much less coverage).
After writing the above review, I found the book so heavy going I've never read it since. I would like to downgrade my review to 2 or 1 star, but Amazon won't let me.