This complete guide to C++ and computational finance is a follow–up and major extension to Daniel J. Duffy's 2004 edition of Financial Instrument Pricing Using C++. Both C++ and computational finance have evolved and changed dramatically in the last ten years and this book documents these improvements. Duffy focuses on these developments and the advantages for the quant developer by:
- Delving into a detailed account of the new C++11 standard and its applicability to computational finance.
- Using de–facto standard libraries, such as Boost and Eigen to improve developer productivity.
- Developing multiparadigm software using the object–oriented, generic, and functional programming styles.
- Designing flexible numerical algorithms: modern numerical methods and multiparadigm design patterns.
- Providing a detailed explanation of the Finite Difference Methods through six chapters, including new developments such as ADE, Method of Lines (MOL), and Uncertain Volatility Models.
- Developing applications, from financial model to algorithmic design and code, through a coherent approach.
- Generating interoperability with Excel add–ins, C#, and C++/CLI.
- Using random number generation in C++11 and Monte Carlo simulation.
Full source code is available by registering at <a href="[external URL]
Duffy adopted a spiral model approach while writing each chapter of Financial Instrument Pricing Using C++ 2e: analyse a little, design a little, and code a little. Each cycle ends with a working prototype in C++ and shows how a given algorithm or numerical method works. Additionally, each chapter contains non–trivial exercises and projects that discuss improvements and extensions to the material.
This book is for designers and application developers in computational finance, and assumes the reader has some fundamental experience of C++ and derivatives pricing.
Chapter 1: A Tour of C++ and Environs
Chapter 2: New and Improved C++ Fundamentals
Chapter 3: Modelling Functions in C++
Chapter 4: Advanced C++ Template Programming
Chapter 5:Tuples in C++ and their Applications
Chapter 6: Type Traits, Advanced Lambdas and Multiparadigm Design in C++
Chapter 7: Multiparadigm Design in C++
Chapter 8: C++ Numerics, IEEE754 and Boost C++ Multiprecision
Chapter 9: An Introduction to Unified Software Design (USD)
Chapter 10: New Data Types, Containers and Algorithms in C++ and Boost C++ Libraries
Chapter 11:Lattice Models Fundamental Data Structures and Algorithms
Chapter 12: Lattice Models Applications to Computational Finance
Chapter 13: Numerical Linear Algebra: Tridiagonal Systems and Applications
Chapter 14: Data Visualisation in Excel
Chapter 15: Univariate Statistical Distributions
chapter 16: Bivariate Statistical Distributions and Two–Asset Option Pricing
chapter 17: STL Algorithms in Detail
Chapter 18: STL Algorithms Part II
Chapter 19: An Introduction to Optimisation and the Solution of Nonlinear Equations
Chapter 20: The Finite Difference Method for PDEs Mathematical Background
Chapter 21: Software Framework for One–Factor Option Models
Chapter 22: Extending the Software Framework
Chapter 23: A PDE Software Framework in C++11 for a Class of Path–Dependent Options
Chapter 24: Ordinary Differential Equations and their Numerical Approximation
Chapter 25: Advanced Ordinary Differential Equations and Method of Lines (MOL)
Chapter 26: Random Number Generation and Distributions
Chapter 27: Microsoft .Net, C# and C++11 Interoperability
Chapter 28: C++ Concurrency, Part I Threads
Chapter 29: C++ Concurrency, Part II Tasks
Chapter 30: Parallel Patterns Language (PPL)
Chapter 31: Monte Carlo Simulation, Part I
Chapter 32: Monte Carlo Simulation, Part II