C++ in Quantitative Finance II 2400-QFU2C2
1. Zaawansowane techniki programowania obiektowego.
Atrybuty i metody statyczne. Metody wirtualne. Metody abstrakcyjne. Przeciążanie operatorów. Operator <<. Dziedziczenie wielokrotne. Dziedziczenie wirtualne.
2. Dziedziczenie.
Dziedziczenie klas: proste dziedziczenie, dziedziczenie konstruktorów i destruktorów. Kontrola dostępu. Przeładowanie i przeciążanie metod. Metody wirtualne. Przekazywanie argumentów. Praca z przeładowanymi operatorami. Składowe klasy prywatne i publiczne. Definiowanie konstruktorów i destruktorów.
3. Obsługa błędów i debugging.
Techniki debuggowania. Zwracanie kodów błędów. Stosowanie metody assert(). Wyłapywanie wyjątków.
4. Dynamiczne zarządzanie pamięcią.
Pamięć statyczna i dynamiczna. Alokowanie obiektów. Alokowanie tablic statycznych i dynamicznych. Zwracanie zawartości pamięci z funkcji. Konstruktor kopiujący i operator przypisania. Rzutowanie obiektów statycznych i dynamicznych. Unikanie wycieków pamięci.
5. Zaawansowane metody programowania obiektowego.
Konstruktory wirtualne i wzorzec projektowy mostu. Oddzielenie interfejsu i implementacji. Zaawansowane wzorce projektowe. Praca z szablonami. Metody statyczne, wirtualne i abstrakcyjne. Dziedziczenie wielokrotne i wirtualne.
6. Klasy generujące liczby pseudolosowe.
Tworzenie klasy generującej liczby pseudolosowe. Wielokrotne używanie interfejsu. Implementacja próbkowania przeciwstawnego (ang. antithetic sampling).
7. Wycena opcji egzotycznych.
Symulacje Monte-Carlo dla opcji egzotycznych typu path dependent. Szablony. Wycena opcji azjatyckich.
8. Drzewa wielomianowe
Wycena opcji przy wykorzystaniu drzew wielomianowych. Dyskretyzacja ciągłego ruchu Browna. Wycena opcji amerykańskich. Dyskontowanie wartości przyszłej. Szablony jako alternatywa dla dziedziczenie. Metody numeryczne do obliczenia zmienności implikowanej.
9. Wykorzystanie C++ w Excelu
Tworzenie obiektów w środowisku MS Excel. Dostęp do obiektów. Przekazywanie danych do C++ z poziomu Excela. Praca z wektorami i macierzami w Excelu. Praca z funkcjami C++ w Excelu.
10. Integracja języka C++ z językiem R
pakiet Rcpp, pakiet Inline, podstawowe typy danych, tworzenie wykresów z poziomu C++ poprzez R, pakiet RcppArmadillo
Rodzaj przedmiotu
Koordynatorzy przedmiotu
Efekty kształcenia
Po zakończeniu kursu studenci będą potrafili zastosować w praktyce bardziej zaawansowane elementy języka C++, w tym techniki dziedziczenia obiektów. Będą także potrafili wykorzystać kod C++ (umożliwiający tworzenie aplikacji wyceniających opcje egzotyczne) w środowisku MS Excel oraz w języku R.
Kryteria oceniania
Egzamin przy komputerach, projekt domowy oraz aktywność podczas zajęć.
Literatura
1. Joshi "C++ Design Patterns and Derivatives Pricing"
2. Duffy "Introduction to C++ for Financial Engineers"
3. Duffy "Financial Instrument Pricing Using C++"
4. Prata "C++ Primer Plus 6 ed."
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: