FE545 Design, Patterns and Derivatives Pricing
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.
||Babbio Center – 536
Tools Used In This Course
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:
- Windows: Microsoft Visual Studio: https://www.visualstudio.com/free-developer-offers/
- macOS: Xcode
- Linux: Eclipse with gcc
To pursue the course objectives effectively, students will engage in the following activities:
- Read assigned material prior to class sessions
- Complete all assignments
- Participate in class discussions
- Prepare and submit a Final Project/Exam paper
- 30% Final Exam
- 70% Assignments
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.
- Cell Phones
- Smart Watches
- Google Glass
Students are allowed to work with or talk to other students during quizzes and use laptops.
- Handwritten Notes
- Cell Phones
- Typed Notes
- Other aid materials
||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