Courses Quant Development in Modern C++
Course 9Coming later
Quant Development in Modern C++
Modern C++ for quant developers: rebuild the valuation library in C++, make it fast and tested, call it from Python, and finish with QuantLib.
- 4 parts
- 17 modules
- Before you start: Financial Computing with Python; Derivatives Modelling
Coming soon
Explore the syllabus below, and start with the courses it builds on.
How each module works
- 1The conceptOne technique at a time
- 2Graded exercisesShort exercises that check your code
- 3Project milestoneA library that grows across the course
1Coming soon
Part 1
Modern C++ basics
1.1ToolchainComing soon
- You will learn:
- Compiler, CMake, Editor, Build, Run, Debug.
- You will build:
- Print a payoff table
1.2Types and functionsComing soon
- You will learn:
- Built-in types, Expressions, Functions, Overloading.
- You will build:
- Compounding and annuity functions
1.3Control flowComing soon
- You will learn:
- Loops, Conditions, Early returns.
- You will build:
- Bisection for a bond yield
1.4Program structureComing soon
- You will learn:
- References, const, Scope, Headers, Namespaces.
- You will build:
- Split the solver into a library
1.5Classes and RAIIComing soon
- You will learn:
- Constructors, Invariants, Resource ownership.
- You will build:
- Option and PayOff classes
1.6The standard libraryComing soon
- You will learn:
- Containers, Algorithms, Iterators, Lambdas.
- You will build:
- A discounted cash-flow schedule
1.7Random numbers and Monte CarloComing soon
- You will learn:
- The <random> header, Seeding, A first pricer.
- You will build:
- Project 1: a vanilla Monte Carlo pricer
2Coming soon
Part 2
Design for pricing code
2.1Inheritance and polymorphismComing soon
- You will learn:
- Virtual functions, Virtual copy, Smart pointers.
- You will build:
- A payoff hierarchy (bridge pattern)
2.2Templates and conceptsComing soon
- You will learn:
- Function and class templates, C++20 concepts.
- You will build:
- Generic root solvers
2.3Design patterns for pricingComing soon
- You will learn:
- Strategy, Factory, Decorator, Observer.
- You will build:
- Project 2: pluggable payoffs and statistics gatherers
3Coming soon
Part 3
Numerics, performance and testing
3.1Trees and finite differencesComing soon
- You will learn:
- Tree engine, Crank–Nicolson.
- You will build:
- American options two ways
3.2Modern C++ in depthComing soon
- You will learn:
- Move semantics, constexpr, Ranges, std::optional, std::variant, std::expected.
- You will build:
- Refactor to modern idioms
3.3PerformanceComing soon
- You will learn:
- Cache, Profiling, Benchmarking, Threads, Parallel algorithms.
- You will build:
- Project 3: a parallel Monte Carlo engine
3.4Testing and toolingComing soon
- You will learn:
- Unit tests, Sanitizers, Static analysis, CI.
- You will build:
- Tests and CI for the library
4Coming soon
Part 4
Python bindings and QuantLib
4.1Python bindingsComing soon
- You will learn:
- pybind11, Calling C++ from the Python courses.
- You will build:
- Call the pricer from a Derivatives lab
4.2A tour of QuantLibComing soon
- You will learn:
- Instruments, Engines, Term structures, Observers.
- You will build:
- Price a swap and an option
4.3Capstone: a small pricing libraryComing soon
- You will learn:
- Curves, Vanilla and barrier options by Monte Carlo, tree and PDE, Tested, Benchmarked, Bound to Python.
- You will build:
- Graded with a checklist