Piotr Kowalczyk – dydaktyka
Finanse obliczeniowe
semestr zimowy i letni 2014/15
(seminarium prowadzone razem z prof. Andrzejem Palczewskim)
Treść zadań domowych i punktacja znajdują się
poniżej.
Opis zajęć
- W czasie semestru zimowego i pierwszych tygodni semestru letniego zajęcia
będą prowadzone w formie wykładów prezentujących różne metody obliczeniowe
stosowane w finansach. Treść tych wykładów będzie sukcesywnie umieszczana
na stronie webowej w postaci plików PDF.
- Prezentacja każdej metody będzie zakończona sformułowaniem zadania do samodzielnego
wykonania przez uczestników. Zadania te polegają na napisaniu odpowiedniego
programu w Octave.
- W tej części zajęć uczestnicy będą mieli do wykonania 9 zadań.
- Pod koniec lutego lub na począku marca każdy uczestnik seminarium otrzyma do wykonania
Duży Projekt. Możliwe są także "duże projekty" zespołowe dla zespołu
2-3 osobowego.
- Wykonanie "dużego projektu" wymaga rozwiązania postawionego problemu, napisania programu,
który implementuje to rozwiązanie, przygotowania Raportu z wykonania projektu oraz
przygotowania i przedstawienia na seminarium prezentacji otrzymanego rozwiązania.
- Czas na wykonanie zwykłych zadań wynosi zwykle 2 tygodnie (szczegółowe terminy oddawania
zadań są podawane indywidualnie przy każdym zadaniu). Czas wykonania "dużego projektu" wynosi
2 miesiące.
Slajdy z wykładów (w formacie pdf w jęz. angielskim):
- Wprowadzenie do Octave.
- Model dwumianowy.
- Greckie parametry.
- Generatory liczb pseudolosowych.
- Symulacje Monte Carlo.
- Schematy numeryczne dla równań stochastycznych.
- Równanie Blacka-Scholesa.
- Metody numeryczne dla równań różniczkowych.
- Metody numeryczne dla opcji egzotycznych.
- Metody numeryczne dla opcji amerykańskich.
Warunki zaliczenia:
Zaliczenie zadanych w trakcie seminarium zadań-projektów polegających na napisaniu
odpowiedniego programu w Octave.
Kod programu należy przesyłać na adres compfin(at)mimuw.edu.pl
w terminie podanym przy każdym zadaniu.
Nie sprawdzamy programów przysłanych po terminie!
Z dotychczasowego doświadczenia wynika, że przesyłane programy zawierają błędy bardzo różnego rodzaju:
- przesłane programy zawierają błędy formalne, które uniemożliwiają ich uruchomienie;
- przesłane programy nie są "plikami wykonywalnymi", tzn. program nie działa w ten sposób,
że wypisując po zachęcie Octave nazwę programu powodujemy jego realizację
(jeśli program działa po wklejeniu jego listingu do konsoli, to NIE JEST to "plik wykonywalny");
- progamy są poprawne formalnie (działają), ale produkują bezsensowne wyniki;
- programy sa poprawne formalnie i (w zasadzie) poprawne merytorycznie, tzn. produkują wyniki niepoprawne,
bo zostały popełnione proste (a głupie) błędy programistyczne;
- programy sa poprawne formalnie i merytorycznie, tzn. produkują poprawne wyniki, ale są napisane nieefektywnie
(czas ich realizacji dyskwalifikuje je w praktycznym użytkowaniu).
Różny charakter wymienionych błędów sprawia, że ogólne pojęcie zaliczenia zadania staje się nieostre.
Przy zaliczaniu zadań stosowane będą następujące kryteria szczegółowe:
- za każde zadanie można zdobyć 0-10 punktów;
- za "duży projekt" można zdobyć 0-40 punktów;
- za zadanie dostaje się 0 punktów jeśli:
- nazwa przysłanych plików z programem i danymi nie spełnia kryteriów wskazanych w opisie na stronie webowej,
- plik programu nie wykonuje się
(zawiera błędy formalne, nie jest "plikiem wykonywalnym" lub zawiera niepoprawny plik z danymi);
- za zadanie dostaje się 1-3 punktów, jeśli program produkuje całkowicie niepoprawny wynik spowodowany
złą implementacją algorytmu;
- za zadanie dostaje się 4-8 punktów, jeśli program jest poprawny formalnie i (w zasadzie) merytoryczne,
ale zawiera drobne błędy w implementacji algorytmu (liczba punktów zależy od rodzaju popełnionego błędu);
- za zadanie dostaje się 9-10 punktów, jeśli program jest poprawny formalnie i merytoryczne
(liczba punktów zależy od efektywności programu, tj. czasu wykonania, przejrzystości kodu, elegancji
oraz odporności programu na niepoprawne dane).
Kryteria oceny "dużego projektu" będą poza wymienionymi wyżej cechami poprawnego programu uwzględniały także
wartość rozwiązania problemu, który będzie przedmiotem "dużego projektu", jakośc przygotowanego raportu oraz
ocenę jego prezentacji na seminarium.
Wymienione wyżej kryteria oceny zadań zostaną zastosowane poczynając od zadania nr 2.
Oznacza to, że w ciągu całego roku będzie można zdobyć maksymalnie 120 punktów.
Do zaliczenia seminarium potrzebne będzie zdobycie 60 punktów, w tym conajmniej 10 punktów z "dużego projektu".
Skala ocen:
60-69 punktów - ocena 3
70-79 punktów - ocena 3.5
80-89 punktów - ocena 4
90-99 punktów - ocena 4.5
100-109 punktów - ocena 5
110-120 punktów - ocena 5!
Szczegółowa instrukcja postaci oddawanego zadania:
BEZ POLSKICH LITER - nazwy zmiennych a TAKŻE komentarze nie powinny zawierać polskich liter.
Całe rozwiązanie powinno znajdować się w jednym pliku: najpierw funkcje, potem program.
Ten plik powinien być wykonywalnym programem, czyli po wpisaniu w Octave jego nazwy program powinien
być wykonany. Ten plik powinien mieć nazwę jednoznacznie identyfikującą autora oraz wykonywane
zadanie przez podanie jego numeru. Plik ten powinien mieć nazwę nnnnn_zadx.m,
gdzie nnnnn jest nazwiskiem autora (nazwiskiem i imieniem dla osób o identycznych nazwiskach),
a x numerem zadania, np. kowalski_zad1.m.
Nazwa pliku z danymi będzie zwykle narzucana przez treść zadania.
Zwykle pliki te będą miały nazwy CWx_data.txt, gdzie x będzie numerem zadania.
Jeśli treść zadania nie narzuca nazwy pliku z danymi,
to dane powinny być w pliku o nazwie identyfikującej autora: kowalski_zad1_dane.txt.
Jeśli konieczny jest komentarz, to też powinien być nazwany: kowalski_zad1_koment.txt.
Pliki z danymi powinny używać standardowej struktury przekazywania danych używanej w Octave, tj. takiej w jakiej
Octave zamapiętuje zmienne o wykonaniu komendy save. Przykład takiego formatu znajduje się w załączonym
pliku tutaj.
Wszystkie pliki wymienione w poprzednim punkcie powinny być razem spakowane pod nazwą kowalski_zad1.zip
(może byc rozszerzenie rar lub tar w zależności od użytej pakowarki).
Wysyłany list powinien zawierać tylko załączony plik spakowany i temat identyfikujący,
że chodzi o przesłane rozwiązanie.
Zadania (w formacie pdf w jęz. angielskim):
- Model dwumianowy.
Termin: 21 października 2014.
- Greckie parametry.
Termin: 4 listopada 2014.
- Generatory liczb pseudolosowych.
Termin: 18 listopada 2014.
- Metoda Monte Carlo.
Termin: 2 grudnia 2014.
- Metoda Monte Carlo c.d.
Termin: 16 grudnia 2014.
- Model stochastycznej zmienności.
Termin: 6 stycznia 2015.
- European power option.
Termin: 20 stycznia 2015.
- Opcja azjatycka.
Termin: 24 lutego 2015.
- Opcje amerykańskie.
Termin: 10 marca 2015.
Wyniki zadań dostępne są tutaj.
Duże projekty
Opisy projektów z poprzednich lat oraz raporty z ich realizacji dostępne są
tutaj.
© Piotr Kowalczyk