Dokumentacja. Kalibracja parametrów modelu Hestona za rozszerzonego filtra Kalmana. Mikołaj Bińkowski Wiktor Gromniak

Podobne dokumenty
Estymacja parametrów modelu Hestona - dokumentacja implementacji

Dokumentacja. Hestona i modeli pokrewnych. Mikołaj Bińkowski Wiktor Gromniak

Dokumentacja. Opcje europejskie PDE. Michał Grzelak

Ćwiczenia ZPI. Katarzyna Niewińska, ćwiczenia do wykładu Zarządzanie portfelem inwestycyjnym

Dokumentacja. Wycena opcji europejskich. w modelu Hestona

Zastosowania sieci neuronowych

Podstawy OpenCL część 2

Rozkłady wielu zmiennych

Optymalizacja systemów

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Dynamiczne modele liniowe w badaniach okresowych

Elementy metod numerycznych - zajęcia 9

Metody systemowe i decyzyjne w informatyce

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

3. Optymalizacja portfela inwestycyjnego Model Markowitza Model jednowskaźnikowy Sharpe a Model wyceny aktywów kapitałowych CAPM

Metody systemowe i decyzyjne w informatyce

Podstawy MATLABA, cd.

Stosowana Analiza Regresji

Raport: Wycena opcji metodą Quasi Monte Carlo

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Ważne rozkłady i twierdzenia c.d.

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Komputerowa Analiza Danych Doświadczalnych

Matematyka stosowana i metody numeryczne

Algorytm grupowania danych typu kwantyzacji wektorów

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.


Laboratorium MATLA. Ćwiczenie 4. Debugowanie. Efektywności kodu. Wektoryzacja.

Prawdopodobieństwo i statystyka r.

7. Szybka transformata Fouriera fft

Modele DSGE. Jerzy Mycielski. Maj Jerzy Mycielski () Modele DSGE Maj / 11

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Programowanie strukturalne i obiektowe. Funkcje

Metody redukcji wariancji

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Załącznik nr 1 do Zapytania ofertowego: Opis przedmiotu zamówienia

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

8. Analiza widmowa metodą szybkiej transformaty Fouriera (FFT)

Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika)

Zagadnienia brzegowe dla równań eliptycznych

Analiza obrazów - sprawozdanie nr 2

Modele zapisane w przestrzeni stanów

Obliczenia iteracyjne

KADD Minimalizacja funkcji

Rozdział 2: Metoda największej wiarygodności i nieliniowa metoda najmniejszych kwadratów

Rozpoznawanie obrazów

Optymalizacja systemów

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Metody numeryczne I Równania nieliniowe

Dokumentacja. Opcje europejskie PDE. Zbigniew Matczak

Metody systemowe i decyzyjne w informatyce

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Metody systemowe i decyzyjne w informatyce

REGRESJA LINIOWA Z UOGÓLNIONĄ MACIERZĄ KOWARIANCJI SKŁADNIKA LOSOWEGO. Aleksander Nosarzewski Ekonometria bayesowska, prowadzący: dr Andrzej Torój

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Spacery losowe generowanie realizacji procesu losowego

Optymalizacja systemów

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Fuzja sygnałów i filtry bayesowskie

Dokumentacja. równań różniczkowych czastkowych

Rozdział 7 ZARZĄDZANIE PROJEKTAMI

Komputerowa analiza zagadnień różniczkowych 10. Dwupunktowe problemy brzegowe (BVP, Boundary Value Problems)

Redukcja wariancji w metodach Monte-Carlo

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej

Język R : kompletny zestaw narzędzi dla analityków danych / Hadley Wickham, Garrett Grolemund. Gliwice, cop Spis treści

Zarządzanie przedsięwzięciem informatycznym. Śledzenie projektu

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

Transformaty. Kodowanie transformujace

1. Wprowadzenie do oprogramowania gretl. Wprowadzanie danych.

Ćwiczenie 1. Wprowadzenie do programu Octave

CMAES. Zapis algorytmu. Generacja populacji oraz selekcja Populacja q i (t) w kroku t generowana jest w następujący sposób:

