C++ for Quant Developers - (code CPP-QUANT)
This hands-on course teaches you about C++ and how to apply it to real-life financial engineering examples and applications. We build the knowledge in an incremental fashion and we dovetail the theory with appropriately chosen examples. By the end of this course you should be in a position to apply C++ in your own financial engineering applications.
This course is unique in the sense that the theory is interleaved with real examples for financial engineering and instrument pricing. The advantage for the student is that the examples, test cases and applications in C++ are of direct relevance to the financial world. Thus, this is not a generic C++ course but is timely and relevant to your needs. In this course you will develop C++ classes almost from the word go:
- Option classes, portfolios
- Temporal data structures and curve classes (e.g. yield curves)
- Classes for hedging: spreads and straddles
- Vectors, matrices and tensors
- Lattice models in C++
- Modelling option sensitivities
In this course you get the course slides, CD with full source code and Daniel Duffy's book on C++ for Financial Instruments (John Wiley). This means that you can practice at your own location after the course. You can also e-mail the trainer if you have questions. Your trainer is Dr. Daniel J. Duffy.
Note: To participate in the course, you need to bring your own laptop computer with a C++ compiler (e.g. Microsoft's Visual Studio)
Course Contents
Part I: Basics of C++ and Object-Oriented Programming
Introduction to the Object-Oriented Paradigm
- Classes and objects
- Encapsulation and Information Hiding
- Inheritance and reusability
- Aggregation and association structures
- Generic classes
Examples in Finance
- Option and Asset classes
- Spreads and strangles
- Modelling option prices and sensitivities
- Portfolio in object-oriented languages
- Temporal data structures and yield curves
C++ Class Basics
- Member data and member functions
- Constructors and destructors
- Accessing members
- How to write a C++ class: the steps
- Creating my first Option class
Moving up: improving your Class
- Call-by-reference and call-by-value
- Function overloading
- Copy constructor
- The 'this' keyword
- Creating classes for Spread, Straddles and Strangles
Operator Overloading
- Applying operator overloading
- Binary and unary operators
- Friend and non-friend operators
- Where and when to use in Financial Engineering
- Example: operator overloading for Vectors and Matrices
Memory Management
- The Stack and the Heap
- The 'new' and 'delete' operators
- Working with pointers
- Pointers and arrays of Option
Part II: Advanced C++ for Financial Engineering
Introduction to Inheritance in C++
- Implementing ISA and AKO relationships
- What the different scenarios for inheritance?
- Inheritance and memory management
- Exotic and dangerous applications of inheritance
Advanced Inheritance
- Abstract and concrete classes
- Pointers to base class
- Static and dynamic casting
- Polymorphic (virtual and pure virtual functions)
Applying Inheritance to Financial Engineering
- Creating a portfolio class hierarchy
- Composite and nested classes
- Polymorphism: calculating risk and price of a portfolio
- Some tips and Guidelines
An Introduction to Templates in C++
- What is a template?
- Template classes and template functions
- Designing and implementing templates
- Example: the Property pattern
- Modelling an option's parameters
Standard Template Library (STL)
- Overview of functionality
- Data containers
- Lists, vectors and maps
- Navigating in containers with iterators
Part III: Applications and Test Cases
Programming Lattice Models
- Creating lattice structures in C++
- Integrating functionality for European and American styles
- Using iterators for backward and forward induction
- Modelling option sensitivities
Time-dependent Data Structures
- Date and Time classes
- A hierarchy of curve classes
- Specials: discount, dividend and yield curves
- Applying curves in fixed income examples
PrerequisitesWe assume that the student has a reasonable knowledge of a high-level programming language such as C, Pascal, Java or Fortran. Of course, the examples are taken from the financial engineering world.
Who should attend?
Quantitative and IT developers, programmers, analysts and designers and those who are involved with software development using C++ for financial engineering applications. This course is suitable for applications involving option pricing, risk management and fixed income, for example.
Duration, price, date, locationsCourse duration: 3 days
Dates and location: (click on dates to print registration form)
| Starting date |
Location |
Price |
Language |
|
Dec 01 2008
|
London (United Kingdom) |
€ 3399 |
English |
|
Apr 01 2009
|
London (United Kingdom) |
€ 3399 |
English |
|