/cpptrading

Bookwork repo: Options and Derivatives Programming in C++

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

  1. Options Concepts

    a. Basic definitions b. Introduction to strategies c. Greeks d. Sample code

  2. Financial Derivatives

    a. Credit default swaps b. Forex derivatives c. Interest rate derivatives d. Exotic derivatives

  3. Basic Algorithms

    a. Date and time handling b. Vector processing c. Graphs and networks d. Fast data processing

  4. Object-oriented Techniques

    a. Problem partitioning b. OO solution design c. OO in C++ d. Reusing components

  5. Design patterns

    a. Why they are important b. Factory c. Visitor d. Singleton e. Less common patterns

  6. Template-based techniques

    a. Motivating templates b. Compile-time algos c. Containers and smart pointers d. Template libraries

  7. STL for derivatives programming

    a. STL-based algos b. Functional techniques c. STL containers d. Smart pointers

  8. Functional programming

    a. Lambdas b. Functional templates c. Functions as first-class objects d. Managing state in FP e. Functional techniques for options processing

  9. Linear algebra

    a. Matrices b. Matrix decomposition c. Computing determinants d. Solving linear systems

  10. Numerical analysis

    a. Basic Algorithms b. Root-finding c. Integration d. Reducing error in numerical algos

  11. DE-based models

    a. Basic techniques b. Ordinary DEs c. Partial DEs d. Numerical algos for DEs

  12. Options pricing

    a. Binomial trees b. Trinomial trees c. Black-Scholes model d. Implementation strategies

  13. Monte Carlo Methods

    a. Probability distributions b. RNG c. Stochastic models d. Random walks e. Improving performance

  14. C++ libraries for finance

    a. Standard library tools b. QuantLib c. Boost math d. Boost lambda

  15. 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.