1 Symulacja procesów cieplnych 1. 2 Algorytm MES 2. 3 Implementacja rozwiązania 2. 4 Całkowanie numeryczne w MES 3. k z (t) t ) k y (t) t )

Programowanie Zespołowe

Opcje - wprowadzenie. Mała powtórka: instrumenty liniowe. Anna Chmielewska, SGH,

Akademia Górniczo-Hutnicza

Komputerowa Analiza Danych Doświadczalnych

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Wprowadzenie do programu Mathcad 15 cz. 1

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Kwantowa wariacyjna metoda Monte Carlo. Problem własny dla stanu podstawowego układu N cząstek

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Bezgradientowe metody optymalizacji funkcji wielu zmiennych. informacje dodatkowe

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Stochastyczne równania różniczkowe, model Blacka-Scholesa

Stacjonarność Integracja. Integracja. Integracja

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

Metody systemowe i decyzyjne w informatyce

Maciej Piotr Jankowski

FastStatic czyli jak wykonać pomiar statyczny

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Filtracja pomiarów z głowic laserowych

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

Niezawodność diagnostyka systemów laboratorium. Ćwiczenie 2

Transkrypt:

Dokumentacja Kalibracja parametrów modelu Hestona za pomoca rozszerzonego filtra Kalmana Mikołaj Bińkowski Wiktor Gromniak

Spis treści 1 Wstęp 2 2 Struktura katalogów 2 3 Zależności 2 4 Funkcje 3 4.1 heston_calibr_kalman.......................... 3 4.1.1 Parametry funkcji........................ 3 4.1.2 Zwracany wynik funkcji.................... 4 4.2 extended_kalman_filter......................... 4 4.2.1 Podstawy teoretyczne...................... 4 4.2.2 Parametry funkcji........................ 5 4.2.3 Zwracany wynik funkcji.................... 5 4.3 heston_call_fft............................. 6 4.3.1 Parametry funkcji........................ 6 4.3.2 Zwracany wynik funkcji.................... 6 5 Obsługa programu 6 Literatura 7 1

1 Wstęp Celem tego projektu było napisanie szeregu funkcji dla oprogramowania Octave mających za zadanie kalibrację parametrów modelu Hestona do danych cen waniliowych opcji europejskich. Funkcjonalność uzyskano wykorzystując rozszerzony filtr Kalmana. Niniejszy dokument stanowi dokumentację dla kodu Octave. Postawy teoretyczne oraz motywacja dla zastosowanych rozwiązań zostały zaczerpnięte z prac Lindströma et al. [1] oraz Moodley a [2]. 2 Struktura katalogów Projekt posiada następującą strukturę katalogów: calibration - data - doc - filter - pricing Poszczególne katalogi zawierają: calibration - główny katalog projektu; zawiera skrypt z zależnościami requirements.m oraz skrypt testujący całą funkcjonalność programu test.m data - zawiera pomocniczą funkcję data_generator.m służącą do generowania sztucznych danych testowych oraz same dane w pliku artificial_data.txt doc - zawiera ten dokument, jego źródła oraz literaturę zamieszczoną w bibliografii filter - zawiera funkcję extended_kalman_filter.m realizującą funkcjonalność rozszerzonego filtra Kalmana oraz jej dekorator - funkcję heston_calibr_kalman.m dla potrzeb kalibracji modelu Hestona pricing - zawiera funkcję heston_call_fft.m dokonującą wyceny opcji za pomocą modelu Hestona oraz skrypt ją testujący heston_pricing_test.m 3 Zależności Projekt korzysta wyłącznie ze standardowych funkcji pakietu Octave. Nie testowano na Matlabie. 2

