This book introduces the reader to the C++ programming language and how to use it to write applications in quantitative finance (QF) and related areas. No previous knowledge of C or C++ is required — experience with VBA, Matlab or other programming language is sufficient. The book adopts an incremental approach; starting from basic principles then moving on to advanced complex techniques and then to real-life applications in financial engineering. There are five major parts in the book:
- C++ fundamentals and object-oriented thinking in QF
- Advanced object-oriented features such as inheritance and polymorphism
- Template programming and the Standard Template Library (STL)
- An introduction to GOF design patterns and their applications in QF Applications
The kinds of applications include binomial and trinomial methods, Monte Carlo simulation, advanced trees, partial differential equations and finite difference methods. This book includes a companion website with all source code and many useful C++ classes that you can use in your own applications. Examples, test cases and applications are directly relevant to QF. This book is the perfect companion to Daniel J. Duffy’s book Financial Instrument Pricing using C++ (Wiley 2004, 0470855096 / 9780470021620)
The object-oriented programming language C++ is the de facto standard for developing real-life applications for Quantitative Finance and Financial Engineering. This language was designed by Dr. Bjarne Stroustup in the early 1990’s and it has become one of the most popular and robust languages for many important areas such as medical systems, computer graphics, telecommunications and in application areas where performance, accuracy and interoperability issues play a key role. The general expectation is that its importance will grow in the coming years.
C++ has also become the de facto standard for quant development and analysis. Knowledge of C++ is mandatory for many openings and job positions in Quantitative Finance. This book is the first book that discusses many of the issues that you need to know in order to be able to design and implement real-world applications. We focus on a number of critical topics:
- Learning the essential syntax of C++ (‘getting the fundamentals right’)
- Designing and implementing generic data structures using STL
- Numerous applications (lattices, finite difference, Monte Carlo, etc)
- Libraries, design patterns (GOF, POSA) and reusable software frameworks
- Introduction to COM and C++ to Excel interoperability
Each chapter deals with one major topic. Furthermore, each chapter builds only on the results of the chapters preceding it, so that we keep the amount of forward referencing to a minimum. We discuss all the syntax that is discussed in the IT books and we apply it to QF applications. This book is self-contained and we advise its use in combination with the well-known standard reference work by Dr. Stroustrup.
Last, but not least, each chapter concludes with exercises and projects to test what you learned in that chapter. The exercises are based on the tactic: ‘get it working, then get it right, then get it optimised’. Furthermore, these exercises will also hopefully prepare you for your job interviews!
Included with the book is a companion website with all source code, including working code for lattice, finite difference and Monte Carlo methods for one-factor and two-factor pricing models as well as an easy-to-use C++ visualization package to help you examine the output from these numerical methods.