Distance Learning - Computational and Quantitative Finance in C++ (modules 4 - 10) - (code DL4-10)
This course contains the modules 4-10 of the full Distance Learning course.
This course is intended for those who already have knowledge and experience of the topics discussed in the modules 1-3 of the full course.
This advanced distance learning course is for those C++ developers who wish to learn modern and state-of-the art C++ language features, de-facto standard C++ libraries and apply them to creating application. We use object-oriented, modular and generic programming techniques, design patterns and the interoperability with Excel to create efficient applications for a range of derivatives such as equity and interest rate products.
This practical, hands-on course teaches you C++ - from the fundamental to advanced level and how to use it to create flexible and robust applications in computational and quantitative finance. Some key features of the course are:
Click here for a video overview of this course.
- You can start any time. You can take the course in your own time in a period of up to 10 months.
- You are eligible to take exams and present a small project dissertation if you wish; a graded certificate will be given to the student.
- End of month milestones; review of all exercises, new material dispatched to the student for the coming month.
- Students have full access to the Datasim forums, source code and other relevant documentation. In this sense we shall have a community of people working on the same problems and can help - and be helped - with all those little annoying problems that get in the way of the real work.
Updated: March 2011
Module 4: Design Patterns
In this module we introduce a number of design techniques that we deploy in C++ so that our applications can be customized when requirements change (as they inevitably do). In particular, we give an overview of the famous Design Patterns (23 in total) and we apply the most important ones to examples and applications in finance.
- What is software design?
- Quick overview of the Unified Modeling Language (UML)
- The Gamma ("Gang of Four" classification
- Creational patterns: Factory, Singleton, Builder, Prototype
- Structural patterns: Bridge, Composite, Facade, Proxy
- Behavioural patterns I: Template method, Strategy, Observer
- Behavioural patterns II: Visitor, Command, Mediator
- Applying design patterns in finance: the steps
- Project: designing and implementing FDM for Black-Scholes PDE
After having completed this module you will be able to discover and apply the most appropriate design patterns for a given problem in finance.
Module 5: Libraries and Interfacing Issues
Whereas the code in Module 4 was concerned with application logic and algorithms this module discusses a number of features and tools that allow us to develop fully-fledged applications, in particular the input, processing and output modules in an application.
- C++ Excel integration: xll, Automation and COM Addins
- Creating xll applications
- Automation Addins and worksheet functions
- COM Addins
- Registration, activation, libraries
- An introduction to ATL (Active Template Library)
- Overview of the Boost library
- Boost random number generators
- Boost multi-array and property map libraries
- Introduction to XML
- DLLs and Libs
- Project: developing Excel Addins for Monte Carlo and Fixed Income Applications
After having completed this module you will be able to integrate your code with a
number of standard software environments, such as Excel, Boost and XML.
Module 6: Integration and Applications: Overview
This is the last module of the course and it is here that we create a fully-fledged application using the experience that we have gained in the first five modules. You can choose the kind of application (equity, fixed income, commodity) and the numerical technique (FDM, Monte Carlo, ...) you wish to use.
- Analysis and system decomposition
- Defining inter-system interfaces
- Applying the GOF patterns
- An introduction to multi-threading and parallel programming
- Implementing finance applications in C++ with OpenMP
- Testing and profiling your application
- Integration with Excel
- Equity, interest rate and other applications in finance
- Monte Carlo, FDM, quadrature and lattice solutions
Module 7: The Monte Carlo Method in C++
Stochastic Differential Equations (SDE)
Finite Difference Method for SDE
Monte Carlo Engine in C++
Module 8: The Finite Difference Method in C++
Finite Difference Method (FDM)
Plain and barrier options
Early exercise features
The Crank Nicolson method
Comparing FDM with trinomial method
Alternating Direction Explicit (ADE) Method
Background and motivation
ADE for one-factor models
ADE for nonlinear pricing models
Advantages of ADE
ADI and Splitting Methods
Mixed derivatives and Janenko method
ADE for two-factor problems
Module 9: Interest Rate Models in C++
Overview of Bond and Fixed Income Pricing
Bond Pricing: Design, Implementation and Excel Interfacing
Overview of bonds and kinds of bonds
Bond price and bond yield
Accrued interest and dirty price
Day count conventions
Short-term Interest Rate Futures and Options
Introduction (short term interest rate futures and option description )
Organizing and manage futures data and code
Conventions for Liffe Futures
Working Example: portfolio of options
Interest Rate Models
Module 10: Excel Interoperability
Creating Automation Add-ins in C++
Guid, ProgId, ClassInterface
Referencing the Excel Application
Registering COM components
Loading and using Automation Add-ins
ATL projects with IDTExtensibility2 support
Managed and unmanaged add-ins
VS add-ins and shared add-ins
Shared Add-in Wizard
After having completed this module you will have used C++ in combination with mathematical methods for finance to produce a working system.
Project: term (final) project
The examiners will review your project and a small exam will be given.
Ideally, we assume that the student is working in finance and is acquainted with derivatives modeling. Good knowledge of C++ is necessary.
The course material is:
The books provided with this course are:
- Workbooks, exercises and source code
- Access to our site: forums, videos and e-mail
- Examination at the end of the course
- Student project (at the discretion of the student) and evaluation
- Finite Difference Methods in Financial Engineering: A Partial Differential Equation Approach, by Daniel J. Duffy
- Financial Instrument Pricing using C++, by Daniel J. Duffy
- Introduction to C++ for financial engineers, by Daniel J. Duffy
- Monte Carlo frameworks, Building Customisable High-performance C++ Applications by Daniel Duffy & Joerg Kienitz
Duration, price, date, locations and registration
||Distance learning.You study in your own pace. Under normal circumstances, this should take you between 1 and 1.5 years to complete.
|Dates and location:
||(click on dates to print registration form)
||€ 2945.-- ex. VAT
€ 3563.45 inc. 21% VAT
Click here to register.
This distance learning course can start at any moment. We offer company-wide discount schemes for groups.