4 Funkcje Projekt zawiera trzy funkcje realizujące właściwą logikę programu: heston_calibr_kalman extended_kalman_filter heston_call_fft Poniżej znajduje się opis poszczególnych funkcji. Wewnętrzna logika każdej z nich opisana jest szczegółowo w kodzie programu wraz z odniesieniami do literatury. 4.1 heston_calibr_kalman Jest to jedyna funkcja, którą wywołuje użytkownik końcowy programu. Ma ona za zadanie optymalizację parametrów modelu Hestona do danych cen europejskich opcji kupna. Do optymalizacji wykorzystywany jest rozszerzony filtr Kalmana realizowany przez funkcję extened_kalman_filter. Jest ona wywoływana wewnątrz funkcji heston_calibr_kalman z odpowiednimi parametrami. Podstawy teoretyczne stanowi praca Lindströma [1]. 4.1.1 Parametry funkcji obs - macierz obserwacji danych cen opcji o wymiarach n m, gdzie n jest liczbą obserwacji w czasie, a m jest liczbą opcji w każdym momencie czasu; cena opcji w miejscu (i, j) odpowiada i-tej obserwacji i j-tej wartości Ts i strikes (patrz niżej) Ts - wektor czasów do wygaśnięcia długości m; czas do wygaśnięcia liczony jest od pierwszej obserwacji (cf. ts poniżej) strikes - wektor strike ów o długości m ts - wektor kolejnych punktów w czasie, w których dokonane były obserwacje, długości n; pierwszy element jest równy 0 m_init - wektor długości 5 zawierający startowe wartości parametrów (te od których zaczną się poszukiwania); kolejne współrzędne odpowiadają: m(1)~kappa, m(2)~theta, m(3)~s (opis poszczególnych parametrów - patrz dokumentacja funkcji heston_call_fft) r - stopa procentowa S0 - wektor cen początkowych aktywa bazowego w poszczególnych momentach czasu długości n jac_rec - parametr opcjonalny; ustala co jaką liczbę iteracji w filtrze Kalmana dokonuje się ponownego obliczenia jakobianu funkcji zadającej proces dynamiczny; pozwala na znaczne skrócenie obliczeń bez istotnej utraty dokładności otrzymanego wyniku; wartość domyślna ustala liczbę przeliczeń na 10 (patrz opis funkcji extended_kalman_filter oraz jej kod) 3

4.1.2 Zwracany wynik funkcji Funkcja zwraca wektor zoptymalizowanych parametrów. Odpowiedniość pomiędzy współrzędnymi wektora, a parametrami jest taka, jak dla wektora wartości początkowych m_init (patrz Parametry funkcji powyżej). 4.2 extended_kalman_filter Funkcja realizująca rozszerzony filtr Kalmana. Jest zaimplementowana w pełnej ogólności (nie ogranicza się do rozważanego problemu), więc może być wykorzystywana przy innych zagadnieniach. 4.2.1 Podstawy teoretyczne Podstawy teoretyczne dla implementacji podajemy za Lindströmem [1]. Załóżmy, że interesujący nas układ dynamiczny można zapisać jako y t = h(x t ) + ε t (1) x t = f(x t 1, η t ). (2) i załóżmy, że rozkład początkowy x 0 jest Gaussowski ze średnią m 0 i macierzą kowariancji P 0 oraz, że ε N(0, R) i η N(0, Q). Wówczas rozszerzony filtr Kalmana jest zadany jako 1. Losowanie x 0 zgodnie z jego rozkładem. 2. Propagacja średniej i macierzy kowariancji zadana przez m t+1 t = f(m t, 0) (3) P t+1 t = F (m t, 0)P t t F T (m t, 0) + G(m t, 0)QG T (m t, 0) (4) 3. Aktualizacja średniej i macierzy kowariancji zadana przez K = P t+1 t H T (m t+1 t )(H(m t+1 t )P t+1 t H T (m t+1 t ) + R) 1 (5) m t+1 t+1 = m t+1 t + K(y t+1 h(m t+1 t )) (6) P t+1 t+1 = P t+1 t KH(m t+1 t )P t+1 t (7) i powtarzaj propagację i aktualizację do momentu gdy t = T. 1 1 W równaniu (7) H(m t+1 t ) nie powinno być transponowane (tak jest u Lindströma)! 4

