Lokata strukturyzowana to instrument finansowy złożony z co najmniej dwóch różnych instrumentów, które można podzielić na 2 grupy: oszczędnościowe oraz inwestycyjne. Większa część kapitału (zwykle od 70% do 95%) lokowana jest w bezpieczne instrumenty, np. obligacje państwowe. Pozostała część jest inwestowana w produkty finansowe z możliwością większego zysku, a co za tym idzie, także i o wyższym ryzyku. Lokata strukturyzowana powinna charakteryzować się kilkoma cechami. Pierwsza z nich to częściowa lub pełna ochrona kapitału. Bank musi określić, jaki procent kapitłu jest gwarantowany na koniec inwestycji. Druga cecha lokaty strukturyzowanej to jasno określony czas trwania inwestycji oraz formuła wyliczania stopy zwrotu. Lokata inwestycyjna powinna mieć także wbudowany instrument pochodny, czyli to, w co bank zainwestuje ryzykowną część.
Ryzykowna część kapitału klienta może być ulokowana w różnych instrumentach finansowych, takich jak: kurs walutowy, indeksy giełdowe, czy kruszce i metale szlachetne. Niewątpliwie najpopularniejszym z nich jest kurs walutowy. Lokaty oparte na kursie walut zakładają, że w okresie umownym lokaty, kurs wzrośnie lub spadnie w określonych granicach. Lokaty strukturyzowane opierają się na ustalonych strategiach strategie, np. wzrost kursu EUR/PLN. Jeżeli po zakończeniu lokaty okaże się, że instrument, w który zainwestowano osiągnął pożądany poziom, otrzyemy wyższy zysk. W przeciwnym razie odsetki będą mniejsze lub zainwestowana kwota zostanie zwrócona. Lokaty strukturyzowane często opisywane są słowami:Lokata strukturyzowana skierowana jest do osób ceniących sobie bezpieczeństwo inwestycji i poszukujących wyższych zysków niż na tradycyjnych lokatach bankowych.
Należy jednak pamiętać, że w przypadku lokowania kapitału w lokaty strukturyzowane klient nie zawsze zyskuje. Celem niniejszej pracy będzie analiza ryzyka rozumianego jako możliwość osiągnięcia zakładanego zysku przez osoby inwestujące w lokaty strukturyzowane.
W niniejszej pracy wykorzystane dane dotyczące kursów EUR/PLN oraz USD/PLN publikowane na stronie NBP. Wykorzystano trzy podejścia: symulację Monte Carlo polegającą na 1000 losowaniu zwrotów historycznych, symulację Monte Carlo opartą na 1000 losowaniu z rozkładu normalnego oraz symulacje oparte o modele GARCH.Dodatkowo dla każdej z lokat i każdego wyżej wymienionego podejścia przeprowadzono analizę wrażliwości.
Lokata strukturyzowana EUR EURO PLUS to produkt oferowany przez Bank Zachodni WBK. Okres subskrybcji tej lokaty to 22.06.2016-05.07.2016. Czas trwania wyżej wymienionej lokaty strukturyzowanej to 12 miesięcy (od 06.07.2016 do 05.07.2017) a minielna kwota inwestycji wynosi 3000 PLN. Strategia lokaty zakłada osłabienie kursu złotego względem euro. Stopa procentowa uzależniona jest od kursu średniego EUR wyrażonego w PLN ogłaszanego przez NBP. W zależności od zachowania się tego kursu, stopa procentowa może wynieść: 5,0% w skali roku, w przypadku, gdy kurs w dniu ostatniej obserwacji przyjmie wartość z przedziału pomiędzy kursem EUR/PLN1 (kurs z dnia 06.07.2016 powiększony o 0,06 zł) a kursem EUR/PLN2 (kurs EUR/PLN1 powiększony o 0,25 zł). W przypadku, gdy kurs w dniu finalnej obserwacji przyjmie wartość niższą od EUR/PLN1 lub wartość równą, bądź wyższą od EUR/PLN2, odsetki nie będą naliczone.
Do analizy możliwości osiągnięcia zakładanego zysku przez osoby inwestujące w lokatę strukturyzowaną EUR EURO PLUS wykorzystano dzienne kursy euro wyrażone w złotówkach ogłaszanane przez NBP. Pierwsza obserwacja pochodzi z dnia 01.01.1999, natomiast ostatnia - 23.06.2016. Po ściągnięciu danych oraz ich wstępnej obróbce obliczono ciągłe stopy zwrotów. Analizę rozpoczęto od wygenerowania wykresu zwrotów:
oraz podstawowych statystyk opisowych i histogramu:
Analizując wielkość kurtozy (7.497960) oraz histogram zwrotów możemy stwierdzić, iż mamy do czynienia z rozkładem leptokurtycznym.
Przeprowadzono prostą symulację Monte Carlo z 1000 powtórzeń opartą na jednorodnym losowaniu ciągłych zwrotów EUR/PLN z danych historycznych.
Ponieważ wypłata odsetek w przypadku tej lokaty ma charakter zero-jedynkowy, tzn. wypłaca określony procent tylko w przypadku zajścia pewnego zdarzenia, a w pozostałych przypadkach środki zostają zwrócone bez oprocentowania, to miarą używaną do określenia zwrotów z danej lokaty będzie prawdopodobieństwo zajścia zdarzenia, które zapewnia otrzyenie niezerowych odsetek. W przypadku wspomnianej wyżej symulacji otrzymano następujący odsetek sukcesów:
## [1] 0.166
W kolejnym kroku przeprowadzono analizę wrażliwości dla metody opartej na losowaniu prostym. Testowany jest wpływ zmiany okresu, z którego pochodzą dane użyte do losowania ciągłych zwrotów. Zbiór danych zawsze kończy się obserwacją z dnia 23.06.16, natomiast jego początek jest określony przez rok znajdujący się na dolnej osi wykresu znajdującego się poniżej. Na przykład, liczba 2003 oznacza, że do losowania ciągłych zwrotów użyte są dane historyczne z okresu 02.01.2003 - 23.06.2016.
Odsetek sukcesów otrzymany dla poszczególnych okresów przedstawiono na poniższym wykresie.
Hedging jest popularną formą ochrony przed nadmiernymi wahaniami kursu. Polega na dobraniu do podstawowej inwestycji takiego aktywa, który przyniesie zyski w przypadku strat na podstawowej inwestycji, a tym samym zmniejszy ogólny poziom strat. Rozważono zatem strategię hedgingową opartą na inwestycji 1000 PLN w EUR. Poniżej zaprezentowano histogram zwrotów z inwestycji podstawowej, polegającej na zakupie EUR za 1000 PLN i ich sprzedaży po roku. Symulacja została oparta na losowaniu ciągłych zwrotów z całego zbioru danych historycznych.
Celem jest znalezienia kwoty, którą powinno się wpłacić na lokatę, żeby obniżyć prawdopodobieństwo straty wynoszącej 10% do poziomu 10%. Przedstawiony poniżej wykres prezentuje prawdopodobieństwo straty wynoszącej 10% w zależności od wysokości lokaty zabezpieczającej.
Po przeprowadzonej analizie stwierdzono, że trzeba założyć lokatę w wysokości 200 zł.
Inne podejście do symulacji zmian kursów walutowych polega na założeniu, że ciągłe zwroty pochodzą z rozkładu normalnego. Parametry tego rozkładu są dobierane na podstawie danych historycznych. W przypadku całego zbioru danych historycznych (01.01.1999 - 23.06.2016) średnia ciągłych zwrotów wynosi 0.000015, natomiast ich wariancja to 0.000043. W wyniku losowania z rozkładu normalnego otrzymano następujący odsetek sukesów:
## [1] 0.172
Podobnie jak w przypadku losowania ciągłych zwrotów z danych historycznych, analiza wrażliwości polega na określaniu zależności pomiędzy okresem, na podstawie którego wyliczane są parametry użytego rozkładu normalnego, a prawdopodobieństwem, że zostanie spełniony warunek, który zapewnia wypłatę odsetek w wysokości 5%. Przedstawiony niżej wykres prezentuje otrzymane wyniki:
Powrównanie tego wykresu do analogicznego wykresu zaprezentowanego w części poświęconej losowaniu zwrotów z danych historycznych pokazuje, że otrzymane wyniki są zbliżone dla lat 1999-2009. Istotna rozbieżność zaczyna się od roku 2011, od którego duże wyższe wartości odsetka sukcesów są osiągane w przypadku losowania prostego z danych historycznych.
Kolejny etap analizy ryzyka rozumianego jako możliwość osiągnięcia zakładanego zysku przez osobyinwestujące w lokaty strukturyzowane to przeprowadzenie symulacji z wykorzystaniem modeli GARCH. Modele GARCH są popularną formą modeli stosowanych do analizy zwrotów.W przypadku ciągłych zwrotów można spodziewać się rozkładu leptokurtycznego. Aby stwierdzić, czy rzeczywiście emy do czynienia z rozkładem leptokurtycznym, przeanalizowano histogram zwrotów z nałożoną na niego gęstością rozkładu normalnego z parametrami oszacowanymi na podstawie pełnej próbki zwrotów.
Podejrzenia sprawdziły się, rozkład charakteryzuje się leptokurtycznścią. Poza analizą histogramu przeprowadzono także formalny test Jarque Bera za pomocą którego odrzucono H0 o normalności rozkładu (p-value<5%) ciągłych stóp zwrotów.
##
## Jarque Bera Test
##
## data: na.omit(eur.diff.vector)
## X-squared = 10431, df = 2, p-value < 2.2e-16
Stwierdzono występowanie stylizowanych faktów, zastem istnieją przesłanki do wykorzystania w analizie modeli GARCH. Jako pierwszy zdecydowano się oszacować model ARCH(1) i otrzymano następujące wyniki estmacji:
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 0), data = na.omit(eur.diff.vector),
## cond.dist = "norm", trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 0)
## <environment: 0x000000000a4fa138>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## mu omega alpha1
## -7.8946e-05 2.8824e-05 3.1982e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu -7.895e-05 8.592e-05 -0.919 0.358
## omega 2.882e-05 7.981e-07 36.117 <2e-16 ***
## alpha1 3.198e-01 2.578e-02 12.406 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16246.41 normalized: 3.677323
##
## Description:
## Fri Jul 01 05:54:19 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 4380.903 0
## Shapiro-Wilk Test R W 0.9518604 0
## Ljung-Box Test R Q(10) 42.89444 5.193839e-06
## Ljung-Box Test R Q(15) 55.37751 1.542974e-06
## Ljung-Box Test R Q(20) 66.78958 6.034599e-07
## Ljung-Box Test R^2 Q(10) 515.472 0
## Ljung-Box Test R^2 Q(15) 719.6556 0
## Ljung-Box Test R^2 Q(20) 922.1655 0
## LM Arch Test R TR^2 402.4841 0
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.353288 -7.348947 -7.353289 -7.351757
Stała okazała się być nieistotna: statystyka testowa t=-0.919, p-value=0.358 <0.05, zatem nie ma podstaw do odrzucenia H0 o nieistotności stałej w modelu ARCH(1). Po usunięciu stałej oszacowano model raz jeszcze i otrzymano następujące wyniki estmacji:
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 0), data = na.omit(eur.diff.vector),
## cond.dist = "norm", include.mean = FALSE, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 0)
## <environment: 0x000000000c1e2f70>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1
## 2.8843e-05 3.1900e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 2.884e-05 7.984e-07 36.12 <2e-16 ***
## alpha1 3.190e-01 2.573e-02 12.40 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16245.99 normalized: 3.677228
##
## Description:
## Fri Jul 01 05:54:19 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 4386.784 0
## Shapiro-Wilk Test R W 0.9517847 0
## Ljung-Box Test R Q(10) 42.75473 5.501064e-06
## Ljung-Box Test R Q(15) 55.34327 1.563589e-06
## Ljung-Box Test R Q(20) 66.90494 5.7822e-07
## Ljung-Box Test R^2 Q(10) 514.9805 0
## Ljung-Box Test R^2 Q(15) 718.6575 0
## Ljung-Box Test R^2 Q(20) 920.8842 0
## LM Arch Test R TR^2 401.0507 0
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.353550 -7.350656 -7.353550 -7.352529
Wszystkie zmienne okazały się istotne. W modelu tym występuje problem autokorelacji kwadratów reszt. Analizując wyniki testu Ljung-Boxa, dla którego p-value<0.05, odrzucamy H0 o braku autokorelacji wśród kwadratów reszt. Nie są one zatem białym szumem. Model ten nie wyjaśnia także efektów ARCH, LM Arch Test: tatystyka testowa \({TR}^{2}\)=401.0507, p-value<0.05. Odrzucamy H0 o braku efektów ARCH. Zatem istnieją przesłanki, by oszacować model GARCH(1,1).
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 1), data = na.omit(eur.diff.vector),
## cond.dist = "norm", include.mean = F, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 1)
## <environment: 0x000000000c3d8d50>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1 beta1
## 3.4375e-07 9.2300e-02 9.0288e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 3.437e-07 7.871e-08 4.367 1.26e-05 ***
## alpha1 9.230e-02 8.339e-03 11.068 < 2e-16 ***
## beta1 9.029e-01 8.183e-03 110.334 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16737.37 normalized: 3.78845
##
## Description:
## Fri Jul 01 05:54:20 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 1092.615 0
## Shapiro-Wilk Test R W 0.9817332 0
## Ljung-Box Test R Q(10) 10.0636 0.4349309
## Ljung-Box Test R Q(15) 14.15515 0.5137964
## Ljung-Box Test R Q(20) 19.20508 0.5085339
## Ljung-Box Test R^2 Q(10) 18.32542 0.04971611
## Ljung-Box Test R^2 Q(15) 24.29351 0.06027389
## Ljung-Box Test R^2 Q(20) 29.51608 0.07808353
## LM Arch Test R TR^2 29.30008 0.00355505
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.575543 -7.571201 -7.575544 -7.574012
W modelu tym kwadraty reszt są białym szumem, dla Q(20) p-value 0.07808353>0.05. Na poziomie istotności 5% nie e podstaw do odrzucenia H0 o tym, że reszty są białym szumem. Jednak w modelu tym ciągle występują efekty ARCH. LM ARCH TEST: statystyka testowa \({TR}^{2}\)=401.0507, p-value=0.00355505<0.05, odrzucamy H0 o braku efektów arch. Dokładamy do modelu kolejne rozszerzenia i szacujemy model GARCH (2,1)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(2, 1), data = na.omit(eur.diff.vector),
## cond.dist = "norm", include.mean = F, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(2, 1)
## <environment: 0x000000000aaddeb0>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1 alpha2 beta1
## 3.4497e-07 9.2197e-02 1.0000e-08 9.0285e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 3.450e-07 8.353e-08 4.130 3.63e-05 ***
## alpha1 9.220e-02 1.335e-02 6.906 5.00e-12 ***
## alpha2 1.000e-08 1.704e-02 0.000 1
## beta1 9.029e-01 1.032e-02 87.463 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16737.46 normalized: 3.788469
##
## Description:
## Fri Jul 01 05:54:22 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 1088.896 0
## Shapiro-Wilk Test R W 0.9817546 0
## Ljung-Box Test R Q(10) 10.07554 0.4338914
## Ljung-Box Test R Q(15) 14.16893 0.5127575
## Ljung-Box Test R Q(20) 19.22001 0.5075693
## Ljung-Box Test R^2 Q(10) 18.37844 0.04890574
## Ljung-Box Test R^2 Q(15) 24.34255 0.0595001
## Ljung-Box Test R^2 Q(20) 29.5609 0.07728798
## LM Arch Test R TR^2 29.31406 0.003538027
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.575128 -7.569339 -7.575129 -7.573086
Parametr \({\alpha}_{2}\) nieistotny. Efekty ARCH nadal nie zostały wyeliminowane, a kryteria informacyjne świadczą o fakcie, iż model ten jest gorzej dopasowany niż GARCH(1,1). Spróbowano zatem w celu poprawy wyników estmacji dodać kolejne rozszezrenia i oszacować model GARCH(1,2)
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 2), data = na.omit(eur.diff.vector),
## cond.dist = "norm", include.mean = F, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 2)
## <environment: 0x000000000a7cb660>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1 beta1 beta2
## 4.2921e-07 1.1745e-01 5.5272e-01 3.2343e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 4.292e-07 1.019e-07 4.212 2.53e-05 ***
## alpha1 1.174e-01 1.215e-02 9.665 < 2e-16 ***
## beta1 5.527e-01 9.962e-02 5.548 2.89e-08 ***
## beta2 3.234e-01 9.262e-02 3.492 0.000479 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16742.23 normalized: 3.789549
##
## Description:
## Fri Jul 01 05:54:23 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 1002.25 0
## Shapiro-Wilk Test R W 0.9823622 0
## Ljung-Box Test R Q(10) 10.0876 0.4328415
## Ljung-Box Test R Q(15) 14.13735 0.5151388
## Ljung-Box Test R Q(20) 19.20861 0.5083057
## Ljung-Box Test R^2 Q(10) 14.92316 0.1348885
## Ljung-Box Test R^2 Q(15) 21.14423 0.132284
## Ljung-Box Test R^2 Q(20) 26.30127 0.1560909
## LM Arch Test R TR^2 26.47684 0.009183422
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.577286 -7.571498 -7.577288 -7.575245
Kryteria informacyjne świadczą o lepszym dopasowaniu modelu GARCH(1,2) niż GARCH(1,1). Jednak efekty ARCH wciąż występują.Zdecydowano się na kolejne rozszerzenia i oszacowano GARCH(1,3) bez stałej:
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 3), data = na.omit(eur.diff.vector),
## cond.dist = "norm", include.mean = F, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 3)
## <environment: 0x000000000caa4b10>
## [data = na.omit(eur.diff.vector)]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1 beta1 beta2 beta3
## 4.5225e-07 1.3020e-01 5.7199e-01 1.0000e-08 2.9060e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 4.522e-07 1.124e-07 4.024 5.71e-05 ***
## alpha1 1.302e-01 1.477e-02 8.817 < 2e-16 ***
## beta1 5.720e-01 1.769e-01 3.233 0.00123 **
## beta2 1.000e-08 2.328e-01 0.000 1.00000
## beta3 2.906e-01 9.639e-02 3.015 0.00257 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 16744.46 normalized: 3.790054
##
## Description:
## Fri Jul 01 05:54:24 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 1090.625 0
## Shapiro-Wilk Test R W 0.9822103 0
## Ljung-Box Test R Q(10) 10.40898 0.4053739
## Ljung-Box Test R Q(15) 14.49876 0.4880869
## Ljung-Box Test R Q(20) 19.32078 0.5010712
## Ljung-Box Test R^2 Q(10) 11.86471 0.2942132
## Ljung-Box Test R^2 Q(15) 17.39539 0.2957826
## Ljung-Box Test R^2 Q(20) 22.10136 0.3350362
## LM Arch Test R TR^2 21.94963 0.03808827
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -7.577845 -7.570609 -7.577847 -7.575293
Następnie porównano kryteria informacyjne dla oszacowanych modeli.
## AIC BIC SIC HQIC model
## 1 -7.577286 -7.571498 -7.577288 -7.575245 garch12
## 2 -7.577845 -7.570609 -7.577847 -7.575293 garch13
Najlepszym dopasowaniem (najniższa wartość kryteriów informacyjnych) charakteryzuje się model GARCH(1,3) . Można także zaobserwować, iż wartości kryteriów informacyjnych nie spadają znacznie po dołożeniu kolejnych rozszerzeń.Nie można zapominać, iż istotna jest także prostota modelu. Zaprzestano zatem doładania kolejnych rozszerzeń i uznano model GARCH(1,3) za najlepszy. Statystyka testowa Q(20) wykorzystywana w teście Ljung-Boxa wynosi w tym modelu 22.10136, p-value=0.3350362>0.05, czyli kwadraty reszt są białym szumem. LM Arch Test: \({TR}^{2}\)=21.94963, p-value=0.03808827, zatem można uznać,iż na poziomie istotności 0.001 efekty ARCH zostały wyeliminowane. Następnie zapisano do data frame wszystkie parametry dla oszacowanych powyżej modeli GARCH. Zaczęto od przeprowadzenia symulacji z wykorzystaniem modelu GARCH (1,3)
Otrzmany w tej symulacji odsetek sukcesów wyniósł:
## [1] 0.0153 0.0163 0.0169 0.0224 0.0220
W kolejnym kroku przeprowadzono podobną symulację z wykorzystaniem modelu GARCH(1,1). Otrzymano odsetek sukcesów na poziomie:
## [1] 0.0149 0.0167 0.0217 0.0233
W kolejnym kroku przeprowadzono analizę wrażliwości z użyciem modeli GARCH w celu sprawdzenia, jakie jakie wyniki zostaną otrzymane w zależności od użytych danych.Używanymi do analizy modelami będą: GARCH(1,1) i GARCH(1,3).
Wyniki analizy wrażliwości z wykorzystaniem modelu GARCH(1,1) o GARCH(1,3) przedstawia poniższy wykres:
Można zauważyć, iż dla większości obeserwacji model GARCH (1,1) daje bardziej optymistyczne wyniki niż GARCH(1,3). Jednak różnice w oszacowania są bardzo małe, a dla lat od 2007 do 2011 wykres przedstawiający odsetek sukcesów oszacowany za pomocą modelu GARCH(1,1) wydaje się być przesuniętym o dodatnią stałą modelem GARCH(1,3).Odsetek sukcesów charaketryzował się tendencją spadkową do 2007, jednak po 2007 roku zaczął dynamicznie rosnąć aż do 2011 roku, kiedy to tempo wzrostu ustabilizowało się.
Zgodnie z informacjami zawartymi na stronie banku BZ WBK oprocentowanie standardowej lokaty w skali roku wynosi 1.11%. Wyższe oprocentowanie mają tylko lokaty specjalne, takie jak lokata dostępna tylko dla nowych klientów. Zatem w przypadku standardowej lokaty prawdopodbieństwo osiągniecia zysku wynoszącego 1.11% wynosi 100%. Natomiast analizowana wyżej lokata daje szansę na wyższy zysk, jednak prawdopodobieństwo jego osiągnięcia jest niższe. W zależności od metody i danych, którymi się posłużono, otrzymano różne wyniki. Wahają się one w przedziale od
## [1] 0.166
w przypadku losowania zwrotów z danych historycznych od roku 1999, do
## [1] 0.396
w przypadku losowania zwrotów na podstawie danych od roku 2015. W pierwszym przypadku wartość oczekiwana zysku wynosi
## [1] 0.0083
natomiast w drugim
## [1] 0.0198
Widać zatem, że różnice pomiędzy otrzymanymi wynikami nie pozwalają jednoznacznie roztrzygnąć czy wartość oczekiwana zysku w przypadku rozważanej lokaty jest większa niż w przypadku standardowych produktów oferowanych przez bank.
Jako druga została poddana analizie lokata strukturyzowana „Range accrual EUR/PLN czerwiec 2016. Produkt ten jest oferowany przez GET IN BANK w okresie od 01.06.2016r.do 30.06.2016r. Czas trwania wyżej wymienionej lokaty strukturyzowanej to 12 miesięcy (od 07.07.2016 do 07.07.2017). Minielna kwota inwestycji wynosi 5 000 PLN, a eksyelna 10 000 000. Jako instrument bazowy w wyżej wymienionej lokacie został wykorzystany kurs EUR wyrażony w PLN, zawarty w Tabeli A kursów średnich walut obcych, publikowany przez Narodowy Bank Polski (NBP). Odsetki od Lokaty inwestycyjnej naliczane są w Dniu zakończenia okresu lokaty według poniższych zasad:
Odsetki = Kwota lokaty * 4% * \(\frac{n}{N}\),
gdzie:
\(n\) - liczba dni obserwacji, w których kurs EUR/PLN będzie miał wartość z zakresu ustalonego w dniu 07.07.2016r.
\(N\) - liczba wszystkich dni obserwacji.
Zakres to przedział o szerokości eksyelnie 0.26 PLN, minielnie 0.16 PLN, którego:
dolna bariera znajdzie się eksyelnie 0.13 PLN poniżej kursu EUR/PLN z dnia 07.07.2016r.
górna bariera znajdzie się eksyelnie 0.13 PLN powyżej kursu EUR/PLN z dnia 07.07.2016r.
Przeprowadzono prostą symulację Monte Carlo z 1000 powtórzeń opartą na jednorodnym losowaniu ciągłych zwrotów EUR/PLN z danych historycznych.
Odsetki z lokaty oferowanej przez GET IN BANK nie mają charakteru zero-jedynkowego, jak w przypadku lokaty oferowanej przez BZ WBK. Wysokość wypłaty zależy od stosunku liczby dni, w których kurs EUR/PLN będzie miał wartość z zakresu ustalonego w dniu 07.07.2016r. do wszystkich dni obserwacji. Obliczono zysk z lokaty wg formuły: Odsetki = Kwota lokaty * 4% * \(\frac{n}{N}\). Za \(N\) przyjęto średnią liczbę dni handlowych w roku, czyli 252. Policzono prawdopodobieństwo osiągnięcia zysku 2.3% przy założeniu przedziału od 0.13 do 0.08 w dół i od 0.13 do 0.08 w górę od kursy bazowego oraz zysk średni. Otrzymano następujące wyniki (pierwsza od lewej liczba odpowiada przedziałowi +/-0.08, kolejna +/-0.09, natomiast ostatnia +/-0.13):
## [1] 0.053 0.088 0.095 0.141 0.197 0.238
Poniżej przedstawiono histogram odsetek dla przedziału +/-0.13 Wyniki te przedstawiono następnie na histogramie:
W kolejnym kroku przeprowadzino analizę wrażliwości w oparciu o dane historyczne z lat 1999-2016. Przyjęto przedział wahań kursu bazowego po 0.1 w górę i w dół. Utrzymano założenie o osiągnięci 2.3% zysku.
Poniżej przedstawiono zależność pomiędzy rokiem, od którego uwzględniono dane do losowania a prawdopodobieństwem uzyskania zysku na poziomie 2.3%. Kolejne liczby odpowiadają odpowiednio latom 1999, 2002, 2005, 2008, 2011, 2014
## [1] 0.095 0.107 0.142 0.106 0.293 0.380
Następnie wykorzystano podejście zakładające, iż ciągłe zwroty pochodzą z rozkładu normalnego.Parametry tego rozkładu są dobierane na podstawie danych historycznych, średnia ciągłych zwrotów wynosi 0.0002297, natomiast ich odchylenie standardowe to 0.004767. Symulację przeprowadzono w dwóch wariantach: dla zmian kursów w przedziale (-0.08,0.08) oraz (-0.13,0.13). Do symulacji użyto dane od 2000 roku co dwa lata. Utrzymano założenie o prawdopodobieństwie osiągnięcia zysku na poziomie 2.3%.
Porównano także, o ile procent wyższa szansa uzyskania zysku na poziomie 2.3% dla większego przedziału zmiany kursów.
## [1] 5.727273 4.666667 2.712121 4.948718 5.909091 1.968254 1.144105 1.012295
## [9] 1.895652
W przypadku lokaty strukturyzowanej „Range accrual EUR/PLN czerwiec 2016” analogicznie jak dla lokaty EUR EURO PLUS przeprowadzono symulacje z wykorzystaniem modeli GARCH (1,3) oraz GARCH(1,1).
Dla modelu GARCH(1,3) otrzymano następujące prawdopodobieństwa osiągnięcia zysku conajmniej 2.3% w zależności od roku, od którego dane posłużyły do wyznaczenia parametrów modelu. Kolejne liczby odpowiadają latom 1999, 2003, 2007, 2011, 2015:
## [1] 0.151 0.192 0.202 0.349 0.361
Dla modelu GARCH(1,1) zaś (2003, 2007, 2011, 2015):
## [1] 0.208 0.211 0.284 0.340
W kolejnym kroku przeprowadzono analizę wrażliwości z użyciem modeli GARCH w celu sprawdzenia, jakie jakie wyniki zostaną otrzymane w zależności od użytych danych.Używanymi do analizy modelami będą: GARCH(1,1) i GARCH(1,3).
Dla modelu GARCH (1,3) histogram oprocentowania na podstawie danych od 1999 roku przedstawia się w sposób następujący:
W kolejnym kroku założono prawdopodobieństwo zysku na poziomie co najmniej 2.3% i otrzymano następujący wykres dla danych od 1999 do 2015.
Analogiczną analię wrażliwości przeprowadzono także z wykorzystaniem modelu GARCH(1,1).
W przypadku GET IN BANK, na stronie internetowej banku można znaleźć informację na temat oferowanej standardowej lokaty, która w skali roku przynosi zysk w wysokości 2.3%. Niepewność przy obliczaniu prawdopodobieństwa osiągnięcia zysku na tym poziomie w przypadku lokaty strukturyzowanej wynika nie tylko z konieczności wybrania metody i użycia danych z wybranego okresu, ale także z faktu, że z wyprzedzeniem nie jest znana długość przedziału, w którym musi się mieścić kurs. W przypadku najbardziej pesymistycznym prawdopodobieństo osiągnięcia zysku na poziomie 2.3% wynosi
## [1] 0.053
natomiast w najbardziej optymistycznej wersji wynosi
## [1] 0.244
Trzeci poddany analizie produkt to LOKATA STRUKTURYZOWANA USD/PLN XI oferowana przez PKO BP w okresie od 06.06.2016 do 30.06.2016. Czas trwania inwestycji to 9 miesięcy (od 01.07.2016 do 31.03.2017). Minielnie klient może zainwestować 2 000PLN. Lokata strukturyzowana oparta jest na kursie USD/PLN wg NBP. Za dotrzymanie okresu umownego lokaty strukturyzowanej klient otrzymuje odsetki w zależności od kształtowania się kursu walutowego USD/PLN wg zasady: - jeżeli kurs obserwacji spadnie o co najmniej 15 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie 0%;
jeżeli kurs obserwacji spadnie o co najmniej 10 groszy ale mniej niż 15 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie 1,0%;
jeżeli kurs obserwacji spadnie o co najmniej 5 groszy ale mniej niż 10 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie 2,0%;
jeżeli kurs obserwacji spadnie o mniej 5 groszy lub wzrośnie o mniej niż 5 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie równowartość kuponu;
jeżeli kurs obserwacji wzrośnie o co najmniej 5 groszy ale mniej niż 10 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie 2,0%;
jeżeli kurs obserwacji wzrośnie o co najmniej 10 groszy ale mniej niż 15 groszy w stosunku do kursu referencyjnego, wówczas wysokość stopy odsetek wyniesie 1,0%;
jeżeli kurs obserwacji wzrośnie o co najmniej 15 groszy w stosunku do kursu referencyjnego wówczas wysokość stopy odsetek wyniesie 0%.
W analizie dla powyższej lokaty wykorzystano dzienne kursy USD w PLN ogłaszane codziennie przez NBP. Pierwsza obserwacja pochodzi z dnia 01.01.1999, natomiast ostatnia - 23.06.2016. Po ściągnięciu danych oraz ich wstępnej obróbce obliczono ciągłe stopy zwrotów. Analizę rozpoczęto od wygenerowania wykresu zwrotów:
Tak jak w przypadku poprzednich dwóch lokat strukturyzowanych przeprowadzono symulację Monte Carli z 1000 powtórzeń opartą na jednorodnym losowaniu ciągłych zwrotów USD/PLN z danych historycznych. Wykonano także analizę wrażliwości dla metody opartej na losowaniu prostym w celu przetestowania wpływu zmiany okresu, z którego pochodzą dane użyte do losowania ciągłych zwrotów. Poniższy wykres prezentuje wartość oczekiwaną zysku z lokaty w latach 1999-2016.
Wartość oczekiwana i wariancja zysku w wyżej wymienionym okresie przyjmują następujące wartości:
## [1] 0.0104397
## [1] 0.0002814951
W kolejnym kroku dokonano analizy wrażliwości. Na poniższym wykresie zaprezentowane jest prawdopodobieństwo osiągnięcia zysku 1,333%, 2,667% i 5,333%.
###Losowanie z rokzładu normalnego z analizą wrażliwości
Podobnie jak w przypadku dwóch poprzenich lokat wykorzystano podejście zakładające, iż ciągłe zwroty pochodzą z rozkładu normalnego.Parametry tego rozkładu są dobierane na podstawie danych historycznych, średnia ciągłych zwrotów wynosi 0.0002557963, natomiast ich odchylenie standardowe to 0.007078269.
Wartość oczekiwana zysku i jego wariancja są na następującym poziomie:
## [1] 0.00869304
## [1] 0.0002798853
Zarówno wariancja jak i średnia wartość zysku są w przypadku losowania z rozkładu normalnego niższe niż w przypadku losowania prostego. Na poniższym wykresie porównano wartość oczekiwanego zysku w losowaniu prostym i z rozkładu normalnego.
Następnie obliczono prawdopodobieństwo osiągnięcia zysku dla symulacji opartej na losowaniu z rozkładu normalnego.
Zaczęto od wyboru optymalnej formy funkcyjnej modelu, gdyż dla lokaty strukturyzowanej oferowanej przez PKO bierzemy pod uwagę kurs USD/PLN, a nie EUR/PLN jak w przypadku poprzednich produktów. Przeanalizowano histogram ciągłych zwrotów z nałożoną gęstością rozkładu normalnego z parametrami oszacowanymi na podstawie pełnej próbki zwrotów.
Poza analizą histogramu przeprowadzono także formalny test Jarque Bera za pomocą którego odrzucono H0 o normalności rozkładu ciągłych stóp zwrotów: statystyka testowa \({\chi}^2\)=4830.2, p-value<0.05.
##
## Jarque Bera Test
##
## data: na.omit(usd.diff.frame[, 1])
## X-squared = 4830.2, df = 2, p-value < 2.2e-16
Są zatem podstawy do użycia modeli GARCH. Jako pierwszy oszacowano model ARCH(1).
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 0), data = na.omit(usd.diff.frame[,
## 1]), cond.dist = "norm", trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 0)
## <environment: 0x000000000ea8a8d0>
## [data = na.omit(usd.diff.frame[, 1])]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## mu omega alpha1
## -1.1916e-04 5.6734e-05 2.9016e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## mu -1.192e-04 1.212e-04 -0.983 0.326
## omega 5.673e-05 1.594e-06 35.588 <2e-16 ***
## alpha1 2.902e-01 2.551e-02 11.376 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 14790.63 normalized: 3.347812
##
## Description:
## Fri Jul 01 06:07:10 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 2423.427 0
## Shapiro-Wilk Test R W 0.9636154 0
## Ljung-Box Test R Q(10) 12.90687 0.2289257
## Ljung-Box Test R Q(15) 27.36705 0.02588421
## Ljung-Box Test R Q(20) 36.1754 0.0146668
## Ljung-Box Test R^2 Q(10) 615.319 0
## Ljung-Box Test R^2 Q(15) 1020.579 0
## Ljung-Box Test R^2 Q(20) 1250.409 0
## LM Arch Test R TR^2 444.9508 0
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -6.694266 -6.689924 -6.694267 -6.692735
Stała nieistotna, można ją wykluczyć z modelu: t= -0.983, p-value= 0.326>0.05. Zatem nie e podstaw do odrzucenia H0 o nieistotności zmiennej.
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 0), data = na.omit(usd.diff.frame[,
## 1]), cond.dist = "norm", include.mean = FALSE, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 0)
## <environment: 0x0000000008696728>
## [data = na.omit(usd.diff.frame[, 1])]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1
## 0.00005678 0.28916673
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 5.678e-05 1.595e-06 35.59 <2e-16 ***
## alpha1 2.892e-01 2.544e-02 11.37 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 14790.15 normalized: 3.347703
##
## Description:
## Fri Jul 01 06:07:10 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 2418.174 0
## Shapiro-Wilk Test R W 0.9635817 0
## Ljung-Box Test R Q(10) 12.82655 0.2335322
## Ljung-Box Test R Q(15) 27.36092 0.02592963
## Ljung-Box Test R Q(20) 36.19382 0.0145936
## Ljung-Box Test R^2 Q(10) 617.0796 0
## Ljung-Box Test R^2 Q(15) 1023.55 0
## Ljung-Box Test R^2 Q(20) 1254.976 0
## LM Arch Test R TR^2 445.3494 0
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -6.694500 -6.691606 -6.694500 -6.693479
Tym razem wszystkie zmienne istotne, jednak: w modelu tym występuje problem autokorelacji kwadratów reszt. Analizując wyniki testu Ljung-Boxa, dla którego p-value<0.05, odrzucamy H0 o braku autokorelacji wśród kwadratów reszt. Nie są one zatem białym szumem. Model ten nie wyjaśnia także efektów ARCH, LM Arch Test: statystyka testowa \({TR}^{2}\)=445.3494, p-value<0.05. Odrzucamy H0 o braku efektów ARCH. Dodajemy zatem kolejne rozszerzenia i próbujemy oszacować model GARCH(1,1).
##
## Title:
## GARCH Modelling
##
## Call:
## garchFit(formula = ~garch(1, 1), data = na.omit(usd.diff.frame[,
## 1]), cond.dist = "norm", include.mean = F, trace = FALSE)
##
## Mean and Variance Equation:
## data ~ garch(1, 1)
## <environment: 0x000000000d214c50>
## [data = na.omit(usd.diff.frame[, 1])]
##
## Conditional Distribution:
## norm
##
## Coefficient(s):
## omega alpha1 beta1
## 1.1195e-06 7.9333e-02 9.0634e-01
##
## Std. Errors:
## based on Hessian
##
## Error Analysis:
## Estimate Std. Error t value Pr(>|t|)
## omega 1.120e-06 2.323e-07 4.819 1.44e-06 ***
## alpha1 7.933e-02 8.445e-03 9.394 < 2e-16 ***
## beta1 9.063e-01 9.754e-03 92.918 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Log Likelihood:
## 15185.33 normalized: 3.437151
##
## Description:
## Fri Jul 01 06:07:11 2016 by user: user
##
##
## Standardised Residuals Tests:
## Statistic p-Value
## Jarque-Bera Test R Chi^2 413.3881 0
## Shapiro-Wilk Test R W 0.9872355 0
## Ljung-Box Test R Q(10) 5.994972 0.8156855
## Ljung-Box Test R Q(15) 11.04867 0.7491363
## Ljung-Box Test R Q(20) 14.64959 0.7960947
## Ljung-Box Test R^2 Q(10) 11.0705 0.3520522
## Ljung-Box Test R^2 Q(15) 17.02235 0.3175303
## Ljung-Box Test R^2 Q(20) 20.24951 0.442422
## LM Arch Test R TR^2 11.21665 0.5104488
##
## Information Criterion Statistics:
## AIC BIC SIC HQIC
## -6.872944 -6.868602 -6.872945 -6.871413
W modelu GARCH(1,1) wszystkie zmienne są istotne. Model ten dobrze wyjaśnia efekty ARCH: LM Arch Test: statystyka testowa \({TR}^{2}\)=11,21665, p-value=0.5104488>0.05, zatem nie e podstaw do odrzucenia H0 o braku efektów ARCH.Analizując wyniki testu Ljung-Boxa, dla którego p-value>0.05, nie emy podstaw do odrzucenia H0 o braku autokorelacji wśród kwadratów reszt. Są one białym szumem. Uznajemy ten model za poprawnie wyjaśniający zmienność ciągłych zwrotów i używamy go do dalszej symulacji.
Na wykresie przedstawiono możliwość osiągnięcia zysku z lokaty oszacowaną za pomocą symulacji z wykorzystaniem modeli GARCH(1,1)
Na stronie banku PKO można znaleźć informację na temat oferowanej lokaty standardowej, w przypadku której gwarantowany zysk wynosi 2.25%. W przypadku rozważanego produktu strukturyzowanego prawdopodobieńtwo uzyskania zysku nie mniejszego niż 2.667% waha się w granicach od
## [1] 0.016
do
## [1] 0.0231
W niniejszej pracy podjęto problem analizy ryzyka rozumianego jako możliwość osiągnięcia zakładanego zysku przez osoby inwestujące w lokaty strukturyzowane.
Pierwsza z nich to lokata strukturyzowana EUR EURO PLUS oferowana przez Bank Zachodni WBK, której strategia oparta jest na osłabieniu kursu PLN względem EUR. Szansa osiągniecia zysku z tej lokaty W zależności od metody i danych, którymi się posłużono, waha się od 0.83% do 39.6%. W porównaniu z lokatą standardową oferowaną przez Bank Zachodni WBK, której oprocentowanie to 1,11%, nie można jednoznacznie stwierdzić, czy lokata strukturyzowana jest produktem korzystniejszym dla klienta. Kolejną rozważoną lokatą strukturyzowaną była Lokata strukturyzowana „Range accrual EUR/PLN czerwiec 2016” oferowana przez GET IN BANK.Formuła służąca do obliczania wysokości odsetek w przypadku tej lokaty oparta jest na kursie EUR/USD. W prównaniu do lokaty standardowej oferowanej przez GET IN BANK, której oprocentowanie to 2.3% wypada dośc korzystnie korzystnie dla klienta. Prawdopodobieństwo osiągnięcia zysku na poziomie 2.3% dla wyżej wymienionego produktu strukturyzowanego waha się w zależności od metody analizy i długości okresu od 5.3% do 24.4%. Ostatnią wziętą pod uwagę lokatą była LOKATA STRUKTURYZOWANA USD/PLN XI oferowana przez PKO BP. Strategia tej lokaty oparta jest o kurs USD/PLN. PKO BP ma w swojej ofercie także standardową lokatę, której oprocentowanie to 2.25%.W przypadku rozważanego produktu strukturyzowanego prawdopodobieńtwo uzyskania zysku nie mniejszego niż 2.667% waha się w granicach od 1.6% do 2.31%, co czyni ten produkt zdecydowanie mniej korzystnym od tradycyjnej lokaty.
Mimo, iż lokaty strukturyzowane często kuszą klientów możliwością osiągnięcia dużo wyższych zysków niż na lokatach tradycyjnych, nie można zapominać, iż w przypadku lokat strukturyzowanych nie mamy tak jak w przypadku lokat tradycyjnych gwarancji zysku. W przypadku lokowania kapitału w lokaty strukturyzowane klient nie zawsze zyskuje.Często zyski ze standardowych lokat okazują się dużo wyższe niż te z produktów strukturyzowanych. W przypadku, gdy klient decyduje się na zakup lokaty strukturyzowanej, dobrym pomysłem może być zabezpieczający przed nadmiernymi wahaniami kursu hedging.