Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

C++ in Quantitative Finance II

Informacje ogólne

Kod przedmiotu: 2400-QFU2C2
Kod Erasmus / ISCED: 14.3 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0311) Ekonomia Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: C++ in Quantitative Finance II
Jednostka: Wydział Nauk Ekonomicznych
Grupy: Anglojęzyczna oferta zajęć WNE UW
Przedmioty obowiązkowe dla II roku Quantitative Finance
Punkty ECTS i inne: 4.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: angielski
Rodzaj przedmiotu:

obowiązkowe

Skrócony opis:

Kurs jest kontynuacją przedmiotu C++ in Quantitative Finance I. Omówione zostaną bardziej zaawansowane elementy programowania obiektowego w C++. Obejmują one także praktyczne przykłady wykorzystania symulacji Monte Carlo w wycenie egzotycznych instrumentów finansowych. Studenci nauczą się także jak wykorzystać kod C++ w środowisku MS Excel oraz w języku R.

Pełny opis:

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

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."

Efekty uczenia się:

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.

Metody i kryteria oceniania:

Egzamin przy komputerach, projekt domowy oraz aktywność podczas zajęć.

Zajęcia w cyklu "Semestr letni 2023/24" (w trakcie)

Okres: 2024-02-19 - 2024-06-16
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Konwersatorium, 30 godzin więcej informacji
Koordynatorzy: Paweł Sakowski
Prowadzący grup: Paweł Sakowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Konwersatorium - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.2.0-80474ed05 (2024-03-12)