gdzie F (m, η) = f (m, η) x (8) G(m, η) = f (m, η) η (9) H(m) = h (m) x (10) 4.2.2 Parametry funkcji y - macierz obserwacji obserwowalnego procesu dynamicznego y o wymiarach n m, gdzie n jest liczbą obserwacji w czasie, a m jest liczbą współrzędnych procesu (cf. równ. (1)) m_init - wektor wartości początkowych poszukiwanych parametrów długości k h - funkcja zadająca wartość procesu y dla zadanych wartości parametrów (cf. równ. (1)) H - pochodna h po parametrach (jakobian) (cf. równ. (10)) f - funkcja zadająca relację przejścia dla parametrów (cf. równ. (2)) F - pochodna f po parametrach (jakobian) (cf. równ. (8)) G - pochodna f po procesie szumu (jakobian) (cf. równ (9)) R - macierz kowariancji szumu dla procesu obserwowalnego o wymianach m m (cf. równ. (1)) Q - macierz kowariancji szumu dla procesu parametrów o wymianach k k (cf. równ. (2)) P0 - wartość początkowa macierzy kowariancji dla procesu parametrów o wymiarach k k jac_rec - parametr, który ustala co jaką liczbę iteracji w filtrze Kalmana dokonuje się ponownego obliczenia funkcji H; pozwala na znaczne skrócenie obliczeń bez istotnej utraty dokładności otrzymanego wyniku (patrz kod funkcji) 4.2.3 Zwracany wynik funkcji Funkcja zwraca wektor zoptymalizowanych parametrów. 5

4.3 heston_call_fft Funkcja obliczająca wartość europejskiej opcji kupna w modelu Hestona za pomocą szybkiej transformaty Fouriera (FFT). Dzięki wykorzystaniu FFT jest w stanie robić to bardzo szybko, czego potrzebujemy, ponieważ w zadaniu kalibracji wywołujemy ją wielokrotnie. Dla ustalenia oznaczeń, rozważamy model Hestona postaci ds t = rs t dt + V t S t dw 1 t dv t = κ(θ V t )dt + σ V t dw 2 t d <W 1 t, W 2 t >= ρdt Podstawy teoretyczne dla implementacji stanowi praca Moodley a [2]. Powyższa postać rozważanego modelu jest zgodna z tą pracą (cf. równ. 1.1, 1.2, 1.3 [2]). 4.3.1 Parametry funkcji kappa - współczynnik powrotu do średniej, odp. κ theta - długoterminowa wariancja, odp. θ sigma - zmienność zmienności, odp. σ rho - korelacja pomiędzy procesami Wt 1, Wt 2, odp. ρ T - czas do wygaśnięcia (przyjmuje wektor o długości m) strike - strike opcji (przyjmuje wektor o długości m) S0 - wartość początkowa aktywa bazowego r - stopa procentowa 4.3.2 Zwracany wynik funkcji Funkcja zwraca wycenę dla opcji o zadanych parametrach (względnie, wektor wycen). 5 Obsługa programu Przykład użycia opisanych funkcji przedstawiony jest w skrypcie test.m znajdującym się w głównym katalogu projektu. Korzysta on ze sztucznych danych wygenerowanych za pomocą funkcji data_generator z katalogu data. (przykład korzysta z danych generowanych sztucznie, ze względu na brak dostępu do powierzchni implied volatility w czasie pisania programu; zasadnicza logika nie zmienia się jednak dla danych rzeczywistych) Aby uruchomić program należy wykonać następujące kroki: 6

1. Załadować zależności wykonując skrypt requirements (dodaje on jedynie poszczególne katalogi do ścieżki; jak już wspomniano projekt nie posiada żadnych zewnętrznych zależności). 2. Załadować dane z pliku (wygenerowane bądź rzeczywiste). 3. Stworzyć wektory strikes, Ts (nazwy mogą być inne) zawierające odpowiednio strike i oraz czasy do wygaśnięcia odpowiadające kolumnom macierzy załadowanych danych. 4. Stworzyć wektory ts, S0 zawierające odpowiednio kolejne punkty czasowe obserwacji i ceny aktywa bazowego w tych momentach, odpowiadające kolejnym wierszom macierzy załadowanych danych. 5. Stworzyć wektor początkowych wartości parametrów modelu Hestona m_init. 6. Ustalić stopę procentową r. 7. Wywołać funkcję heston_calib_kalman z odpowiednimi, stworzonymi wcześniej parametrami i odczytać jej wynik (patrz opis tej funkcji). Literatura [1] Lindström E., Ströjby J., Brodén M., Sequential Calibration of Options, 2008 [2] Moodley N., The Heston Model: A Practical Approach with Matlab Code, 2005 7