Introduction to C++ for Financial Engineers (The Wiley Finance Series)
Daniel J. Duffy
Introduction to C++ for Financial Engineers, Second Edition uses the new and improved language features and multi-paradigm programming styles to create robust and flexible code for a number of important areas in finance. Each chapter has been written to be as self-contained as possible, while taking account of the most recent developments in software design, programming styles and advances in desktop hardware.
This resource is written for Quant developers versed in creating applications using C++98. It shows how to define, design and implement flexible applications using modern software design methods in C++. Developers will learn how to:
- Adopt a standardised design methodology (based on domain architectures) for applications
- Write clear and maintainable code in the ‘gold standard' C++ language
- Move from C++98 to next-generation C++11, C++ 14 and later
- Use C++ and Boost libraries instead of home-grown code
- Create multi-threaded and parallel applications
- Utilise applications to lattices, PDE and Monte Carlo models
The chapters in this book begin with simple examples, transitioning to more extensive models and finance-related applications. Each chapter concludes with exercises and projects, allowing the reader to monitor progress by reviewing what has been discussed and writing code based on those concepts.
- New C++ syntax, language features and libraries
- Building flexible lattice models using the domain architecture approach
- Detailed discussion of PDE/Finite Difference Method for European and American option pricing
- C++ Concurrency, multithreading and parallel libraries for multi-core CPUs and GPUs
- Numerical solution of stochastic differential equations and Monte Carlo option pricing
- Optimal use of the combined object-oriented, template and functional programming styles
Introduction to C++ for Financial Engineers, Second Edition assembles many of the design and language features to help you create flexible and maintainable applications.