Options and Derivatives Programming in C++
Author: Carlos Oliveira ISBN: 978-1-4842-1813-6
Another book-based repo. This time a little bit of a C++ refresher as well as a glimpse into what the algorithmic trading world is like.
Code examples have been tested on Mac OS X using XCode 7, but any compiler that implements the C++11 standard should do fine according to the author.
MinGW is an option on Windows, or there is gcc which I'm using.
Oliveira makes the code available on his website.
Contents
-
Options Concepts
a. Basic definitions b. Introduction to strategies c. Greeks d. Sample code
-
Financial Derivatives
a. Credit default swaps b. Forex derivatives c. Interest rate derivatives d. Exotic derivatives
-
Basic Algorithms
a. Date and time handling b. Vector processing c. Graphs and networks d. Fast data processing
-
Object-oriented Techniques
a. Problem partitioning b. OO solution design c. OO in C++ d. Reusing components
-
Design patterns
a. Why they are important b. Factory c. Visitor d. Singleton e. Less common patterns
-
Template-based techniques
a. Motivating templates b. Compile-time algos c. Containers and smart pointers d. Template libraries
-
STL for derivatives programming
a. STL-based algos b. Functional techniques c. STL containers d. Smart pointers
-
Functional programming
a. Lambdas b. Functional templates c. Functions as first-class objects d. Managing state in FP e. Functional techniques for options processing
-
Linear algebra
a. Matrices b. Matrix decomposition c. Computing determinants d. Solving linear systems
-
Numerical analysis
a. Basic Algorithms b. Root-finding c. Integration d. Reducing error in numerical algos
-
DE-based models
a. Basic techniques b. Ordinary DEs c. Partial DEs d. Numerical algos for DEs
-
Options pricing
a. Binomial trees b. Trinomial trees c. Black-Scholes model d. Implementation strategies
-
Monte Carlo Methods
a. Probability distributions b. RNG c. Stochastic models d. Random walks e. Improving performance
-
C++ libraries for finance
a. Standard library tools b. QuantLib c. Boost math d. Boost lambda
-
Credit derivatives
a. General concepts b. Modelling c. Pricing derivatives d. Improving efficiency
Ideas
I suppose we could try to see if Python can do these, or if other languages are worth exploring as well. I would assume Python will be much slower, given C/C++ is often cited as a way to improve performance.