Course Catalog Description
This course covers the design patterns and implementation of financial models using object oriented programming in C++. It discusses advanced applications on quantitative finance with special emphasis on derivatives pricing and their calculations using commonly known formulas such as the Black-Scholes and lattice models. The course uses available simulation techniques such as Monte Carlo simulation and its implementations in financial engineering problems.
Tools Used In This Course
- Visualization Ecosystem
- Additional Resources
- A more concise, but somewhat different perspective
After successful completion of this course, students will be able to…
- Understand common object-oriented (OO) design patterns used in relation to financial models
- Implement common object-oriented design patterns used in relation to financial models
- Understand and implement derivatives pricing model in OO paradigm utilizing design patterns with focus on clarity, simplicity, elegance and extensibility.
- Be proficient with basic C++ and OO programming techniques.
Mark S. Joshi, C++ Design Patterns and Derivatives Pricing, 2nd edition. Cambridge University Press, 2008 (required).
S. Lippman, J. Lajoie, B. Moo, C++ Primer, 5th edition. Addison-Wesley, 2012. Design Patterns Explained Simply, e-book, https://sourcemaking.com/design-patterns-ebook
- Lecture slides: available online through Canvas course shell.
- A working C++ IDE. Recommendations:
To pursue the course objectives effectively, students will engage in the following activities:
All assignments should be the work of an individual student are due on the date shown in the course schedule. Submit to Canvas any late assignments. Late homework will be penalized one grade letter per late week. Grading will be based upon your understanding and analysis of the issues presented in class and readings.
EXAM ROOM CONDITIONS
The following procedures apply to quizzes and exams for this course. As the instructor, I reserve the right to modify any conditions set forth below by printing revised Exam Room Conditions on the quiz or exam.
Students may not use the following devices during quizzes and exams. Any electronic devices that are not mentioned in the list below are not permitted.
Students may not use the following materials during quizzes and exams. Any materials that are not mentioned in the list below are not permitted.
Other aid materials
Students are not allowed to work with or talk to other students during quizzes and/or exams.
Homework and Exams Schedule
- At least 5 Homework with a total of 70% of class grade
- Final exam at the end of semester
Note: All homework is to be done individually. No collaboration is allowed. Collaborations will be heavily penalized with a 0% grade.
||Chpt. 1: A simple Monte Carlo model
| Week 2
||Chpt. 2 & 3: Encapsulation, Inheritance, and virtual functions
| Week 3
||Chpt. 4: Bridging with a virtual constructor
| Week 4
||Chpt. 5: Strategies, decoration, and statistics
| Week 5
||Chpt. 6: A random numbers class
| Week 6
||Chpt. 7: An exotics engine and the template pattern
| Week 7
||Chpt. 8: Trees
| Week 8
||Chpt. 9: Solvers, templates, and implied volatilities
| Week 9
||Chpt. 10 & 11: The factory & Design patterns revisited
| Week 10
||Chpt. 12 & 13: The situation & Exceptions
| Week 11
||Chpt. 14: Templatizing the factory
| Week 12
||Intel Math Kernel Library (MKL)
| Week 13
||Intel Parallel STL and DAAL libraries