<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3931049513337747406</id><updated>2026-04-06T01:12:12.426+02:00</updated><category term="efektywność rynku kapitałowego"/><category term="teoria chaosu"/><category term="analiza techniczna"/><category term="teoria portfela"/><category term="fraktale"/><category term="wskaźniki"/><category term="wycena akcji"/><category term="RSI"/><category term="ekonofizyka"/><category term="Twierdzenie o nieistotności polityki dywidendy"/><category term="oscylator stochastyczny"/><category term="Centralne twierdzenie graniczne"/><category term="Osiągalność"/><category term="Sell in May and go away"/><category term="anomalie rynku kapitałowego"/><category term="teoria gier"/><category term="Efektywność 500+"/><category term="dotacje rodzinne"/><category term="funkcja logperiodyczna"/><category term="giełda"/><category term="ocena planu Balcerowicza"/><category term="paradoks Newcomba"/><category term="racjonalność"/><category term="rodzina 500 plus"/><category term="skuteczność dotacji na dzieci"/><category term="stopa procentowa"/><category term="tempo wzrostu zysku"/><category term="wskaźnik cena/wartość księgowa"/><category term="wskaźnik cena/zysk"/><category term="zasiłki na dzieci"/><category term="zasiłki rodzinne"/><title type='text'>Giełdowy Racjonalista</title><subtitle type='html'>Przypadek dotyczy porządku w nieporządku, podczas gdy chaos nieporządku w porządku  &#xa;(Radhakrishna Rao)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>346</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-6428500612283014654</id><published>2026-02-18T21:46:00.038+01:00</published><updated>2026-02-27T00:46:12.836+01:00</updated><title type='text'>Jak bardzo AI przyspieszy wzrost zysków w kolejnych latach?</title><content type='html'>&lt;p&gt;To co się obecnie dzieje w świecie AI, szczególnie LLM (Large Language Model), przyprawia o zawrót głowy. Tempo rozwoju tej technologii jest oszałamiające, zarówno wertykalnie jak i horyzontalnie. To znaczy serwisy branżowe co chwilę donoszą o nowych funkcjach lub poprawionej efektywności jakiegoś modelu, a jednocześnie można korzystać z coraz większej ilości narzędzi do różnych celów. Dla gigantów z S&amp;amp;P 500 rozwój ich własnych AI to priorytet. Dla inwestorów oczywiście najważniejsze to pytanie o ich zyskowność, a więc czy zwrot będzie odpowiedni w stosunku do kosztów. Technologia ta pozwala zarówno zmniejszać koszty (zastępować ludzi) jak i zwiększać przychody (firmy kupują AI zamiast zatrudniać), jednak jej utrzymanie kosztuje bardzo dużo. Sprzęt to jedno, ale istnieje też ryzyko niepowodzenia. Nie chodzi tu nawet o realne możliwości danego modelu, ale o to, że konkurencja może przejąć klientów. Np. Microsoft i Google (czy Alphabet - choć ta nazwa jest taka jakaś...) wydadzą miliardy dolarów na AI (w 2025 jest to odpowiednio 65 i 60 mld dol - &lt;a href=&quot;https://aigazine.com/industry/msft-and-googl-push-ai-spending-to-65b-and-60b-as-capex-ramps-up--v&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;), a w tym samym czasie ktoś trzeci &quot;niszczy system&quot;, przejmuje klientów, a giganci przepalają fortunę.&lt;/p&gt;&lt;p&gt;Pytanie więc brzmi: jak może wyglądać wzrost EPS S&amp;amp;P 500 w kolejnych 5-10 latach? I teraz ciekawa sprawa: wydawałoby się, że będzie to powyżej średniej; ale okazuje się, że średni wzrost od 1981 do 2022 r. wynosi 15%. Dopiero mediana daje bardziej umiarkowany, choć nadal bardzo wysoki, bo 10%. A takie są mniej więcej oczekiwania co do kolejnych lat. J.P. Morgan szacuje wzrost 13-15% na lata 2026-2027 (&lt;a href=&quot;https://www.reuters.com/business/finance/jp-morgan-sees-sp-500-7500-by-end-2026-double-digit-gain-here-2025-11-26/&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;), a Goldman Sachs 12% w 2026 i 10% w kolejnym (&lt;a href=&quot;https://www.goldmansachs.com/insights/articles/the-sp-500-expected-to-rally-12-this-year&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Sam&amp;nbsp;Standard and Poor&#39;s szacuje jednak ogromny wzrost ok. 20% na 2026 (&lt;a href=&quot;https://ycharts.com/indicators/sp_500_earnings_per_share_forward_estimate&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Biorąc pod uwagę, że mamy do czynienia ciągle z hossą, przyjmę ten optymistyczny scenariusz, natomiast na 2027 średnią z wyżej wymienionych instytucji 14 i 10%, czyli 12%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Skłania to do pytania o lokalny szczyt samego impetu zysków. Coraz wolniejsze zmiany, a w końcu spadek zysku oznaczałoby występowanie cykliczności. Aby to sprawdzić najlepiej użyć periodogramu lub analizy spektralnej.&amp;nbsp;&lt;/p&gt;&lt;p&gt;W R najłatwiejszą funkcją (w sensie najmniejszej liczby ustawień) jest spectrum():&lt;/p&gt;&lt;pre class=&quot;language-r&quot; style=&quot;background: none rgb(255, 255, 255); font-size: 13.3333px; hyphens: none; line-height: 1.5; overflow-wrap: normal; overflow: auto; tab-size: 4; text-shadow: white 0px 1px; word-break: normal;&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-r&quot; style=&quot;background: none; hyphens: none; line-height: 1.5; overflow-wrap: normal; tab-size: 4; text-shadow: white 0px 1px; word-break: normal; word-spacing: normal;&quot;&gt;spectrum&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;,&lt;/span&gt; method &lt;span class=&quot;token operator&quot; style=&quot;background: rgba(255, 255, 255, 0.5); color: #9a6e3a;&quot;&gt;=&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color: #669900;&quot;&gt;&quot;pgram&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;color: #669900;&quot;&gt;&quot;ar&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color: #999999;&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Z metod mamy do wyboru periodogram lub spektrum dla modelu autoregresyjnego. Zaletą tego pierwszego jest to, że stanowi metodę nieparametryczną - nie nakłada specjalnych warunków na sygnał (chociaż musi być stacjonarny). Jego wadą jest jednak duża wrażliwość na wielkość próby, wykres jest poszarpany (duża wariancja) i piki mogą się układać przypadkowo niezależnie od wielkości próby (estymator jest niezgodny). Zaletą tego drugiego jest gładkość i stabilność (estymator zgodny), ale posiada dużą wadę: sygnał musi być liniowym procesem autoregresyjnym.&lt;/p&gt;&lt;p&gt;Pomimo prostoty to spectrum() jest tylko nakładką (wrapper) na odpowiednio spec.pgram() i spec.ar(). Lepiej ich używać, bo od razu widać jakie są dodatkowe argumenty i można nimi manipulować. Tak więc dla periodogramu najlepiej użyć:&lt;/p&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;spec.pgram(x, spans = NULL, kernel, taper = 0.1,&lt;br /&gt;           pad = 0, fast = TRUE, demean = FALSE, detrend = TRUE,&lt;br /&gt;           plot = TRUE, na.action = na.fail, ...)&lt;/span&gt;&lt;p&gt;Dzięki kalibracji spans, kernel i taper możemy zminimalizować przytoczone wyżej wady surowego periodogramu.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Na ten moment zwrócę tylko uwagę na demean i detrend. Już samo detrend = TRUE oznacza usunięcie zarówno średniej jak i (liniowego) trendu, dlatego demean (usunięcie średniej) jest zbędne. Jeśli używamy czystego EPS, to jednak detrend nie wystarczy, bo usuwa tylko zwykły trend liniowy, a EPS rośnie przecież nieliniowo, powiedzmy wykładniczo (&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1wNfQis_hUqNnthyzpy1lxQywSsdNMZ7I/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;link do danych&lt;/a&gt;):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhck1w2NbGRI1ZAwa_U161q22HEKCAamWeXjxzXl3GaxbOMXmYKM-Z7GpfOpN2xD9rClmMVGQbo9i0UZ4IYvYArxIGDQNclZvtjIv0k5IWdYY50PzQ6i2bup2sGjN_qdItBkI9iRw2OEc2r0sKn7mVcUVGHTw5wgeX7rLx97wVjPr0if2aeswbonPfv/s787/rstudio_KHD0tH15ip.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;461&quot; data-original-width=&quot;787&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhck1w2NbGRI1ZAwa_U161q22HEKCAamWeXjxzXl3GaxbOMXmYKM-Z7GpfOpN2xD9rClmMVGQbo9i0UZ4IYvYArxIGDQNclZvtjIv0k5IWdYY50PzQ6i2bup2sGjN_qdItBkI9iRw2OEc2r0sKn7mVcUVGHTw5wgeX7rLx97wVjPr0if2aeswbonPfv/w400-h234/rstudio_KHD0tH15ip.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Po zlogarytmowaniu:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwx0YPBzSgh0f2hyphenhyphen3Qm_1GuW04Z1_kxfqHK6m5HzoPKXyx_UUgvwWl7VJBZBpvN9Uu8iO7afFVQaYnXTyF9VCcXXU-simOMW2bv81R4M4K3n2hMmCkPIHGWmzcTL6UmXAXf_4pkkscUBuh89Ar0_SghqlFbYs_hm2_Wi05JMOANjaNYxfhG_Wp4Cvx/s783/rstudio_DzvETAVt1n.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;461&quot; data-original-width=&quot;783&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwx0YPBzSgh0f2hyphenhyphen3Qm_1GuW04Z1_kxfqHK6m5HzoPKXyx_UUgvwWl7VJBZBpvN9Uu8iO7afFVQaYnXTyF9VCcXXU-simOMW2bv81R4M4K3n2hMmCkPIHGWmzcTL6UmXAXf_4pkkscUBuh89Ar0_SghqlFbYs_hm2_Wi05JMOANjaNYxfhG_Wp4Cvx/w400-h235/rstudio_DzvETAVt1n.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;W tym miejscu kłania się problem skrajnego minimalizmu dokumentacji R, bo okazuje się, że nie wystarczą argumenty z funkcji spec.pgram, ale trzeba uwzględnić argumenty funkcji plot.spec, którą tamta funkcja wykorzystuje. Niestety domyślnie funkcja zamienia dane na logarytmy i dlatego trzeba dodać specjalny argument log = &quot;no&quot;.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W sumie tworzymy surowy periodogram z dwoma niezbędnymi argumentami (zmienną oznaczamy jako pg):&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;pg &amp;lt;- spec.pgram(x = log_eps, log = &quot;no&quot;)&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirasbRdH4ih-iw2Jega0dzwNxY9GQK0iYqEYGFzDed92hmKU8qv_qDRAksaB5aBY6_H8AUZMeqlF_l5T3pzEdJ4cmfjCMIYCXCUJFZBc3As_CbGtCEtloNT8zoh1pUbzcLxnbDqzQ6hS-2uQ2azEGWKsBSWS1nCnnM8e1m4qMAuZ6PPJfUf6DJLPdY/s778/rstudio_djzOvVFJzO.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;538&quot; data-original-width=&quot;778&quot; height=&quot;276&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirasbRdH4ih-iw2Jega0dzwNxY9GQK0iYqEYGFzDed92hmKU8qv_qDRAksaB5aBY6_H8AUZMeqlF_l5T3pzEdJ4cmfjCMIYCXCUJFZBc3As_CbGtCEtloNT8zoh1pUbzcLxnbDqzQ6hS-2uQ2azEGWKsBSWS1nCnnM8e1m4qMAuZ6PPJfUf6DJLPdY/w400-h276/rstudio_djzOvVFJzO.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Powyższy wykres periodogramu w zasadzie udowadnia dużą przydatność tego narzędzia. Maksimum wyróżnia się od całej reszty, a jego położenie względem osi X wskazuje długość cyklu. Aby ją wyciągnąć używamy dwóch zmiennych obiektu pg:&lt;/div&gt;&lt;div&gt;pg$freq oraz pg$spec.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;freq_values &amp;lt;- pg$freq&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;spec_values &amp;lt;- pg$spec&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oznaczamy dalej:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;freq_values &amp;lt;- pg$freq&lt;br /&gt;spec_values &amp;lt;- pg$spec&lt;br /&gt;idx_max &amp;lt;- which.max(spec_values)&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Szukaną częstotliwością odpowiadającą maksimum oznaczymy fr_max i będzie to:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;fr_max &amp;lt;-freq_values[which.max(spec_values)]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otrzymałem fr_max = 0.125.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Długość cyklu jest odwrotnością częstotliwości. Najprostsze wyjaśnienie może być na takim przykładzie. Powiedzmy, że mamy tylko 3 punkty w czasie, a każdy punkt to koniec roku. Mamy więc tylko 2 pełne lata. Pierwszy rok wzrost, a drugi rok spadek. To oznacza, że okres lub cykl trwa 2 lata i rok to jednostka czasu. Czyli w jednym roku mieści się pół cyklu, tj. 1/2 - odwrotność okresu. Dostajemy więc długość cyklu:&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNJ4OY0CK5B GNJ4OY0CM5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNJ4OY0CL5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNJ4OY0CCAC ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GNJ4OY0CA5B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;1/fr_max&lt;/span&gt;&lt;span class=&quot;GNJ4OY0CA5B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;GNJ4OY0CK5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text;&quot;&gt;[1] 8&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A więc dostaliśmy &quot;magiczną&quot; liczbę 8 lat - tyle wynosi pełen cykl EPS: wzrost + spadek.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Kolejnym krokiem jest użycie wykrytej cykliczności do budowy &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2019/01/filtr-butterwortha-filtr-hodricka.html&quot; target=&quot;_blank&quot;&gt;filtra Butterwortha&lt;/a&gt;&amp;nbsp;(FB). Dotychczas używałem go w gretlu, ale teraz zrobię to w R, w bardziej zaawansowany sposób. Użyję pakietu gsignal, w którym potrzebujemy dwóch funkcji: butter() oraz filtfilt(). Pierwsza oblicza współczynniki filtra, a druga podstawia je bezpośrednio do filtra.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Najważniejsze argumenty w funkcji butter() to rząd filtra oraz graniczna częstotliwość (znormalizowana częstotliwość odcięcia). Pozostałe argumenty dotyczą typu FB (w większości przypadków interesuje nas dolnoprzepustowy, to jest domyślne ustawienie), rodzaju płaszczyzny (wybór między filtrem cyfrowym a analogowym, interesuje nas zawsze cyfrowy - domyślne ustawienie) oraz sposobu konstrukcji (tu wybieramy &quot;Sos&quot;, skrót od&amp;nbsp;Second-order sections - mechanizm ten zwiększa stabilność numeryczną filtrowania poprzez podział jednej wielkiej operacji na wiele mniejszych i ich połączenie w kaskadową całość).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Chociaż pakiet ma ciekawe funkcje optymalizujące zarówno rząd filtra jak i częstość odcięcia, to dla naszych potrzeb wystarczy dotychczasowa wiedza, że ustawiamy rząd filtra = 2, natomiast znormalizowana częstotliwość odcięcia jest to f_cut / (fs/2), gdzie f_cut - częstotliwość odcięcia odpowiadająca maksimum periodogramu plus pewna nadwyżka (która bywa potrzebna, żeby uwzględnić niestabilność cyklu), fs to częstotliwość próbkowania (por. z &lt;a href=&quot;https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.butter.html&quot; target=&quot;_blank&quot;&gt;opisem funkcji SciPy&lt;/a&gt;, który jest pierwowzorem). W naszym przypadku dane są roczne, więc pobieramy 1 na rok, tj. fs = 1, tak że zostaje 2*f_cut. To mnożenie przez 2 wydaje się być związane z twierdzeniem Nyquista o próbkowaniu. Zgodnie z tym twierdzeniem, aby sygnał został odtworzony bez zniekształceń, częstotliwość próbkowania musi być co najmniej dwa razy większa od częstotliwości odcięcia. Filtrowanie jest podobną operacją do próbkowania, dlatego można traktować taką częstość jako odpowiednią do zachowania sygnału. Od razu jednak zaznaczę, że trochę zgaduję, bo może być tak, że to tylko przyjęta konwencja konstrukcji tej funkcji. Mimo wszystko nie ma wątpliwości, że konwencja ta wywodzi się wprost z pojęcia unormowanej częstotliwości [zob. Loy, G., &lt;i&gt;Musimathics. The Mathematical Foundations of Music&lt;/i&gt;, Volume 2, 2007, s. 19].&amp;nbsp;&lt;/p&gt;&lt;p&gt;Żeby to zilustrować, pokażę jak wygląda FB z częstością odcięcia bez normalizacji, a jak wygląda po normalizacji. Przykład dla sinus z szumem:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Parametry sygnału ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;fs &amp;lt;- 100&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # częstotliwość próbkowania w Hz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;t &amp;lt;- seq(0, 5, by=1/fs)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;f_sin &amp;lt;- 5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# częstotliwość sinusa w Hz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Sygnał sinusoidalny + biały szum ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;set.seed(123)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;x &amp;lt;- sin(2*pi*f_sin*t) + rnorm(length(t), sd=0.5)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Widmo sygnału ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;pg &amp;lt;- spec.pgram(x, log=&quot;no&quot;, plot=FALSE)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;freq_values &amp;lt;- pg$freq&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # jednostki Nyquista [0,0.5]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;spec_values &amp;lt;- pg$spec&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;idx_max &amp;lt;- which.max(spec_values)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;fr_max &amp;lt;- freq_values[idx_max] # główny pik&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Dwie wersje częstotliwości odcięcia ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;fr_cut1 &amp;lt;- fr_max&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# zwykłe&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;fr_cut2 &amp;lt;- fr_cut1*2&amp;nbsp; # &quot;podwójne&quot; dla efektu wizualnego&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Filtry Butterwortha z gsignal ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;order_filtr &amp;lt;- 2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;coef1 &amp;lt;- butter(order_filtr, fr_cut1, type=&quot;low&quot;, output=&quot;Sos&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;coef2 &amp;lt;- butter(order_filtr, fr_cut2, type=&quot;low&quot;, output=&quot;Sos&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;x_filt1 &amp;lt;- filtfilt(coef1, x)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;x_filt2 &amp;lt;- filtfilt(coef2, x)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;# --- Porównanie na wykresie ---&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;plot(t, x, type=&#39;l&#39;, col=&#39;gray&#39;, main=&#39;Sygnał sinus + szum&#39;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;lines(t, x_filt1, col=&#39;blue&#39;, lwd=2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;lines(t, x_filt2, col=&#39;red&#39;, lwd=2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;legend(&quot;topright&quot;, legend=c(&quot;Oryginalny&quot;, &quot;fr_cut&quot;, &quot;fr_cut*2&quot;),&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col=c(&quot;gray&quot;,&quot;blue&quot;,&quot;red&quot;), lwd=2)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfZGNhNYh8HKjZPnwltkAbfjJMwg15zotqCceHZONz4gUHio7ljhrDVJksBdOWXodNxZIssb6ahz1gWH-_E-mcR4_do_i3fYszKJliOv08eW497gZJ_Joxhkt8O2J24U_sOpHen94X_ZGwaejkBDnzd4z-lD7V_KuWN6mmcOIn_qjvLs8YXEnGk-hR/s785/rstudio_mxzcqJVWrN.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;566&quot; data-original-width=&quot;785&quot; height=&quot;289&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfZGNhNYh8HKjZPnwltkAbfjJMwg15zotqCceHZONz4gUHio7ljhrDVJksBdOWXodNxZIssb6ahz1gWH-_E-mcR4_do_i3fYszKJliOv08eW497gZJ_Joxhkt8O2J24U_sOpHen94X_ZGwaejkBDnzd4z-lD7V_KuWN6mmcOIn_qjvLs8YXEnGk-hR/w400-h289/rstudio_mxzcqJVWrN.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Widzimy, że czerwony filtr (z normalizacją) dużo lepiej odzwierciedla przebieg faktycznych cykli. Nawet jednak ten filtr nie dostosowuje się idealnie do głównego sygnału - tak jak pisałem &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2019/02/dwie-uwagi-na-temat-filtru-butterwortha.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt; ważny jest kierunek, a nie wartość. Chociaż niebieska linia też wskazuje ten sam kierunek, to spójrzmy na końcówkę po prawej stronie - czerwona linia prawidłowa już zakręca, a niebieska dalej spada, wprowadzając w błąd. Przy większej zmienności także może zmylić badacza/inwestora/trejdera. Dlatego wybór częstości ma duże znaczenie.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wspomniałem wyżej, że samo podwojenie częstości może nie wystarczyć i przy niestabilności cykli trzeba dodać nadwyżkę. Pytanie ile dodać? Intuicyjnym sposobem jest dodanie takiej nadwyżki, która koresponduje z rozpoczęciem się piku spektralnego lub jego otoczeniem. Przy dużej zmienności piki nie będą bowiem linią pionową, ale zawsze będą mieć kształt trójkąta albo paraboli. Aby wykonać to zadanie wykorzystamy funkcję findpeaks() w tym samym pakiecie, która służy do szukania lokalnych ekstremów. Kod:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;# 1. Wyszukiwanie lokalnego ekstremum i dopasowanie paraboli do struktury piku&lt;br /&gt;peak &amp;lt;- findpeaks(pg$spec, MinPeakHeight = max(pg$spec)*0.99)&lt;br /&gt;&lt;br /&gt;# 2. Pobranie precyzyjnego, ułamkowego indeksu prawego punktu przecięcia z podstawą (a1)&lt;br /&gt;idx_a1 &amp;lt;- peak$roots$a1&lt;br /&gt;&lt;br /&gt;# 3. Zaokrąglenie wyniku do najbliższego całkowitego indeksu istniejącego binu w periodogramie&lt;br /&gt;idx_s &amp;lt;- round(peak$roots$a1)&lt;br /&gt;&lt;br /&gt;# 4. Odczytanie dyskretnej częstotliwości (cykle/rok) odpowiadającej wybranemu binowi szumu&lt;br /&gt;fr_s &amp;lt;- pg$freq[idx_s]&lt;br /&gt;&lt;br /&gt;# 5. Obliczenie statystycznej odległości (pasma przejścia) między sygnałem a poziomem tła&lt;br /&gt;d_peak &amp;lt;- abs(fr_max - fr_s)&lt;br /&gt;&lt;br /&gt;# 6. Wyznaczenie finalnej częstotliwości granicznej pasma zaporowego dla projektu filtra&lt;br /&gt;fr_cut &amp;lt;- fr_max + d_peak&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Użycie progu 99% wysokości maksymalnej jako MinPeakHeight jest celowym zabiegiem. Choć mogłoby się wydawać, że szukamy po prostu max(pg$spec), to funkcja findpeaks robi coś znacznie ważniejszego: wykonuje interpolację (dopasowanie paraboli) do struktury piku (stąd potrzebne przybliżenie). Dzięki temu nie otrzymujemy tylko surowego, najwyższego binu z widma, ale cały obiekt (peak) zawierający precyzyjne parametry, takie jak ułamkowe indeksy podstawy piku (roots). To właśnie te dodatkowe dane, a nie tylko samo maksimum, są kluczowe do poprawnego wyznaczenia marginesu filtra.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otrzymane fr_cut wyniosło 0.208. Zobaczmy jak to wygląda na periodogramie:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiok6_5xMoCd9coquiCTShFC8IA0lXCnCJF7njrIaEjKNahsMrkiUalQhmfFmgqa-qYZ_qtgqlEvGhfFmgEDkEUPbHL4TDAq8WQyiqZFFtx650mpum-Ex29jpd671tB6UOiRqLh7xkUsHlmV08fLMfV9H5hqm2BeWWBRIhyphenhyphenfUuMe-mAwL-A8PAlehoR/s817/rstudio_niXmuxELYu.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;500&quot; data-original-width=&quot;817&quot; height=&quot;245&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiok6_5xMoCd9coquiCTShFC8IA0lXCnCJF7njrIaEjKNahsMrkiUalQhmfFmgqa-qYZ_qtgqlEvGhfFmgEDkEUPbHL4TDAq8WQyiqZFFtx650mpum-Ex29jpd671tB6UOiRqLh7xkUsHlmV08fLMfV9H5hqm2BeWWBRIhyphenhyphenfUuMe-mAwL-A8PAlehoR/w400-h245/rstudio_niXmuxELYu.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W końcu dochodzimy do funkcji butter(). tworzymy dolnoprzepustowy filtr Butterwortha:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;order_filtr &amp;lt;- 2&lt;br /&gt;fr_norm &amp;lt;- fr_cut*2&lt;br /&gt;coef_butter &amp;lt;- butter(order_filtr, fr_norm, type = &quot;low&quot;, output = &quot;Sos&quot;)&lt;br /&gt;sygnal_filtr &amp;lt;- filtfilt(coef_butter, log_eps)&lt;br /&gt;rysuj_wykres(x=lata, y1=log_eps, y2=sygnal_filtr, y1_nazwa=&quot;EPS S&amp;amp;P 500&quot;)&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEnZL9giv1JPBhFYakXcQ97fg_hLrL8zdzw4fr9nAhLbhQf4Q1QMVjcFncD4KZc7ZDSfSQFxrbggNVUdu0JVYQCB3jI-KXM0N8em1YJI_OAeoYX2kWm09E4iUy318xHb-dfy6-8pVhelfTxkokvFZyvZ0Obm-CYo7R2TcJbFkxeDTKc1Qj9g3TZRJY/s781/rstudio_JxKxdC9YS0.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;501&quot; data-original-width=&quot;781&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEnZL9giv1JPBhFYakXcQ97fg_hLrL8zdzw4fr9nAhLbhQf4Q1QMVjcFncD4KZc7ZDSfSQFxrbggNVUdu0JVYQCB3jI-KXM0N8em1YJI_OAeoYX2kWm09E4iUy318xHb-dfy6-8pVhelfTxkokvFZyvZ0Obm-CYo7R2TcJbFkxeDTKc1Qj9g3TZRJY/w400-h256/rstudio_JxKxdC9YS0.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Trzeba sobie teraz zadać pytanie czy przewidywania przedstawione na początku nie są przesadnie optymistyczne biorąc pod uwagę, że w ciągu ostatnich10 lat filtr rósł w linii prostej. Oczywiście można twierdzić, że era AI wszystko zmienia, że game changer&quot; itd., ale era Internetu na początku 2000 r. też miała wszystko zmienić.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Teraz zostaje nam prognoza naszego filtra. Standardem jest rozpoczęcie od ARIMA. Znajdźmy optymalny model -&amp;nbsp; możemy użyć pakietu forecast albo rugarch. Ponieważ jednak bardziej nas interesuje długoterminowa prognoza, to użyjemy tego pierwszego, bo ma on opcję użycia warunkowej metody największej wiarygodności (w tym przypadku jest ona tożsama z warunkową metodą najmniejszych kwadratów, bo dla reszt zakładany jest rozkład Gaussa), która jest lepsza dla takich celów (zob. np. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2018/01/czy-w-arima-stosowac-warunkowa-metode.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). Używając funkcji auto.arima() wpiszemy więc argument method = &quot;CSS&quot; (ang. Conditional Sum of Squares).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Warto dodać, że dzięki zastosowaniu filtracji Butterwortha w dziedzinie logarytmów, uzyskujemy sygnał o ustabilizowanej wariancji i wyeliminowanych ekstremach, jak to w 2008-2009. W takim układzie dodatkowa transformacja Box-Coxa w modelu ARIMA staje się zupełnie zbędna.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stosujemy kod:&lt;/div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;library(&quot;forecast&quot;)&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: verdana;&quot;&gt;arima_model &amp;lt;- auto.arima(sygnal_filtr, ic = &quot;aic&quot;, max.p = 10, max.q = 10, method = &quot;CSS&quot;, stepwise = FALSE, approximation = FALSE)&lt;br /&gt;summary(arima_model)&lt;br /&gt;dopas &amp;lt;- arima_model$fitted&lt;br /&gt;prognoza &amp;lt;- forecast(arima_model, h=6)$mean&lt;br /&gt;rysuj_wykres(x=lata, y1=log_eps, y2=dopas, y_prognoza=prognoza, y1_nazwa=&quot;EPS S&amp;amp;P 500&quot;)&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otrzymałem model&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px;&quot;&gt;ARIMA(3,1,2)&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNJ4OY0CK5B GNJ4OY0CM5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNJ4OY0CL5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;
Coefficients:
        ar1     ar2    ar3    ma1    ma2
      2.106  -2.001  0.770  1.857  0.926
s.e.  0.111   0.175  0.107  0.101  0.082&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oraz prognozy na kolejne 6 lat:&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNJ4OY0CK5B GNJ4OY0CM5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNJ4OY0CL5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNJ4OY0CK5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text;&quot;&gt;
[1] 5.62094 5.65171 5.58799 5.51704 5.51587 5.57493&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To samo dostałem dla kryterium &quot;bic&quot;, więc to raczej nie przypadek.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJl97pyPqUNfM2cBx5RV8khN2p3CWhljp3x1_znt9zLH5XxUPLY2lOlmpkcA_p2GeLaK7nJXeOkXgaH2xBdwRaljtM-FoFT6Bp-ctqjbzpgs4D7g5_FYVMwJW2Jv2Uge0UYsCRc2nTu63aKjSVud1jODF0FHvnEMjTWj7-xT3M_ZfTds2Pf1jmvcvL/s736/rstudio_MfdM8IBRsX.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;736&quot; height=&quot;284&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJl97pyPqUNfM2cBx5RV8khN2p3CWhljp3x1_znt9zLH5XxUPLY2lOlmpkcA_p2GeLaK7nJXeOkXgaH2xBdwRaljtM-FoFT6Bp-ctqjbzpgs4D7g5_FYVMwJW2Jv2Uge0UYsCRc2nTu63aKjSVud1jODF0FHvnEMjTWj7-xT3M_ZfTds2Pf1jmvcvL/w400-h284/rstudio_MfdM8IBRsX.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wg modelu prognoza na 2026 r. wynosi&amp;nbsp;&amp;nbsp;5.62 i na 2027 5.65. Żeby porównać ze wskazanymi na początku 20% i 10%, musielibyśmy retrasformować uzyskane liczby exp(5.62) = 275.9 i exp(5.65) = 284.3. W 2025 mamy 244.5, stąd prognoza wzrostu na 2026 wynosi 275.9&amp;nbsp;/ 244.5 - 1 = 13%. analogicznie na 2027 będzie to 284.3 / 275.9 - 1 = 3%. Czyli dostajemy tutaj mniejsze prognozy niż pierwotnie przyjęte (20% i 12%), ale należy uwzględnić fakt, że retrasformacja z postaci liniowej do nieliniowej&amp;nbsp;powoduje pewien błąd w sytuacji, gdy wartość oczekiwana parametrów jest nieznana (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2016/10/smarujacy-estymator.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). Ta dodatkowa zmienność może jeszcze podnieść wartość. Niemniej model sugeruje szczyt w 2027 r., w efekcie spadki od 2028 r. W sumie możemy spodziewać się spowolnienia już od przyszłego roku.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/6428500612283014654/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2026/02/jak-bardzo-ai-przyspieszy-wzrost-zyskow.html#comment-form' title='Komentarze (5)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/6428500612283014654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/6428500612283014654'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2026/02/jak-bardzo-ai-przyspieszy-wzrost-zyskow.html' title='Jak bardzo AI przyspieszy wzrost zysków w kolejnych latach?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhck1w2NbGRI1ZAwa_U161q22HEKCAamWeXjxzXl3GaxbOMXmYKM-Z7GpfOpN2xD9rClmMVGQbo9i0UZ4IYvYArxIGDQNclZvtjIv0k5IWdYY50PzQ6i2bup2sGjN_qdItBkI9iRw2OEc2r0sKn7mVcUVGHTw5wgeX7rLx97wVjPr0if2aeswbonPfv/s72-w400-h234-c/rstudio_KHD0tH15ip.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7236833155314888884</id><published>2025-12-03T22:25:00.016+01:00</published><updated>2025-12-12T20:24:56.744+01:00</updated><title type='text'>Poziom WIG20 bardziej racjonalny niż sądziłem</title><content type='html'>&lt;p&gt;Dopóki nie miałem dość motywacji, by wnikliwie przeanalizować parametry wyceny WIG20 byłem absolutnie pewien, że mamy do czynienia z przewartościowaniem. Wychodzi jednak na to, że sprawa jest dużo bardziej złożona. Od razu mówię, że obecna wycena może nie być ostateczna, bo możliwe, że pewne (mniejsze lub większe) drobiazgi będę jeszcze poprawiał. Wycena jest na dzień 01.12.2025, kurs = 3007.41 pkt. Wartość wewnętrzna wychodzi w przedziale &lt;b&gt;2440-3010&lt;/b&gt;, tzn. indeks osiągnął górny pułap racjonalnej wyceny.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Przyczyny poprawy wyceny&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Przyczyną tej zmiany jest, najkrócej mówiąc, zrozumienie, że należy przyjąć niższą oczekiwaną stopę zwrotu. Sprawę tę wyjaśniłem w &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/11/historyczne-wyceny-wig20-okazuja-sie.html&quot; target=&quot;_blank&quot;&gt;poprzednim artykule&lt;/a&gt;, więc nie będę się tu o tym rozwodził. Jednocześnie myślę, że później trzeba będzie głębiej przyjrzeć się związkowi między oczekiwaną stopą zwrotu a oczekiwanym wzrostem dywidendy, bo dotychczas traktowałem je raczej jako niezależne od siebie. W każdym razie WIG20 ma niższy koszt kapitału od WIG o ok. 2 pkt proc. I te 2 procenciki wszystko zmieniają...&lt;/p&gt;&lt;p&gt;No dobra, może nie wszystko. Pisałem, że sprawa jest bardziej skomplikowana. Stopa dyskontowa to jedno, ale założenia ROE i EPS to drugie. To po kolei. Szczegółowa analiza wszystkich spółek WIG20 pozwala nie tylko sprawdzić, na ile obliczenia wskaźników przez GPW pokrywają się z moimi, ale też zobaczyć, które spółki są problematyczne (mają straty) i co się stanie, jeśli usuniemy te straty. Wyjaśniałem już, że w długim terminie spółki WIG20 nie mogą ponosić strat, bo zostałyby wyrzucone z indeksu i zastąpione zyskownymi. A nawet jeśli nie zostaną wyrzucone, to ich udział spadnie z powodu niskiej kapitalizacji i nie będą mieć większego wpływu na indeks. Z drugiej strony całkowite wyzerowanie strat też się mija z celem. Ktoś może argumentować, że jeśli straty są jednorazowe, to nie powinniśmy ich uwzględniać, bo wycenę tworzą jedynie przyszłe zyski. Ale przecież te przyszłe zyski są generowane przez kapitał własny, a ten został właśnie obniżony o te straty. Jeśli teraz wyzerujemy straty, to zawyżymy ROE, bo spadek KW będzie większy niż spadek sumarycznego EPS.&amp;nbsp; Mój pomysł polegał na utworzeniu tych oddzielnych wariantów wyceny, a następnie uśrednieniu założeń obu, uzyskując w ten sposób unikalny wariant. Nazywam go pierwszym, bo jest ustawiony w pierwszej kolejności i jest najważniejszy. Pozostałe dwa służą głównie do porównań.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Porównując wskaźniki z mojej analizy do tych oficjalnych, zauważymy, że C/WK są bardzo zbliżone (u mnie 1.55, oficjalne - 1.61), natomiast C/Z już trochę oddalone (14.93 vs. 15,67). Różnica w ROE jest zaniedbywalna (10.4 vs. 10.3). Do tego momentu wszystko się zgadza. Ale co się stanie, jeśli stworzymy czwarty wariant polegający na użyciu bieżącego EPS z tych oficjalnych danych, ale użyciu pozostałych parametrów? Otóż dostaniemy wartość wewnętrzną 2538 pkt. Natomiast pierwszy wariant&amp;nbsp;wskazał 3013.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Różnica między pierwszym a czwartym wariantem jest taka, że pierwszy mówi coś w rodzaju: &quot;biorę EPS ze wszystkich spółek, następnie biorę EPS tylko spółek bez strat, i uśredniam oba&quot;, a czwarty mówi: &quot;biorę EPS taki, jaki wychodzi z oficjalnego wskaźnika C/Z&quot;. Potem oba warianty biorą już te same uśrednione parametry.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;2 techniki czy 2 metody?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Fakt, że C/Z jest mocniej odchylone w mojej analizie od GPW oznacza, że poszczególne spółki mają wpisane inne zyski. Aby się upewnić, że poprawnie konstruuję indeks oraz jego wskaźniki, analizę (a właściwie syntezę) wykonałem dwiema różnymi technikami. W pierwszej wyłuskałem z portalu bankier.pl liczbę akcji, księgową kapitalizację (kapitał własny) i zysk z ostatnich 4-ch kwartałów. W drugiej technice wykorzystałem&amp;nbsp;&lt;a href=&quot;https://stooq.pl/q/i/?s=wig20&quot; target=&quot;_blank&quot;&gt;wskaźniki podane&amp;nbsp;przez stooq.pl&lt;/a&gt;. Najpierw spójrzmy sumarycznie: C/WK jest identyczne u obu, ale C/Z &quot;bankierowe&quot; jest znacznie niższe od &quot;stooqowego&quot; (14.9 vs. 17).&lt;/p&gt;&lt;p&gt;Głównym winowajacą tej różnicy jest Orlen. Otóż wg Stooq oraz GPW C/Z Orlenu wynosi 17, a u mnie 7.7. Ewidentnie coś tu jest nie tak. Zacząłem więc drążyć. Przejrzałem rzeczywiste sprawozdania. Okazało się, że zarówno Bankier, jak i Stooq mają rację. Bo tu wchodzimy w temat kreatywnej księgowości. Czwarty kwartał 2024 w sprawozdaniu faktycznie pokazuje duży zysk netto 4 664 000 tys. zł. Ale gdybyśmy dodali do niego pozostałe kwartały, dostalibyśmy więcej niż zysk za cały rok 2024! Ten paradoks powstaje w wyniku ogromnych odpisów ujawnionych dopiero na etapie rocznego sprawozdania (6,2 mld zł).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jak porównamy sobie np. kwartalne wyniki w Biznesradar, to zobaczymy, że zyski za 1-3 kw 2024&amp;nbsp; są takie same jak w Bankierze, ale za 4-ty kw jest strata 1,55 mld zł, a w Bankierze wspomniane 4,7 mld zysku. Bankier pokazuje oryginalne dane z raportu kwartalnego, a Biznesradar wrzuca odpis do ostatniego kwartału, aby wyrównać z danymi rocznymi.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Z księgowego punktu widzenia to Bankier prezentuje poprawne wyniki. Ale to Biznesradar oddaje pełny obraz sytuacji. Czyli fajnie tu widać różnicę między księgowym a inwestorskim punktem widzenia. Stooq oraz GPW podają więc C/Z dla Orlenu taki, jaki wynika inwestorskiej perspektywy.&lt;/p&gt;&lt;p&gt;I teraz pozornie wydaje się, że skoro podejście Stooq jest lepsze dla inwestora, to powinniśmy porzucić bankierową technikę. Ale znowu - zastanówmy się czy rzeczywiście te odpisy są tak ważne, by je umieszczać w EPS. To są jednorazowe zdarzenia, które nie mogą być traktowane na równi ze zwykłymi kosztami. Zresztą kurs Orlenu dowodzi, że inwestorzy już dawno &quot;przetrawili&quot; te straty. Jeśli mamy prognozować przyszłe C/Z, to prędzej to bankierowe (7,7) będzie przybliżać jego wartość.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ale, tak jak pisałem, nie można zupełnie pomijać jednorazowych strat, które mają negatywny wpływ na wartość poprzez niższy KW - niezależnie od tego czy ta strata jest czysto księgowa (papierowa / memoriałowa) czy kasowa. Zanim te odpisy nastąpiły, kupiono aktywa za pieniądze. Te pieniądze ktoś dał w dobrej wierze. Jeśli aktywa nie ma, to i zwrotu pieniędzy (z inwestycji) nie ma. Przecież cały kapitał własny opiera się na dobrej wierze inwestorów, że spółka zwróci w przyszłości im pieniądze i jeszcze wypłaci nadwyżkę - w postaci dywidend. Skoro tej przyszłości nie ma, to znaczy, że te pieniądze przepadły. Stąd papierowe zyski mają znaczenie dla wyceny.&lt;/p&gt;&lt;p&gt;Podsumowując tę część,&amp;nbsp;zrobiłem dwa arkusze z wyceną na ten sam dzień liczone inną techniką... czy może metodą? Żeby było jasne - technika to nie metoda. Przez technikę rozumiem sposób zdobywania danych, a przez metodę sposób obliczania wyników i wyceny, którego rdzeń stanowi jakaś filozofia podejścia. Metoda będzie się różnić w sensie założeń, a technika w sensie źródła danych. Przykładowo, bankierową techniką obliczałem C/Z mnożąc cenę zamknięcia przez liczbę akcji, i dzieląc to przez sumę zysków z 4-ch ostatnich kwartałów (dane z bankiera). Stooqowa technika pozwala od razu wpisać C/Z wprost z portalu. Natomiast metoda jest tu inna tylko w tym sensie, że zysk TTM (Trailing Twelve Months, tj. z 12-tu ostatnich miesięcy) uwzględnia (Stooq) lub nie uwzględnia (Bankier) różnic między raportem rocznym a kwartalnym.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Uśrednienie prognoz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Po głębszym przeanalizowaniu tej sprawy myślę, że jest sensowne wyciągnięcie średniej z tych dwóch arkuszy. Tego już tam nie pokazuję, więc tutaj o tym napiszę. W każdym arkuszu za najważniejszy uważam wariant 1 i 4. W technice bankierowej są to odpowiednio wartości 3013 oraz 2538. W technice stooqowej 2585 oraz 2443. Najpierw uśredniłbym 3013 z 2585, czyli dostajemy:&lt;/p&gt;&lt;p&gt;(3013 + 2585)/2 = 2800.&lt;/p&gt;&lt;p&gt;Następnie wyciągnę średnią 2538 i 2443:&lt;/p&gt;&lt;p&gt;(2538 + 2443)/2 = 2490.&lt;/p&gt;&lt;p&gt;Czy jest sens wyciąganie jeszcze średnich z tych liczb? Wydaje mi się to już trochę sztuczne, bo pierwsza wartość koncentruje się bardziej na przyszłości, natomiast druga (czyli oparta o oficjalne wskaźniki GPW) bardziej na teraźniejszości. Ta pierwsza&amp;nbsp;jest jakby bardziej nastawiona na to co będzie za jakiś czas, a ta druga bardziej na wycenę bieżącą (chociaż to taka luźna interpretacja).&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Przedział prognozy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Uzyskany przedział 2490-2800 jest bardzo umowny i należy go prędzej traktować jak średnią z przedziałów. Bo taki najbardziej konserwatywny wynik byłby na poziomie tego 2440, a najbardziej optymistyczny 3310.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBL-k_Q60ndz_oD-Uy9fQpvCj9W2C6HBlL7-Cd5y5HLeuxcmMlqmsIgVkKQ3wztzq60qgcXcn87Ry45bV3z7z7LAHfifE1wG2jqGyWkFnm36ZIT_2wdP5hS4tqrUptHfTTNB5dAvnvLpi5ifj78uH0DDd7L7KziEJfU5o9QqRaN_dM4qemy_XrDBG9/s1239/chrome_0GVDyMBth6.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;677&quot; data-original-width=&quot;1239&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBL-k_Q60ndz_oD-Uy9fQpvCj9W2C6HBlL7-Cd5y5HLeuxcmMlqmsIgVkKQ3wztzq60qgcXcn87Ry45bV3z7z7LAHfifE1wG2jqGyWkFnm36ZIT_2wdP5hS4tqrUptHfTTNB5dAvnvLpi5ifj78uH0DDd7L7KziEJfU5o9QqRaN_dM4qemy_XrDBG9/w400-h219/chrome_0GVDyMBth6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Rzecz jasna nie oznacza to, że WIG20 nie pójdzie jeszcze w górę, a jedynie, że każdy ruch powyżej obecnego poziomu rodzi coraz wyższe ryzyko (dla inwestora przesadnie duże). Przypomnę może wycenę vs. indeks w listopadzie roku 2017 (przy okazji - jakieś deja vu - znowu rok po rządach Trumpa):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4VG1SBCKyPhDq_IFI4IFqKokoxndgSp4W-543vgeK-WNeqX36UEL2mQEQ4ma7P2bJ6JhXZJ797em2-JVRUDza4-dw6gQCkjytfAqFajZ05-YmMsRe0ODKHmBmoF-i1u1jjkQzLm1ZGgL7-Zhl77GTjE_BCWLuDyDRczkEh_NIhxaiKkbELbZ04fT4/s1246/chrome_sdnchFfNti.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;671&quot; data-original-width=&quot;1246&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4VG1SBCKyPhDq_IFI4IFqKokoxndgSp4W-543vgeK-WNeqX36UEL2mQEQ4ma7P2bJ6JhXZJ797em2-JVRUDza4-dw6gQCkjytfAqFajZ05-YmMsRe0ODKHmBmoF-i1u1jjkQzLm1ZGgL7-Zhl77GTjE_BCWLuDyDRczkEh_NIhxaiKkbELbZ04fT4/w400-h215/chrome_sdnchFfNti.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Jest to jeden z możliwych scenariuszy.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1u1rgb2rxR-a_ydUOAkIt_6pY878rV-Ki/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;Link do wycen&lt;/a&gt;&amp;nbsp;- ten sam co poprzednio. Po prostu dorzuciłem dwa nowe arkusze z wycenami.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7236833155314888884/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/12/poziom-wig20-bardziej-racjonalny-niz.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7236833155314888884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7236833155314888884'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/12/poziom-wig20-bardziej-racjonalny-niz.html' title='Poziom WIG20 bardziej racjonalny niż sądziłem'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBL-k_Q60ndz_oD-Uy9fQpvCj9W2C6HBlL7-Cd5y5HLeuxcmMlqmsIgVkKQ3wztzq60qgcXcn87Ry45bV3z7z7LAHfifE1wG2jqGyWkFnm36ZIT_2wdP5hS4tqrUptHfTTNB5dAvnvLpi5ifj78uH0DDd7L7KziEJfU5o9QqRaN_dM4qemy_XrDBG9/s72-w400-h219-c/chrome_0GVDyMBth6.png" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-4202912002121495188</id><published>2025-11-30T12:44:00.012+01:00</published><updated>2025-11-30T19:15:13.084+01:00</updated><title type='text'>Historyczne wyceny WIG20 okazują się potwornie żmudne - nowe wnioski z analizy</title><content type='html'>&lt;p&gt;&amp;nbsp;Im dłużej poświęcam czas na historyczne wyceny WIG20, tym więcej zauważam przeszkód. Ogólnie można je podzielić na 5 grup. Pierwsza to wpływ takich operacji jak np. odcięcie dywidend i splity. Problem jest następujący. Powiedzmy, że spółka ogłasza, że wypłaci w danym roku bardzo dużą dywidendę. Kurs oczywiście rośnie. Ale wtedy wycena musiałaby dodać tę dywidendę bieżącą, dopóki nie ma odcięcia. W sukurs przychodzi stooq.pl, który ma domyślną opcję korygowania ceny przed zdarzeniem odcięcia - historycznie wszystkie ceny przed dniem odcięcia są pomniejszane o tę odcinaną dywidendę, dzięki czemu nie ma nagłych przeskoków cen, tak że wycena w oparciu o te skorygowane ceny przed odcięciem będzie uwzględniać już tylko przyszłe dywidendy. Analogicznie z innymi operacjami.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Skorygowane ceny na pierwszy rzut oka wydają się pełnym rozwiązaniem tego problemu. Ale pomyślmy głębiej. Cena w przeszłości jest korygowana o wszystkie dywidendy z przyszłości. Gdyby odcięcie dotyczyło tylko danego roku, nie byłoby problemu, bo wartość księgowa jeszcze w tym roku zostanie także skorygowana o tyle samo. Ale gdy cena jest korygowana o dywidendę za wszystkie kolejne lata, to powstaje kłopot, bo wartość księgowa będzie zawyżona w stosunku do ceny. Zarówno C/WK jak i C/Z będą za niskie. Skoro EPS uzyskuję przez odwrócenie C/Z i pomnożenie przez ceny WIG20 na dany dzień, to znaczy, że EPS będzie zawyżony, tak że wycena może okazać się zawyżona.&lt;/p&gt;&lt;p&gt;Z tym problemem wiąże się też inny - dostępność danych - jeżeli spółka została wycofana z giełdy, na Stooq już jej nie znajdziemy. Ceny starych spółek składu indeksu można znaleźć na gpwbenchmark.pl, ale tylko te faktyczne. Wszelkie operacje, jakie zaszły międzyczasie, są trudne do znalezienia.&lt;/p&gt;&lt;p&gt;Drugi (mniejszy) problem: trzeba pamiętać, że niektóre spółki nadal istnieją, ale zmieniły nazwę. Przykładem jest BZWBK, który obecnie nazywa się Santander Bank Polska. Na Stooq i w Bankierze więc będzie pod nową nazwą, ale w historii GPW będzie widniała stara nazwa. Tu powiem od razu, że irytuje mnie, że te serwisy nie konsolidują tych starych nazw z nowymi. Wystarczy przekierowanie ze starych na nowe. To chyba nie takie trudne?&lt;/p&gt;&lt;p&gt;Trzeci problem: wycena na bieżącym ROE okazuje się zgubna, gdy jest ono znacznie poniżej kosztu kapitału własnego. Okazuje się konieczne wyłuskanie średniej rentowności z przeszłości i na jej podstawie szacować przyszłość. Jeżeli jednak operujemy średnią ROE, to prowadzi to do kolejnego spostrzeżenia: aby wycena była spójna, koszt kapitału własnego musi też być średnią z przeszłości. Ja dotychczas operowałem bieżącymi szacunkami Damodarana.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Czwarty problem, który sobie niedawno uświadomiłem to fakt, że szacunki Damodarana dotyczą wszystkich branż, czyli powiedzmy WIG, a nie WIG20. Czyli dotychczas zakładana stopa zwrotu była za wysoka, co zaniżało wyceny.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Piąty problem: gdy największe spółki mają straty w danym roku, bieżący EPS zostaje tak zaniżony, że wycena okazuje się mało wiarygodna. Jeżeli spółka ma jednorazową stratę, to inwestorzy nie mogą zakładać, że we wszystkich kolejnych okresach będzie strata. Muszą zakładać, że będzie zysk, który będzie rósł. Dzieje się tak z dwóch powodów. Po pierwsze jednorazowa strata nie zwiastuje kolejnych. Oczywiście wiele zależy tu od określonych przyczyn i warunków sytuacji. Po drugie nawet jeśli spółka będzie miała wiele kolejnych strat z rzędu, to zostanie ona wykreślona z głównego indeksu: jej kapitalizacja spadnie, a zastąpi ją inna spółka. To jest zresztą istotny powód, dla którego lepiej inwestować w ETFy niż oddzielnie w każdą spółkę, jeśli nie mamy chęci / czasu na aktywne zarządzanie portfelem.&lt;/p&gt;&lt;p&gt;Teraz krótko omówię &quot;rozwiązanie&quot; każdego problemu.&lt;/p&gt;&lt;p&gt;Pierwszy problem rozwiązuję w ten sposób, że liczę wycenę dwukrotnie - raz z oryginalnymi cenami (bez korekt cenowych), a raz z korektą cen - jeżeli w ogóle jeszcze istnieją takie spółki na giełdzie (ponieważ niestety Stooq usuwa wycofane spółki ze swojej strony).&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Z tymi cenami bez korekt występuje też problem techniczny ze strony serwisów, jak bankier.pl czy biznesradar.pl.&amp;nbsp;W przypadku splitów lub scaleń zmieniają wstecznie historyczne liczby akcji w wynikach finansowych, co okazuje się w zasadzie błędem z ich strony, a przynajmniej dużą przeszkodą dla ścisłych (księgowych) analiz. Przykładowo PZU miał split w 2015 r., a więc liczba akcji powinna się zmienić, ale tego nie widać w tabelach wyników w tych serwisach. Dlatego&amp;nbsp; tam gdzie trzeba wyjątkowo ręcznie zmieniłem liczbę akcji przed splitem, żeby dostosować do ceny sprzed splitu. Zaznaczyłem takie operacje purpurowym kolorem z komentarzem.&lt;/p&gt;&lt;p&gt;Jeśli chodzi o drugi problem, to nie jest on trudny dla mnie, bo akurat pamiętam, które spółki zmieniały nazwę.&lt;/p&gt;&lt;p&gt;Trzeci problem wymagał ode mnie dużej pracy - najpierw wyłuskałem wszystkie ROE WIG20 od 2009 do 2024 roku. Oto efekt końcowy:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi15OswYnLPo4uY4xgIE0xTimk6EZ_D-pBdFa3DFnA7OFcDEH13TdgnWZ1DIfxrDPr-lIvuRBIeo58-Uu_PFzqY_6r10uLpGEQvR7j8U8Y_1STgSyFIq1Ci2ZwoHNsQqFOAafvm3AA5CN-Bzk877o5z05PBYhd4eO_mi8KAsgGuriESs0kX3CjbNzzg/s809/rstudio_zqUyqI0cK6.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;604&quot; data-original-width=&quot;809&quot; height=&quot;299&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi15OswYnLPo4uY4xgIE0xTimk6EZ_D-pBdFa3DFnA7OFcDEH13TdgnWZ1DIfxrDPr-lIvuRBIeo58-Uu_PFzqY_6r10uLpGEQvR7j8U8Y_1STgSyFIq1Ci2ZwoHNsQqFOAafvm3AA5CN-Bzk877o5z05PBYhd4eO_mi8KAsgGuriESs0kX3CjbNzzg/w400-h299/rstudio_zqUyqI0cK6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Średnie ROE wyniosło 10,1% i wydaje się mniej więcej utrzymywać na tym poziomie.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Następnie wyciągnąłem historyczne premie za ryzyko dla Polski od 2006 do 2024 wg szacunków Damodarana. Na koniec została najprostsza sprawa - premia za czas, tj. historyczne rentowności 10-letnich obligacji skarbowych. Suma obydwu premii daje koszt kapitału własnego.&lt;/p&gt;&lt;p&gt;No i tu dochodzimy do czwartego problemu. Szacunki Damodarana dotyczą kosztu kapitału dla całego kraju - wszystkie branże są brane pod uwagę. Czyli bardziej prawidłowo to jest dla WIG, a nie WIG20. Wydawałoby się, że skoro WIG20 zawiera więcej ryzyka politycznego (które raczej nie jest dywersyfikowalne), to suma sumarum oba indeksy mogą mieć zbliżoną oczekiwaną stopę zwrotu. Okazuje się jednak, że ryzyko polityczne nie kompensuje w całości ryzyka małych spółek. WIG daje większy zwrot. Dokładniej rzecz biorąc, porównałem WIG20TR (czyli WIG20 + dywidendy) z WIG i oto co dostałem:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyBc7XGmglkgOIkn2h6Wg6nb2_vba91hMxMkRLouGLNACdf2QI93tLyUKuEk9MjjGpYP9AFxW3lctCHb1p5DZZpeI1kF0DETB1J2SlJcIM7_TRxRgvdfyGV-OdmN-CUpv1guGcyccOkyBlJA7VDcJykZo6IWC0__Ew2suvk85f3xHVyzJxPDqRTS73/s809/rstudio_ghb1qucTeo.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;595&quot; data-original-width=&quot;809&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyBc7XGmglkgOIkn2h6Wg6nb2_vba91hMxMkRLouGLNACdf2QI93tLyUKuEk9MjjGpYP9AFxW3lctCHb1p5DZZpeI1kF0DETB1J2SlJcIM7_TRxRgvdfyGV-OdmN-CUpv1guGcyccOkyBlJA7VDcJykZo6IWC0__Ew2suvk85f3xHVyzJxPDqRTS73/w400-h294/rstudio_ghb1qucTeo.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Czyli WIG rośnie średniorocznie szybciej od WIG20TR o prawie 2 pkt proc. To rzeczywiście sporo, trzeba przyznać. Po prostu małe i średnie spółki są bardziej ryzykowne i inwestorzy wymagają większego zwrotu kapitału.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Tak więc okazuje się, że dotychczas zawyżałem koszt kapitału WIG20 o te 1,9 pkt proc.&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Gdyby odjąć aż 1,9 pkt proc, to powinienem przyjąć zaledwie 9% oczekiwanej stopy zwrotu To nie za mało? Na wszelki wypadek sprawdziłem za pomocą testu CUSUM zmianę średniej różnicy, ale ewidentnie mamy tu losowe odchylenia:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgXy5O68uqIUmD2kCqRonM3wMNNb46BnBqvbYpCpOG5Efq95FMd3yyj2dvOSp7ekgHGTkhmN8LrUHxFMd8jIgOfKhiMvsGwhnqur_Lk0kfjq1eq-MI2eNGUl_ccj3f3WxS_oA3MwbzIzwmjZykhycxLixe_4VRm7TAE4rddUm572xrg_C2LmHr6kwA/s762/rstudio_OGL0Psirle.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;557&quot; data-original-width=&quot;762&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgXy5O68uqIUmD2kCqRonM3wMNNb46BnBqvbYpCpOG5Efq95FMd3yyj2dvOSp7ekgHGTkhmN8LrUHxFMd8jIgOfKhiMvsGwhnqur_Lk0kfjq1eq-MI2eNGUl_ccj3f3WxS_oA3MwbzIzwmjZykhycxLixe_4VRm7TAE4rddUm572xrg_C2LmHr6kwA/s320/rstudio_OGL0Psirle.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Średnia różnica jest stabilna, czyli muszę po prostu przyjąć, że WIG20 ma niższy koszt kapitału (r) z powodu blue chipów. Dlatego ustalam, że r jest równy kosztowi kapitału dla Polski (lub WIG) minus 1,9 pkt proc. Wtedy wykres dla r kształtuje się następująco:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7gMzZB7wjn0ZxvCGCJQiTtgi64vy8LGZo_a2NWfF7ZyNI6zmf9UJ-DYyMU-IDgmNCe5o2Avuf4AbrxFio-Lj34L_6edLt7S5ZWxW_lTAo-q7piFtpbMsoaBeGfVTB9JifZ95aLup-Xj6N-qZyaoqj2-jl-LZx4cDlOZ_z8hpp_Kir0MRM3dAtFpT5/s809/rstudio_QSpfkISBhO.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;577&quot; data-original-width=&quot;809&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7gMzZB7wjn0ZxvCGCJQiTtgi64vy8LGZo_a2NWfF7ZyNI6zmf9UJ-DYyMU-IDgmNCe5o2Avuf4AbrxFio-Lj34L_6edLt7S5ZWxW_lTAo-q7piFtpbMsoaBeGfVTB9JifZ95aLup-Xj6N-qZyaoqj2-jl-LZx4cDlOZ_z8hpp_Kir0MRM3dAtFpT5/w400-h285/rstudio_QSpfkISBhO.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Jeżeli WIG20 płaci tylko 9%, to znaczy, że ROE &amp;gt; r, a to wyjaśnia dlaczego C/WK &amp;gt; 1 (średnia z lat 2006-2024 to 1,49).&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Trzeba zauważyć, że średnia ROE i r będą się zmieniać z roku na rok, bo wycena jest na dany dzień historyczny, a więc zawiera dane do ostatniego dostępnego roku. Chodzi o to, aby uzyskać faktyczne wyceny z przeszłości, a nie sztucznie dopasowywać do nowych danych.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Zostaje piąty problem. Proponuję robić 3 warianty.&amp;nbsp;Pierwszy jest najważniejszy i polega na uśrednieniu dwóch kolejnych wariantów. Nie chodzi tu o sztuczną średnią z wycen, ale z założeń. I tak, drugi wariant uwzględnia wszystkie bieżące zyski i straty, a także wszystkie bieżące parametry (ROE, r itd.). Dlatego ten wariant nazywam &quot;Wg danych bieżących&quot;. Trzeci wariant nazywa się &quot;Wg danych uśrednionych&quot;: zeruje straty dla obliczenia EPS oraz uśrednia parametry z poprzednich lat. Usuwanie strat nie polega na usuwaniu wartości księgowej ani kapitalizacji spółek ze stratami, a jedynie wynik netto zamiast być stratą, stanie się zerem, co technicznie wdrażam przez sumę warunkową (wartość większa od zera).&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przy tych założeniach mam następujące wnioski:&lt;/div&gt;&lt;div&gt;1. Im bliżej teraźniejszości, tym znacznie lepiej używać cen bez korekt, a im dalej w przeszłość, tym lepiej sprawdza się wycena po cenach z korektami. Zrobiłem wyceny na 30.10.2015, 18.11.2016, 17.11.2017, 19.11.2021 i 18.11.2022. Prześledzę krótko te wyceny:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;30.10.2015: Cena zamknięcia 2060,0 pkt. Powiedzmy środek bessy. Wycena bez korekt (wariant 1): 1667 pkt, czyli całkowite dno, które zostanie wydrążone po prawie roku. Wycena z korektami: wariant 1 daje 2286 pkt, czyli bieżący kurs byłby poniżej tej wartości. Najbliżej kursu był wariant 2, bo wskazał&amp;nbsp;&amp;nbsp; 1954 (odchylenie ledwo -5%).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;18.11.2016: Cena zamknięcia 1725,74 pkt. Było to prawie dno bessy. Wycena bez korekt (wariant 1): 941,78 pkt, czyli mocna przesada. Wycena z korektami (wariant 1): &amp;nbsp; 1179 pkt, czyli bieżący kurs byłby powyżej tej wartości o 32%. Innymi słowy można było się spodziewać dalszych spadków, a mimo to rozpoczęła się hossa. Jedynie wariant 3 wskazał prawidłową wycenę (1788 pkt).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;17.11.2017: Cena zamknięcia 2443,83 pkt. Był to szczyt hossy. Wycena bez korekt (wariant 1): &amp;nbsp; 2354 pkt, czyli niemal w punkt. Wycena z korektami (wariant 1): 2891, tzn. zawyżona co najmniej o 18%.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;19.11.2021: Cena zamknięcia 2248,18 pkt. Był to szczyt hossy. Wycena bez korekt (wariant 1): 3851 pkt, czyli mocne przeszacowanie. Wycena z korektami (wariant 1): nie ma nawet sensu wspominać, bo grubo ponad 4000. Można najwyżej wspomnieć o wariancie 3: 3281 pkt, czyli co najmniej 46% za dużo. Powinniśmy się więc byli spodziewać kontynuacji hossy, tymczasem dostaliśmy za chwilę gwałtowny zjazd. Trzeba tu jednak przypomnieć, że przyczyna była bardziej przypadkowa i niezależna od czynników ekonomiczno-finansowych: wojna na Ukrainie. Gdyby nie to, zapewne rynek byka by się utrzymał. To też nauczka, że &quot;czarny łabędź&quot; wcale nie musi być taki rzadki (półtora roku wcześniej była pandemia).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;18.11.2022: Cena zamknięcia 1707,23 pkt. Był to początek hossy. Wycena bez korekt (wariant 1): &amp;nbsp; 2601 pkt, czyli 52% wyżej. Kurs dotarł tam, ale dopiero po 2,5 latach. Trochę bardziej wiarygodna była wycena wariantu 3: 2334 pkt, którą indeks osiągnął po ok. roku. Wyceny z korektami są zdecydowanie przesadzone.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2t79I-lYBhbar0ZZD4ZpQbThb6610ljdJugrcXPJSMkkKQvrrBUT4uqSF57EHN7LPewO-hhLNxHJEQjD3DetaDuNQ2XNcegFBOTAw-8ehu59Nc7zng3hoFq297kQmpWG79YHySQ_wMH8pi3fQ5V9VzxfIHWQArdPMJmLZc0x7S3g5agJjEcwLOtKc/s1261/chrome_nbLxLZxH92.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;621&quot; data-original-width=&quot;1261&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2t79I-lYBhbar0ZZD4ZpQbThb6610ljdJugrcXPJSMkkKQvrrBUT4uqSF57EHN7LPewO-hhLNxHJEQjD3DetaDuNQ2XNcegFBOTAw-8ehu59Nc7zng3hoFq297kQmpWG79YHySQ_wMH8pi3fQ5V9VzxfIHWQArdPMJmLZc0x7S3g5agJjEcwLOtKc/w400-h198/chrome_nbLxLZxH92.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Przy tych nowych założeniach dużą rolę zaczyna odgrywać współczynnik zatrzymania. Za bieżący współczynnik przyjmowałem średnią z ostatnich 2 lat, a więc można nim trochę kalibrować i dostosowywać, tak by wycena się bardziej &quot;zgadzała&quot;. Jednak przypomnę, że, jak pokazałem w &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/03/jaka-piekna-katastrofa.html&quot; target=&quot;_blank&quot;&gt;tym wpisie&lt;/a&gt;, EPS WIG20 stoi w miejscu od 2007 r.:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifWPRPmmIecFl-_95w_tRipMlruF7dLSy4OYtHCpxqoK3VpduL7gKQGZBjyfQu2Kz95cX9quV_XVHeVSqgQM0cqCO6agh4CukSAa-WK21T19jihtflYKLwsDElyr7nq2S5QVt0p4VE4ZxpNtnJmNmJbHeib_Ber1x7lUPeSlFI95GHoToKzVQQSLZo/s805/rstudio_4hjcLRMAhg.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;526&quot; data-original-width=&quot;805&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifWPRPmmIecFl-_95w_tRipMlruF7dLSy4OYtHCpxqoK3VpduL7gKQGZBjyfQu2Kz95cX9quV_XVHeVSqgQM0cqCO6agh4CukSAa-WK21T19jihtflYKLwsDElyr7nq2S5QVt0p4VE4ZxpNtnJmNmJbHeib_Ber1x7lUPeSlFI95GHoToKzVQQSLZo/w400-h261/rstudio_4hjcLRMAhg.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Na marginesie nie ma znaczenia, że Stooq błędnie wylicza C/Z dla indeksu (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/08/policzmy-w-koncu-poprawnie-wskazniki.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;), z którego wyliczałem EPS, bo chodzi tu wyłącznie o zmianę poziomów, a nie sam poziom. Ponieważ wzrost zależy od tego, ile zatrzymamy zysku, to widzimy, że nie możemy dowolnie ustawiać współczynnika zatrzymania.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oczywiście ktoś obeznany w temacie może zauważyć, że zatrzymany zysk może być kompensowany większym nabyciem akcji własnych, ale nie ma znaczenia co jak nazwiemy czy jaką mechanikę zastosujemy, bo liczy się odpowiednio rosnąca dywidenda, a nie precyzyjna proporcja zatrzymania zysku. A dywidenda z kolei rośnie mniej więcej tak jak WIG20, co można sprawdzić analizując stopę dywidendy WIG20 (dane historyczne dostępne w Stooq). Spójrzmy na ten rysunek:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM3GJjOm7Hr259VlM6Kp5YDZWING_s4Xu0hWIJJW_p9pOQnzT0mt2i8r8iIDlpe1hVvzaAbq01AvecAf8Sn6hDnm7S42ShGVrt29_RRh7QpKsvXwZex2f-amadEDawwNknpzcFKTDhX7YADOaxRiHkh6f8j1QiDrKYTuwS235NoX1bbeEDE69EngKL/s806/rstudio_ryBAOsbo1Z.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;587&quot; data-original-width=&quot;806&quot; height=&quot;291&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM3GJjOm7Hr259VlM6Kp5YDZWING_s4Xu0hWIJJW_p9pOQnzT0mt2i8r8iIDlpe1hVvzaAbq01AvecAf8Sn6hDnm7S42ShGVrt29_RRh7QpKsvXwZex2f-amadEDawwNknpzcFKTDhX7YADOaxRiHkh6f8j1QiDrKYTuwS235NoX1bbeEDE69EngKL/w400-h291/rstudio_ryBAOsbo1Z.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Skoro średnia - niecałe 3% - jest dość stabilna (przy okazji w następnych latach stopa będzie pewnie spadać w ramach regresji do średniej, przynajmniej stopniowo), to znaczy, że dywidenda zmienia się właśnie w tempie WIG20. Problem polega na tym, że główny indeks nie pokonał nawet szczytu z 2007 r. Jednak od 2000 r. średnio rośnie on w tempie 3,4% (w sumie to tempo inflacji). Dlatego, skoro wiemy, że średnie ROE = 10,1%, to ok. 34% tej rentowności można traktować jako substytut współczynnika zatrzymania (10%*0.34 = 3,4%). Tak więc moje szacunki pokrywają się z pośrednio wyliczoną wartością tego współczynnika. Dla niektórych lat przyjmowałem 47-50%, co może być trochę za dużo (bo daje to 5% wzrostu), ale akurat taką średnią 2-letnią dostałem i myślę, że można do takiego poziomu podnieść w czasach hossy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Chociaż trudno mi się pogodzić z r = 9%, to mam z tyłu głowy, że towarzyszy mu właśnie niski wzrost dywidendy. W modelu Gordona mamy r = d + g, gdzie d to stopa dywidendy i powinna być równa 2,9%, a g to wzrost dywidendy, który wychodzi 3,4%. Razem to 6,3%, czyli faktycznie mamy nadwyżkę 2,7%. Ta nadwyżka wynika z faktu, że parametry, których używam w modelu nie są zupełnie stałe, ale są zmiennymi losowymi, tak że do wzoru r = d + g należy dodać&amp;nbsp;korektę związaną z wariancją. Na ten temat chciałbym bardziej szczegółowo napisać oddzielny artykuł.&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Link do pełnej analizy znajduje się &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1u1rgb2rxR-a_ydUOAkIt_6pY878rV-Ki/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;. Niedługo dodam tam bieżącą wycenę WIG20. Nie chcę mieszać jej z historycznymi wycenami, dlatego napiszę o tym osobny wpis.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/4202912002121495188/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/11/historyczne-wyceny-wig20-okazuja-sie.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/4202912002121495188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/4202912002121495188'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/11/historyczne-wyceny-wig20-okazuja-sie.html' title='Historyczne wyceny WIG20 okazują się potwornie żmudne - nowe wnioski z analizy'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi15OswYnLPo4uY4xgIE0xTimk6EZ_D-pBdFa3DFnA7OFcDEH13TdgnWZ1DIfxrDPr-lIvuRBIeo58-Uu_PFzqY_6r10uLpGEQvR7j8U8Y_1STgSyFIq1Ci2ZwoHNsQqFOAafvm3AA5CN-Bzk877o5z05PBYhd4eO_mi8KAsgGuriESs0kX3CjbNzzg/s72-w400-h299-c/rstudio_zqUyqI0cK6.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-2527075682146260166</id><published>2025-10-10T05:25:00.015+02:00</published><updated>2025-10-17T18:21:29.234+02:00</updated><title type='text'>Prognozowanie ROE S&amp;P 500</title><content type='html'>&lt;p&gt;Jest oczywiste, że nawet jeśli dałoby się dokładnie przewidzieć księgowe zyski czy rentowności spółek, to nie oznacza jeszcze, że możemy przewidzieć choćby kierunek ich ceny. Jak się zastanowić, to paradoksalnie właśnie ich losowość pomaga w prognozie. Bo to jak usuwanie sezonowości z danych - jeśli wiadomo, że w danym sezonie zawsze są lepsze/gorsze wyniki, to nie będzie on miał wpływu na ceny, bo rynek uwzględnia w cenie takie zależności. Warunkiem jest pewność tej sezonowości, bo jeżeli sezonowość zaczyna się wahać, okazuje się nieregularnym cyklem, to nie usuwamy jej i wchodzi w grę możliwość wykorzystania jej do przewidywania kierunku. Powiedzmy, że mamy model wskazujący, że ROE wzrośnie w następnym roku. W teorii oznacza to, że rynek powinien to uwzględnić poprzez wyższą wycenę akcji, ale w praktyce występują różne korekty, w tym przypadku spadkowe, które można wykorzystać do kupienia, aby sprzedać później po tej wyższej cenie.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Warto na początku pokazać relację między rocznymi stopami zwrotu a zmianami ROE S&amp;amp;P 500&amp;nbsp;od 1981 r. do 2024:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgacvVGymypcTcv-jM02WZifTZzmY42j60paa7bx8n7qsypbZf0YxZO4m4G3LJ-Y-Od49Y-fNFC-D281WO9Bjq-luWEg9ToNmbnj207AOglD0JCpYsDkh0UvX3Va_B_vQQR_VfPXmqwzCnpZI-xz1nkR4LOnPlBJvY5jCP_lKt-7KgaWURC5Z2i9cP0/s774/rstudio_HeQIeaRpsO.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;539&quot; data-original-width=&quot;774&quot; height=&quot;279&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgacvVGymypcTcv-jM02WZifTZzmY42j60paa7bx8n7qsypbZf0YxZO4m4G3LJ-Y-Od49Y-fNFC-D281WO9Bjq-luWEg9ToNmbnj207AOglD0JCpYsDkh0UvX3Va_B_vQQR_VfPXmqwzCnpZI-xz1nkR4LOnPlBJvY5jCP_lKt-7KgaWURC5Z2i9cP0/w400-h279/rstudio_HeQIeaRpsO.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Dane ROE od 1980 r. wyłuskałem z dwóch źródeł:&amp;nbsp;&lt;/p&gt;&lt;p&gt;1) raport &quot;Economic and Capital Markets Analysis: 2023 Year in Review U.S. Chartbook&quot; opracowany przez batesgroup.com, s. 19;&lt;/p&gt;&lt;p&gt;2)&amp;nbsp;https://www.multpl.com/sitemap&lt;/p&gt;&lt;p&gt;Ten pierwszy pokazuje na wykresie historyczne P/BV indeksu od 1980. Aby uzyskać ROE, podzieliłem P/BV przez P/E, które z kolei dostałem z tego drugiego źródła. Z niego także dostaniemy P/BV, ale od 1999 r. Dlatego do 1998 mam szacunkowe ROE, a od 1999 już dokładne. To opracowanie historyczne ROE wraz z analizą udostępniam &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1e3JRXT4-H2-1vL8JGkDaSCB7pV_JNN8D/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;. Poniżej końcowy wykres:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP-6gwz4HmAxDeaPYDFplwJTgmwAi0RphNadnFV7zgtzmbyZRUUlA0oi9Vda0x0ITSPMTEBBq5ZifF5Bdy4fWw827-P_ptDaZQdtQ3hQMgPAxfGb802DZLQd5ADsPy1CZvVB0iyFyRmNcKo_xnflNoa89CgoVQ1JZBkluxAuqKEA3bWNq_wYr94ia1/s779/EXCEL_45JsioJ8TW.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;490&quot; data-original-width=&quot;779&quot; height=&quot;251&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP-6gwz4HmAxDeaPYDFplwJTgmwAi0RphNadnFV7zgtzmbyZRUUlA0oi9Vda0x0ITSPMTEBBq5ZifF5Bdy4fWw827-P_ptDaZQdtQ3hQMgPAxfGb802DZLQd5ADsPy1CZvVB0iyFyRmNcKo_xnflNoa89CgoVQ1JZBkluxAuqKEA3bWNq_wYr94ia1/w400-h251/EXCEL_45JsioJ8TW.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To co się rzuca w oczy, to niezwykle niskie ROE w latach 80-tych (5-6%). Jednak jak sprawdzimy, P/E wynosił wtedy ok. 10-11, czyli 3 razy mniej niż obecnie. Ale ROE obecne jest też ponad 3x większe. Czyli wszystko się zgadza.&lt;/p&gt;&lt;p&gt;Tak jak pisałem &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/09/ile-powinien-kosztowac-wig20-trzy-lata.html&quot; target=&quot;_blank&quot;&gt;poprzednio&lt;/a&gt;, ROE bywa rożnie definiowane. Z punktu widzenia wyceny interesuje nas postać EPS / BV * (1+w), gdzie w to tempo wzrostu EPS w następnym roku (lub oczekiwane w danym roku). Mógłbym oczywiście rozbić te wszystkie czynniki i sprawdzać oddzielnie, może nawet do jakichś interesujących wniosków bym doszedł, ale nie chcę komplikować analizy, dlatego będę prognozować w całości taką zmienną i będę ją nazywał po prostu ROE. Oprócz wspomnianej poprawności teoretycznej zaletą tego podejścia jest uwzględnienie jednocześnie rentowności i wzrostu zysku.&lt;/p&gt;&lt;p&gt;Chociaż rok 2025 jeszcze nie minął, to są prognozy EPS S&amp;amp;P 500 na ten rok. Np. &lt;a href=&quot;https://ycharts.com/indicators/sp_500_earnings_per_share_forward_estimate&quot; target=&quot;_blank&quot;&gt;na tej stronie&lt;/a&gt;&amp;nbsp;podane są kwartalne prognozy i sumarycznie przewiduje się 239 dol. Byłby to wzrost o 14,5%. Zakładając obecne wskaźniki P/E i P/BV, w = 14,5%, ROE(2025) = 20,3%. W sumie dostalibyśmy następujący wykres:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyp2B5UTWGC5Hat1ItMN1nurukypHcfpWGxyd6Re_qIAJJR1C8uOieKuE0ba_74InFqSY8xmyE3yts3okcWTUNtDj-GBYtMOy-ZwcFOg9fgbQ9Bg20yhB1IoDVs7kRaVY3ow4OFNrHJKMFjiNx3vL56xan0HgAlCtn-m7Vp02_Cewdt_fhgjvRVd-x/s838/EXCEL_GhOq6VZwbd.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;486&quot; data-original-width=&quot;838&quot; height=&quot;233&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyp2B5UTWGC5Hat1ItMN1nurukypHcfpWGxyd6Re_qIAJJR1C8uOieKuE0ba_74InFqSY8xmyE3yts3okcWTUNtDj-GBYtMOy-ZwcFOg9fgbQ9Bg20yhB1IoDVs7kRaVY3ow4OFNrHJKMFjiNx3vL56xan0HgAlCtn-m7Vp02_Cewdt_fhgjvRVd-x/w400-h233/EXCEL_GhOq6VZwbd.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Wszystkie poniższe kody są zapisane w języku R. Ładowane są pakiety: forecast, tseries, lmtest oraz strucchange.&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Luka PKB jako zmienna niezależna&lt;/span&gt;&lt;/p&gt;&lt;p&gt;ROE można próbować prognozować za pomocą zmiennych różnych ekonomicznych, jak wzrost PKB, inflacja lub stopa procentowa. Wszystkie te zmienne są ze sobą powiązane, zatem nie możemy ich wrzucać po prostu do modelu, jakby były niezależne. Zamiast tworzyć skomplikowane modele, możemy zauważyć, że pewnym pośrednikiem tych zmiennych jest luka PKB. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/09/fed-powinien-podnosic-nie-obnizac-stop.html&quot; target=&quot;_blank&quot;&gt;Ostatnio pisałem&lt;/a&gt; o tym, że FED powinien podnosić stopę procentową, aby zmniejszyć lukę, która jest wyraźnie dodatnia. Wiemy, że FED zachował się politycznie pod dyktando Trumpa - w związku z tym inflacja wzrośnie, choćby z powodu nakładanych ceł, które nie zostaną skompensowane niższą stopą proc.&lt;/p&gt;&lt;p&gt;Nakładając wykres luki PKB na ROE, dostajemy zaskakującą korelację:&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xRAwAyIW_EtxVa2M_w3XNw6mez-3OrOAUPn1whFIUY8_QKqQQcPkhx6q39gqtK1Shsv42eNeI_yXpcW4OnnaYv6isu5LJCP2tggrveZjxfCAth3jaYU_N76Nkmgc_gpJbwwxxTTq-rHh9N-QmTJ8qFQs7cj52WXNkg7vAgSl5CHSHbp9kPNVTDLK/s788/rstudio_y4ZsAuqMl1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;535&quot; data-original-width=&quot;788&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xRAwAyIW_EtxVa2M_w3XNw6mez-3OrOAUPn1whFIUY8_QKqQQcPkhx6q39gqtK1Shsv42eNeI_yXpcW4OnnaYv6isu5LJCP2tggrveZjxfCAth3jaYU_N76Nkmgc_gpJbwwxxTTq-rHh9N-QmTJ8qFQs7cj52WXNkg7vAgSl5CHSHbp9kPNVTDLK/w400-h271/rstudio_y4ZsAuqMl1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;W sumie korelacja wynosi 55%. Jednak obie zmienne mogą być niestacjonarne (test ADF tak sugeruje), a wtedy taka korelacja jest wątpliwa. Trzeba je sprowadzić do stacjonarności. Okazuje się, że po tym przekształceniu korelacja zostaje zachowana (54,4%). W dodatku ujawnia się wtedy ujemna korelacja (-0,37) z opóźnionym ROE:&lt;div&gt;ccf(zmianyLuka, zmianyRoe)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-Lo67MYWpF3kYiu1blA4Y_C7pgYfM-CaO4hyPl-6GCxbSdCz7H_2N4ZlDmmKgVvLgkrcxlr9JTn8HRQKhThvpaSWkjeAdrEnFgSaDr27Mlf7sw1OBk2xHssBSzXSWOR0MorRWiqxd2ReKqH0n7Q24dHgY0aH8pqjYu3SwONmiVKCA_yZcSeeq4KEu/s754/rstudio_ItB8LWyqsx.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;609&quot; data-original-width=&quot;754&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-Lo67MYWpF3kYiu1blA4Y_C7pgYfM-CaO4hyPl-6GCxbSdCz7H_2N4ZlDmmKgVvLgkrcxlr9JTn8HRQKhThvpaSWkjeAdrEnFgSaDr27Mlf7sw1OBk2xHssBSzXSWOR0MorRWiqxd2ReKqH0n7Q24dHgY0aH8pqjYu3SwONmiVKCA_yZcSeeq4KEu/s320/rstudio_ItB8LWyqsx.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Oznaczałoby to, że jeżeli w danym roku luka rośnie, to ROE rośnie i w następnym roku ROE spada albo rośnie wolniej. Analogicznie w przypadku zmniejszenia się luki. Dodatnia korelacja jest dość oczywista - wyższe lub niższe ROE odzwierciedla stan gospodarki (wzrost PKB oraz w jakimś stopniu inflację). Trudniejsza do wyjaśnienia jest ta ujemna opóźniona reakcja. Najpierw wykonamy &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2023/08/przyczynowosc-w-sensie-grangera-test.html&quot; target=&quot;_blank&quot;&gt;test Grangera&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;background-color: white; color: blue; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;background-color: white; color: blue; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px;&quot;&gt;grangertest(x=zmianyLuka, y=zmianyRoe, order=1)&lt;/span&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Granger causality test

Model 1: zmianyRoe ~ Lags(zmianyRoe, 1:1) + Lags(zmianyLuka, 1:1)
Model 2: zmianyRoe ~ Lags(zmianyRoe, 1:1)
  Res.Df Df     F Pr(&amp;gt;F)  
1     40                  
2     41 -1 4.439 0.0415 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;, który potwierdza, że to nie przypadkowa korelacja, ale przyczynowość (luka jest wcześniej). Następnie zbudujemy liniowy model z opóźnieniem zmian ROE i zbadamy i jego stabilność&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; line-height: 16px; margin: 0px; outline-offset: -1px; outline: rgb(138, 169, 219) none 2px; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; line-height: 16px; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&amp;gt; &lt;span style=&quot;color: blue; font-family: Lucida Console, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;zmianyRoe_ts &amp;lt;- ts(zmianyRoe, start = 1982)  
&lt;/span&gt;&lt;/span&gt;&amp;gt; &lt;span style=&quot;color: blue; font-family: Lucida Console, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;zmianyLuka_ts &amp;lt;- ts(zmianyLuka, start = 1982)&lt;/span&gt;&lt;/span&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;zmianyRoe_ts1 &amp;lt;- window(zmianyRoe_ts, start = 1983)  
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;zmianyLuka_ts1 &amp;lt;- window(zmianyLuka_ts, start = 1982, end = 2024)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;modelRoe &amp;lt;- zmianyRoe_ts1 ~ zmianyLuka_ts1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;bai = breakpoints(modelRoe)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;bai
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	 Optimal 2-segment partition: 

Call:
breakpoints.formula(formula = modelRoe)

Breakpoints at observation number:
24 

Corresponding to breakdates:
2006 &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style=&quot;color: blue; font-family: Lucida Console, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2022/11/wielokrotna-zmiana-struktury-modelu.html&quot; target=&quot;_blank&quot;&gt;Test Bai-Perrona&lt;/a&gt; wskazuje na zmianę struktury w 2006 r. Sprawdźmy jak zmieniają się współczynniki:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;coef(bai)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;            (Intercept) zmianyLuka_ts1
1983 - 2006    0.562118      0.0796585&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px;&quot;&gt;2007 - 2025    0.241999     -2.1666214&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Wg testu do 2006 r. ujemna zależność w ogóle nie istniała. Żeby się upewnić czy przyczyną nie jest jakiś inny efekt jak autokorelacja reszt, kwadratów reszt czy heteroskedastyczność wykonujemy kilka testów:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;reszty &amp;lt;- resid(lm(modelRoe))
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;# autokorelacje reszt:
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;bgtest(modelRoe, order = 2)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Breusch-Godfrey test for serial correlation of order up to 2

data:  modelRoe
LM test = 3.643, df = 2, p-value = 0.162

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;Box.test(reszty, type = &quot;Ljung-Box&quot;)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Box-Ljung test

data:  reszty
X-squared = 0.1114, df = 1, p-value = 0.739

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;# autokorelacje kwadratów reszt:
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;Box.test(reszty^2, type = &quot;Ljung-Box&quot;)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Box-Ljung test

data:  reszty^2
X-squared = 0.4259, df = 1, p-value = 0.514

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;# heteroskedastyczność
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;bptest(modelRoe)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	studentized Breusch-Pagan test

data:  modelRoe
BP = 2.145, df = 1, p-value = 0.143

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;gqtest(modelRoe) 
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Goldfeld-Quandt test

data:  modelRoe
GQ = 0.9562, df1 = 20, df2 = 19, p-value = 0.54
alternative hypothesis: variance increases from segment 1 to 2

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;hmctest(modelRoe)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Harrison-McCabe test

data:  modelRoe
HMC = 0.4871, p-value = 0.504&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Żaden z tych testów nie wykrył problemów z resztami, a zatem zmiana struktury wydaje się faktem. Ostatni test, jaki warto przeprowadzić, aby się upewnić, że zmiana struktury dotyczy współczynnika kierunkowego, a nie wyrazu wolnego, to &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2023/06/jak-sprawdzic-stabilnosc-kazdego.html&quot; target=&quot;_blank&quot;&gt;Score-CUSUM&lt;/a&gt;, oddzielający graficznie możliwe załamanie w każdym współczynniku:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ4iMzsx7T4NI-wbFmne1ypWYswXhD-UmHvK7QJrVogg1DzoTz1lK3e9xKK73HlRv6AiRC2NWfU-AyJ7MjIJ32_wEriDWZ5kQfzywOfCZnFwpKxJ-rbkpba4uxEDTisHoSKdaHmm9XuBZPhrhgGyI93BbM6LkylRSKMFnYVGiXY8BtI4_ncpxLTZ1A/s835/rstudio_hPVAlRcQ6C.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;566&quot; data-original-width=&quot;835&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ4iMzsx7T4NI-wbFmne1ypWYswXhD-UmHvK7QJrVogg1DzoTz1lK3e9xKK73HlRv6AiRC2NWfU-AyJ7MjIJ32_wEriDWZ5kQfzywOfCZnFwpKxJ-rbkpba4uxEDTisHoSKdaHmm9XuBZPhrhgGyI93BbM6LkylRSKMFnYVGiXY8BtI4_ncpxLTZ1A/w400-h271/rstudio_hPVAlRcQ6C.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Wynik pokrywa się z testem Bai-Perrona, który wskazał rok 2006 jako rok zmiany struktury. Teraz dodatkowo mamy dowód, że chodzi wyłącznie o zmiany luki PKB, a nie wyrazu wolnego czy wariancji.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Nadal nie odpowiedziałem skąd może wynikać ta zmiana. Biorąc pod uwagę, że rok 2007 był przełomowy w historii finansów, możliwe, że tu coś &quot;pękło&quot;. Danych jest trochę mało, ale taki model nadal jest istotny:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;zmianyRoe_ts2 &amp;lt;- window(zmianyRoe_ts, start = 2007)  
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;zmianyLuka_ts2 &amp;lt;- window(zmianyLuka_ts, start = 2006, end = 2024)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;modelRoe &amp;lt;- zmianyRoe_ts2 ~ zmianyLuka_ts2
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;summary(lm(modelRoe))
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
Call:
lm(formula = modelRoe)

Residuals:
    Min      1Q  Median      3Q     Max 
-11.044  -0.403   0.184   1.762   4.152 

Coefficients:
               Estimate Std. Error t value Pr(&amp;gt;|t|)    
(Intercept)       0.242      0.758    0.32  0.75338    
zmianyLuka_ts2   -2.167      0.463   -4.68  0.00022 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.3 on 17 degrees of freedom
Multiple R-squared:  0.563,	Adjusted R-squared:  0.537 
F-statistic: 21.9 on 1 and 17 DF,  p-value: 0.000215&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Rysunek dobrze naświetla co tu się dzieje:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIAtG8dgfNkzypPz8Ng3Tt4NCs4DINd4iGLxF8N9QFsq1TWf44NGrNsbBPfNKn79E1IIZLe22ABhoEYIo5LNk_JGwOuEhvbaDUZfkKKQlb6EwGgq4-1fEnkbOWVcXmbYZadaFnV_GNwjZWHjCwcf51v9Paky3jo2MWh15wFU4TCGUMfUJBzJiMABQ8/s720/rstudio_aCdKs8lIMV.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;489&quot; data-original-width=&quot;720&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIAtG8dgfNkzypPz8Ng3Tt4NCs4DINd4iGLxF8N9QFsq1TWf44NGrNsbBPfNKn79E1IIZLe22ABhoEYIo5LNk_JGwOuEhvbaDUZfkKKQlb6EwGgq4-1fEnkbOWVcXmbYZadaFnV_GNwjZWHjCwcf51v9Paky3jo2MWh15wFU4TCGUMfUJBzJiMABQ8/w400-h271/rstudio_aCdKs8lIMV.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Rok 2007-2008 był wstrząsem który mógł zmienić strukturę zachowania samego PKB (być może jest to związane z działaniami państwa w celu zminimalizowania kryzysu). Rzeczywiście, od 2007-2008 r. pojawiła się ujemna autokorelacja 1 rzędu dla zmian wzrostu PKB (do 2005 była ujemna, ale nieistotna stat., po tym roku wynosi ponad 0,6). Logika podpowiada, że to właśnie ta autokorelacja jest przyczyną ujemnej opóźnionej korelacji z ROE. Wyżej widzieliśmy, że ROE koreluje dodatnio ze zmianami PKB dla tego samego roku. Zatem skoro zmiany PKB ujemnie autokorelują, to jeśli w jednym roku są wyższe, to w następnym roku będą niższe lub ujemne, a z tego wynika, że w tym drugim roku zmiana ROE też będzie średnio biorąc niższa lub ujemna.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Zmiana luki PKB w 2025 najprawdopodobniej będzie lekko ujemna, co sugeruje wzrost ROE w 2026. Usuwając stałą z modelu, która w tym przypadku raczej przeszkadza, dostajemy:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;modelRoe &amp;lt;- zmianyRoe_ts2 ~ zmianyLuka_ts2 - 1
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;summary(lm(modelRoe))
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
Call:
lm(formula = modelRoe)

Residuals:
    Min      1Q  Median      3Q     Max 
-10.803  -0.155   0.425   1.994   4.410 

Coefficients:
               Estimate Std. Error t value Pr(&amp;gt;|t|)    
zmianyLuka_ts2   -2.161      0.451   -4.79  0.00015 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.22 on 18 degrees of freedom
Multiple R-squared:  0.561,	Adjusted R-squared:  0.536 
F-statistic:   23 on 1 and 18 DF,  p-value: 0.000146

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;I teraz prognoza:&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;predict.lm(lm(modelRoe), newdata = data.frame(zmianyLuka_ts2 = zmianyLuka[length(zmianyLuka)]))
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;       1 
0.359036&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;Na 2026 prognoza ROE = 20,3 + 0,36 = 20,7%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Uzyskaliśmy więc prognozę ROE na poziomie ok. 21%. Skoro stopa zwrotu koreluje dodatnio z ROE, to możemy się spodziewać w sumie wzrostu S&amp;amp;P 500 jeszcze w 2026...&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Nazwałbym osiągnięciem to co uzyskałem, bo nie jest to mechaniczny model oparty na ARMA. Żaden system AI czegoś podobnego nie zbuduje. Wymaga namysłu, wiedzy i prawdziwego rozumowania ekonomicznego. Ale nie znaczy to, że z ARMA można zupełnie zrezygnować. Zawsze warto podeprzeć się paroma modelami, bo prognoza z kilku perspektyw jest bardziej obiektywna.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Autoregresja i średnia krocząca&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Najpierw jednak trzeba sprawdzić rozkład zmian ROE. Właściwie powinienem to sprawdzić na samym początku, ale normalność nie ma aż takiego znaczenia w przypadku zwykłej regresji liniowej. Jednak tam gdzie stosuje się metodę największej wiarygodności, lepiej dostosować odpowiednio dane do rozkładu albo rozkład do danych. Robimy test Shapiro-Wilka:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;background-color: white; color: blue; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;background-color: white; color: blue; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px;&quot;&gt;shapiro.test(zmianyRoe)&lt;/span&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Shapiro-Wilk normality test

data:  zmianyRoe
W = 0.8992, p-value = 0.00102&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Czyli rozkład jest daleki od normalnego. Popatrzmy w ogóle na te zmiany w końcu:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2nhYRJqVsRgTAUAorRphlGfUDAJJKiqXnTz1OivM9hnf6Gpzc4Ae8JRx1IgXh8b9THSz1a81bisA9CCDHNU8NdbTMAbo3_3tLW5IrR-wL_IDlQGD2So5thKF86O7tyliNGM3V2lDXDts-_bydG6DpAUhAjoKB_-3NICgBikFv5h4e6uEJARvqWcpn/s724/rstudio_u4CVVGpyC0.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;490&quot; data-original-width=&quot;724&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2nhYRJqVsRgTAUAorRphlGfUDAJJKiqXnTz1OivM9hnf6Gpzc4Ae8JRx1IgXh8b9THSz1a81bisA9CCDHNU8NdbTMAbo3_3tLW5IrR-wL_IDlQGD2So5thKF86O7tyliNGM3V2lDXDts-_bydG6DpAUhAjoKB_-3NICgBikFv5h4e6uEJARvqWcpn/w400-h271/rstudio_u4CVVGpyC0.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Wygląda to tak, jakby wariancja się zmieniła. Wykonajmy gqtest i hmctest na samych zmianach:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;modelRoe &amp;lt;- zmianyRoe_ts ~ 1
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;gqtest(modelRoe)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Goldfeld-Quandt test

data:  modelRoe
GQ = 2.002, df1 = 21, df2 = 21, p-value = 0.0598
alternative hypothesis: variance increases from segment 1 to 2

&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;hmctest(modelRoe)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Harrison-McCabe test

data:  modelRoe
HMC = 0.3332, p-value = 0.056&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Rzeczywiście jest blisko heteroskedastyczności, co stanowi dodatkowy argument, żeby dokonać korekty obserwacji. Idziemy więc do auto.arima i tam dostosujemy dane.&lt;/p&gt;&lt;p&gt;Aby znormalizować niegaussowskie szeregi w auto.arima stosujemy transformację Boxa-Coxa. Są tu dwa argumenty do użycia: lambda oraz biasadj. Pierwszy to parametr transformacji. Domyślnie ustawiony na NULL, a teraz ustawiamy go na &quot;auto&quot;. Drugi to parametr odwrotnej transformacji. Jeżeli ustawimy go na FALSE, to estymatory dopasowania oraz prognozy - jeżeli lambda nie jest NULL - są medianą (przekształcenie monotoniczne funkcji nie zmienia jej wartości środkowej, ale średnią owszem). Żeby sprowadzić medianę do średniej, potrzebna jest korekta - to robi biasadj. Możemy ustawić biasadj = TRUE, jeśli chcemy mieć średnią, czyli wartość oczekiwaną. Istotne, żeby w takim przypadku używać samego ROE jako zmiennej prognozowanej, dlatego że transformacja Boxa-Coxa działa tylko na dodatnich wartościach.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Użyję kryterium AIC. BIC okazało się za surowe - wskazało błądzenie losowe.&amp;nbsp;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;roe_ts &amp;lt;- ts(roe, start = 1981)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model &amp;lt;- auto.arima(roe,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          ic = &quot;aic&quot;, max.p = 10, max.q = 10,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          stepwise = FALSE, approximation = FALSE, lambda = &quot;auto&quot;, biasadj = TRUE)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Series: roe 
ARIMA(0,1,2) with drift 
Box Cox transformation: lambda= 1.18272 

Coefficients:
         ma1     ma2  drift
      -0.365  -0.268  0.516
s.e.   0.145   0.147  0.322

sigma^2 = 32:  log likelihood = -137.31
AIC=282.62   AICc=283.65   BIC=289.76
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza &amp;lt;- forecast(arima_model, h=1)$mean
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Time Series:
Start = 46 
End = 46 
Frequency = 1 
    out 
19.9176 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;roe_ts &amp;lt;- ts(roe, start = 1981)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model &amp;lt;- auto.arima(roe_ts,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          ic = &quot;aic&quot;, max.p = 10, max.q = 10,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          stepwise = FALSE, approximation = FALSE, lambda = &quot;auto&quot;, biasadj = TRUE)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Series: roe_ts 
ARIMA(0,1,2) with drift 
Box Cox transformation: lambda= 1.18272 

Coefficients:
         ma1     ma2  drift
      -0.365  -0.268  0.516
s.e.   0.145   0.147  0.322

sigma^2 = 32:  log likelihood = -137.31
AIC=282.62   AICc=283.65   BIC=289.76
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza &amp;lt;- forecast(arima_model, h=1)$mean
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Time Series:
Start = 2026 
End = 2026 
Frequency = 1 
    out 
19.9176&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Optymalny model to MA(2) i prognozuje on lekki spadek ROE w 2026 do poziomu ok. 20%. Gdybyśmy pominęli transformację, wartość niewiele by się zmieniła, bo dostalibyśmy równo 20%.&lt;/p&gt;&lt;p&gt;W zasadzie nie musimy nawet zastanawiać się nad tym czy transformować czy nie, tylko od razu użyć z tego samego pakietu modelu BATS (akronim od: Box-Cox transform, ARMA errors, Trend, and Seasonal components), który automatycznie sprawdza czy transformować dane i jeśli potrzeba to robi; poza tym wyławia trend, sezonowość i ARMA w resztach.&amp;nbsp;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; line-height: 16px; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span style=&quot;color: blue; font-family: Lucida Console, monospace;&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&amp;gt; roe_model_bats &amp;lt;- bats(roe_ts, biasadj = TRUE)
&amp;gt; prognoza &amp;lt;- forecast(roe_model_bats, 1)$mean
&amp;gt; prognoza
Time Series:
Start = 2026 
End = 2026 
Frequency = 1 
[1] 19.6489&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Tak samo jak poprzednio, jeśli biasadj = FALSE (domyślnie), dostaniemy medianę. Właściwie to w ogóle można pominąć ten argument, bo mediana często jest lepsza od średniej&amp;nbsp;&amp;nbsp;dla niegaussowskich rozkładów (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2016/08/czy-mediana-jest-lepsza-od-sredniej.html&quot;&gt;ten wpis&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;&lt;p&gt;BATS nie jest to bardziej zautomatyzowana wersja auto.arima, tylko bardziej złożony model w przestrzeni stanów (&lt;i&gt;state space model&lt;/i&gt;). Stanem może być średni poziom ROE, nachylenie trendu albo pewna cykliczność. Jak sama nazwa wskazuje, to stan, który obowiązuje w danym czasie, a więc w następnych okresach może się zmienić. Mimo to współczynniki ARMA pozostają stałe. Intuicyjnie: jeżeli mamy tłumioną sinusoidę, to funkcja jest stała, w tym zawiera parametr tłumienia; stanem jest wtedy amplituda (wielkość ruchu), która się zmniejsza wraz z każdym okresem.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ARMA + luka PKB&lt;/span&gt;&lt;/p&gt;&lt;p&gt;W końcu można połączyć model czysto ekonomiczny z ARMA, czyli użyć ARMAX. Do auto.arima wpisujemy argument xreg, który będzie zmianami luki PKB. Powrócę więc też do zmian ROE - i to od 2006 r., bo, jak pamiętamy, regresja z luką do tego roku była niestabilna.&amp;nbsp; Oznacza to, że lepiej wtedy nie transformować danych, bo występują ujemne wartości. Muszą wystarczyć surowe:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model &amp;lt;- auto.arima(zmianyRoe_ts2,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          ic = &quot;bic&quot;, max.p = 10, max.q = 10,
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;+ &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;                          stepwise = FALSE, approximation = FALSE, xreg = zmianyLuka_ts2)
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;arima_model
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Series: zmianyRoe_ts2 
Regression with ARIMA(0,1,1) errors 

Coefficients:
         ma1    xreg
      -0.619  -2.478
s.e.   0.197   0.381

sigma^2 = 10.7:  log likelihood = -46.07
AIC=98.14   AICc=99.86   BIC=100.81&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GO2HCLQBB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GO2HCLQBC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza &amp;lt;- forecast(arima_model, h=1, xreg = zmianyLuka_ts2[length(zmianyLuka_ts2)])$mean
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GO2HCLQBH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;prognoza
&lt;/span&gt;&lt;span class=&quot;GO2HCLQBB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Time Series:
Start = 2026 
End = 2026 
Frequency = 1 
[1] 1.29567&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Nie ma znaczenia którego kryterium użyję - daje to samo. W sumie prognoza jest mocno dodatnia. Na 2026 mamy 20,3 + 1,3 = 21,6%. Pamiętać oczywiście trzeba, że model powstał w oparciu o bardzo małą próbę (ledwo 19 obserwacji), więc nie jest to szczególnie wiarygodna wartość. Raczej traktować ją należy jak drogowskaz.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Podsumowując, mechaniczne metody prognozują delikatny spadek ROE, ale efekt ekonomiczny zmienia ten kierunek na dodatni. I wstępnie dodaje giełdzie amerykańskiej pretekstu do dalszych zwyżek.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1e3JRXT4-H2-1vL8JGkDaSCB7pV_JNN8D/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;Link do danych z tej analizy&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/2527075682146260166/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/10/prognozowanie-roe-s-500.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2527075682146260166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2527075682146260166'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/10/prognozowanie-roe-s-500.html' title='Prognozowanie ROE S&amp;P 500'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgacvVGymypcTcv-jM02WZifTZzmY42j60paa7bx8n7qsypbZf0YxZO4m4G3LJ-Y-Od49Y-fNFC-D281WO9Bjq-luWEg9ToNmbnj207AOglD0JCpYsDkh0UvX3Va_B_vQQR_VfPXmqwzCnpZI-xz1nkR4LOnPlBJvY5jCP_lKt-7KgaWURC5Z2i9cP0/s72-w400-h279-c/rstudio_HeQIeaRpsO.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-3109006883788326235</id><published>2025-09-16T07:45:00.007+02:00</published><updated>2025-09-16T07:45:00.115+02:00</updated><title type='text'>FED powinien podnosić, nie obniżać stóp</title><content type='html'>&lt;p&gt;&amp;nbsp;Normalnie uważa się, że nie należy się kłócić z rynkiem. Ale w dzisiejszych czasach, to raczej rynek nie chce się kłócić z Trumpem. Trump żąda obniżki stóp procentowych od FEDu, rynek mu wierzy i pewnie pod to tak ciągną indeksy. Wszyscy wierzą, że FED pokornie obniży stopy i wygląda na to, że tak się właśnie stanie. Będzie to dowód na upolitycznienie tej instytucji, albowiem nic nie wskazuje, aby stopy były niższe, wręcz przeciwnie - powinny być lekko podniesione.&lt;/p&gt;&lt;p&gt;Po pierwsze zgodnie z wytycznymi celem FEDu powinno być utrzymanie inflacji na poziomie 2% (zob. &lt;a href=&quot;https://www.federalreserve.gov/economy-at-a-glance-inflation-pce.htm&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Tymczasem inflacja w USA sięga 3% (&lt;a href=&quot;https://tradingeconomics.com/united-states/inflation-cpi&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;):&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1f990xZ3ZW_XUB3thBquv0o7nJHakkieoPYk7mgwz2KpgabkdWZzDoxc-HCns1EJN4XP8A0sbZa7_USXHpwhyphenhyphenL_J-i5AC-eNq8Ov6K2HV3wsK50moAtszi-m7QtwYxTNF3X9CpggT1X3VePFdtjDNIt4iJYYWwuls0a3N2ZvE6hB4Eu_afhaaGaI/s1101/chrome_cYdbhiqfKr.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;713&quot; data-original-width=&quot;1101&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1f990xZ3ZW_XUB3thBquv0o7nJHakkieoPYk7mgwz2KpgabkdWZzDoxc-HCns1EJN4XP8A0sbZa7_USXHpwhyphenhyphenL_J-i5AC-eNq8Ov6K2HV3wsK50moAtszi-m7QtwYxTNF3X9CpggT1X3VePFdtjDNIt4iJYYWwuls0a3N2ZvE6hB4Eu_afhaaGaI/w400-h259/chrome_cYdbhiqfKr.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Po drugie &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2021/06/wicksell-spotyka-taylora-czyli-ile-dzis.html&quot; target=&quot;_blank&quot;&gt;reguła Taylora&lt;/a&gt;, którą FED powinien się kierować, wprost wskazuje zbyt niski poziom (&lt;a href=&quot;https://fredblog.stlouisfed.org/2014/04/the-taylor-rule/&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;):&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQs0e7qK2D9bI8CosoL2x9MF8q0fvfXbSYbWalUCnK86vyDHjEPffXqmujc8GVuUKON0v5FlwKL2vTVay5YR5aGVShCPrD2_8u1EZCnrWwlDKwMENV-svDlOqPYUtbzS9Z-458d_KkM2kMhf6nyynVBL1CemPUp6nNeaqhOCkkA-xpfOUimcFXfIT-/s1156/chrome_UI9wN69NFl.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;580&quot; data-original-width=&quot;1156&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQs0e7qK2D9bI8CosoL2x9MF8q0fvfXbSYbWalUCnK86vyDHjEPffXqmujc8GVuUKON0v5FlwKL2vTVay5YR5aGVShCPrD2_8u1EZCnrWwlDKwMENV-svDlOqPYUtbzS9Z-458d_KkM2kMhf6nyynVBL1CemPUp6nNeaqhOCkkA-xpfOUimcFXfIT-/w400-h201/chrome_UI9wN69NFl.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Powiedzmy jednak, że krytyk tego podejścia uzna je za zbyt sztywne, bo nie bierze pod uwagę przyszłej koniunktury. Pretekstem do obniżek mają być gorsze dane z rynku pracy. Tyle że jakoś FED prognozuje normalny, nawet lepszy niż w ostatnich latach, wzrost (&lt;a href=&quot;https://fred.stlouisfed.org/series/GDPPOT&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRMebYgfZIjhe54WvLPijzO0Rgcr42rseikU8x4R-ZJiGqswY43PCdqls7fcHXZfHt0pyJkayep0yWYoo6yHzwlD7iTR9RX1xRU2IVRpmpvycvuNqyyTCKY1a0Bp3RETRfG-kSSVeHJDnjju6qXZBgLGgyezICssn6a5du_MjaZRj6OMpsbhTjfdRJ/s1654/chrome_lAt3Y1TjeQ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;634&quot; data-original-width=&quot;1654&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRMebYgfZIjhe54WvLPijzO0Rgcr42rseikU8x4R-ZJiGqswY43PCdqls7fcHXZfHt0pyJkayep0yWYoo6yHzwlD7iTR9RX1xRU2IVRpmpvycvuNqyyTCKY1a0Bp3RETRfG-kSSVeHJDnjju6qXZBgLGgyezICssn6a5du_MjaZRj6OMpsbhTjfdRJ/w400-h154/chrome_lAt3Y1TjeQ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Stąd &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2021/07/czy-fed-powinien-podniesc-stopy.html&quot; target=&quot;_blank&quot;&gt;reguła Taylora w wersji dynamicznej&lt;/a&gt;, którą prezentowałem kilka lat temu, a teraz zaktualizowałem, pokrywa się z klasyczną (&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1ve6ol1U_CACxI_ULDbENw9u3SRBTk_tk8II3KLlPk0Q/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;link do danych&lt;/a&gt;):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE9qRiNwQK_lAlFlQ3nGvy_8yJr1T-V2XOP9tKesdg1IkbVCLnRaKUjzb3pd2EnAZEmpKf9Cl2yH-4rHLU5eM02Vgc-BHfxy1AP3UVlgS6eY4HFG177rzfOva5HhhW9Rh2lYA7m_2DZXMaQuCZO5BBVsu_ih2BqmaeFQbfnsURxWWmmitgT5FWmDrC/s1161/chrome_0FC63LgaCC.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;544&quot; data-original-width=&quot;1161&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE9qRiNwQK_lAlFlQ3nGvy_8yJr1T-V2XOP9tKesdg1IkbVCLnRaKUjzb3pd2EnAZEmpKf9Cl2yH-4rHLU5eM02Vgc-BHfxy1AP3UVlgS6eY4HFG177rzfOva5HhhW9Rh2lYA7m_2DZXMaQuCZO5BBVsu_ih2BqmaeFQbfnsURxWWmmitgT5FWmDrC/w400-h188/chrome_0FC63LgaCC.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I rzeczywiście, zgodnie z tą regułą, luka PKB jest już przesadnie dodatnia i powinna być jak najprędzej ograniczana (&lt;a href=&quot;https://fred.stlouisfed.org/graph/?g=f1cZ&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahq0_oW0rsSIxCw9FfGJW__ZsG-TWw2xW4UYSYNA1TnrAvrTpuAOA21t9ugAaVYJKmVp-eiEBqyiF-hKPkuz4vb2AtDd61y4QeEg5cPCRYp9HoENgCHL2eugBB0NC5gR9sf5Z4GdFwFDBIlcsaA-8Be9ppHRgi5lmvpZ7iKgwHoT-iwxtajIHjO1L/s1640/chrome_9U0ReJ93uv.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;631&quot; data-original-width=&quot;1640&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahq0_oW0rsSIxCw9FfGJW__ZsG-TWw2xW4UYSYNA1TnrAvrTpuAOA21t9ugAaVYJKmVp-eiEBqyiF-hKPkuz4vb2AtDd61y4QeEg5cPCRYp9HoENgCHL2eugBB0NC5gR9sf5Z4GdFwFDBIlcsaA-8Be9ppHRgi5lmvpZ7iKgwHoT-iwxtajIHjO1L/w400-h154/chrome_9U0ReJ93uv.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Luka trochę się zmniejszyła, zatem powinni przynajmniej utrzymać stopy na obecnym poziomie. Więc to jest test dla FEDu, czy poddadzą się politycznym naciskom.&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/3109006883788326235/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/09/fed-powinien-podnosic-nie-obnizac-stop.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/3109006883788326235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/3109006883788326235'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/09/fed-powinien-podnosic-nie-obnizac-stop.html' title='FED powinien podnosić, nie obniżać stóp'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1f990xZ3ZW_XUB3thBquv0o7nJHakkieoPYk7mgwz2KpgabkdWZzDoxc-HCns1EJN4XP8A0sbZa7_USXHpwhyphenhyphenL_J-i5AC-eNq8Ov6K2HV3wsK50moAtszi-m7QtwYxTNF3X9CpggT1X3VePFdtjDNIt4iJYYWwuls0a3N2ZvE6hB4Eu_afhaaGaI/s72-w400-h259-c/chrome_cYdbhiqfKr.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-8638376745095462512</id><published>2025-09-03T07:35:00.030+02:00</published><updated>2025-10-11T17:12:03.452+02:00</updated><title type='text'>Ile powinien kosztować WIG20 trzy lata temu?</title><content type='html'>Żeby ocenić, na ile model wyceny jest sensowny albo skuteczny, należy przetestować go na&amp;nbsp; historii. Modelując wycenę WIG20 na drugą połowę 2022 r., spodziewałem się, że model Gordona wskaże niedowartościowanie na początku hossy. Jednak indeks okazał się być prawidłowo wyceniony. Możliwe, że model jest za prosty, może trzeba by założenia parametrów poprawić, a może po prostu rynek zgodził się z modelem.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jeśli chodzi o założenia parametrów można je oczywiście zmieniać, ale nie znaczy to, że można wstawiać dowolne liczby. Stopa dyskontowa 11,6% to suma premii za ryzyko USA, krajowego (na podst. strony Damodarana) i stopy wolnej od ryzyka (przyjąłem 6%). Współczynnik wypłaty dywidendy / zatrzymania jest trudny do oszacowania. Dziś wg moich szacunków wsp. wypłaty wynosi ok. 60-70%, czyli zatrzymania 30-40%. Można nawet dla szybkiego sprawdzianu spojrzeć na PKO: EPS = 8, dywidenda = 5.5, czyli wsp. wypłaty = 5,5/8 = 69%, a więc wsp. zatrzymania 31%. Podobnie PEKAO: odpowiednio 25,75 i 18,35, wsp. zatrzymania = 1 - 18,35/25,75 = 0,29. Ostatnio jak robiłem, to wpisywałem wsp. wypłaty = 66,66%, czyli prawidłowo, ale zamieniłem teraz na równe 70% (praktycznie nie zmienia to wyceny). Taki współczynnik generuje wzrost zysku między 3,5 a 4,6%.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Współczynnik ten jednak się zmienia. W 2022 r. wyszło mi niecałe 50% dla wsp. zatrzymania, dokładniej 47%, i tyle przyjąłem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ostatni aspekt, jaki chciałem krótko poruszyć dotyczy ROE. Nigdy tego szczegółowo nie analizowałem, bo nie uważałem tego za zbyt ważne, ale teraz wyjaśnię dokładniej, że istnieją 3 różne metryki ROE:&lt;/div&gt;&lt;div&gt;1) podstawowa: Z(t) / KW(t) , gdzie Z(t) to zysk netto w okresie t i KW(t) to wartość księgowa kapitału własnego w okresie t,&lt;/div&gt;&lt;div&gt;2) stosowana w różnych analizach finansowych: Z(t) / [KW(t) + KW(t-1)]/2,&lt;/div&gt;&lt;div&gt;3) jedyna prawidłowa dla wyceny: Z(t) / KW(t-1), dlatego że ROE porównuje się z kosztem kapitału własnego, a ten jest stopą procentową / zwrotu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ROE dla wyceny można też zapisać jako Z(t) *&amp;nbsp;(1 + w)/ KW(t) = Podstawowe ROE * (1+w)&amp;nbsp;, gdzie w to tempo wzrostu zysku. Chodzi nam o oszacowanie przyszłego ROE, czyli przyszłego zysku. Tej formuły używam, ale za w nie wstawiam wzrostu dywidendy, tylko tempo nominalnego wzrostu PKB. Zysk może rosnąć nie tylko dzięki zyskowi zatrzymanemu, ale także dzięki emisji akcji i obligacji. Ta emisja pochodzi z dochodów ludności, które rosną właśnie w tempie w. Tak więc ten wzrost nie pochodzi od strony podażowej, ale popytowej&amp;nbsp; - innymi słowy spółka może wyemitować maksymalnie tyle ile ludzie dodatkowo zarabiają. Tak więc wzrost z tej emisji nowego kapitału jest ograniczony możliwościami gospodarki. Z Banku Światowego można uzyskać dane na temat statystyk wzrostu nominalnego PKB i właśnie stąd w = 7%.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wycenę zrobiłem na dzień 18.11.2022, kiedy skład WIG20 został zaktualizowany. Dostałem wartość indeksu na poziomie 1783 zł. Tego dnia WIG20 kosztował na koniec dnia&amp;nbsp;1707,23 zł, zatem ściśle biorąc był niedowartościowany, ale zaledwie o 4%, więc trudno tu mówić o jakimś niedowartościowaniu.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdeZqUgdB0HxUcOROesGq_n3_sd4YxY6gBdZH-kErS0mHfEZeX4bpjDnjxJvnozcY8oRwtcN7GtPMGTBJWHVLbeh8iIXBN7zxNZgQ2RpdB8O_kV9hbpb4zkpwzRTJ5LPiMbM53mAsg9b9_7igTS6EFAVrMwVYn_KsAvSDOP0QKX7ZqhJPdzwqB7S1f/s1255/chrome_EIgRgdCTh6.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;592&quot; data-original-width=&quot;1255&quot; height=&quot;189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdeZqUgdB0HxUcOROesGq_n3_sd4YxY6gBdZH-kErS0mHfEZeX4bpjDnjxJvnozcY8oRwtcN7GtPMGTBJWHVLbeh8iIXBN7zxNZgQ2RpdB8O_kV9hbpb4zkpwzRTJ5LPiMbM53mAsg9b9_7igTS6EFAVrMwVYn_KsAvSDOP0QKX7ZqhJPdzwqB7S1f/w400-h189/chrome_EIgRgdCTh6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Co by się stało, gdyby przyjąć wsp. zatrzymania na poziomie dzisiejszym, 30-40%? Przy 30% jest to 1461, a przy 40% 1612. Czyli powiedzmy 1500 - też nie jest to poziom odległy, bo jeszcze miesiąc wcześniej indeks tam się wspinał. A co powodowało dalszy wzrost? Zysk netto spółek mocno wzrósł w kolejnym roku - średnio gdzieś o 40%.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Link do wyceny znajdziemy&amp;nbsp;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1lhaAPkBctBOusUmzsHLGe0btAwGRz1PKclj8_ymWVHU/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/8638376745095462512/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/09/ile-powinien-kosztowac-wig20-trzy-lata.html#comment-form' title='Komentarze (6)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8638376745095462512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8638376745095462512'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/09/ile-powinien-kosztowac-wig20-trzy-lata.html' title='Ile powinien kosztować WIG20 trzy lata temu?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdeZqUgdB0HxUcOROesGq_n3_sd4YxY6gBdZH-kErS0mHfEZeX4bpjDnjxJvnozcY8oRwtcN7GtPMGTBJWHVLbeh8iIXBN7zxNZgQ2RpdB8O_kV9hbpb4zkpwzRTJ5LPiMbM53mAsg9b9_7igTS6EFAVrMwVYn_KsAvSDOP0QKX7ZqhJPdzwqB7S1f/s72-w400-h189-c/chrome_EIgRgdCTh6.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-3028409270083162515</id><published>2025-08-31T22:49:00.005+02:00</published><updated>2025-09-01T13:14:42.824+02:00</updated><title type='text'>Krótka uwaga na temat free floatu</title><content type='html'>&lt;p&gt;&amp;nbsp;Ostatnia wycena ad hoc WIG20, czyli z modelu Gordona, okazuje się jeszcze niższa niż te 1950 zł. Problem polega na wstawieniu odpowiedniej kapitalizacji i liczby akcji. W poprzedniej wycenie wstawiłem nie tyle wyemitowaną liczbę akcji, co liczbę akcji w obrocie, tj. free float. Po uwzględnieniu wszystkich akcji (na podstawie danych z bankier.pl), wycena spada do 1882 zł (&lt;a href=&quot;https://docs.google.com/spreadsheets/d/19byfWbfI50wWMMBvv7F9_j1YwPPZgyNJqgENrgLFolY/edit?gid=0#gid=0&quot; target=&quot;_blank&quot;&gt;link&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Można by przekonywać, że wartość tworzą jedynie ci, którzy handlują akcjami i stąd wycena nie powinna dotyczyć części zamrożonej. Free float obejmuje jednak tylko liczbę akcji na daną chwilę, a pakiety kontrolne też mogą być sprzedawane.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Mniejszy free float rodzi zarówno przychody jak i koszty. Koszty to mniejsza płynność (trudniej kupić / sprzedać po własnej cenie) oraz związane z tym ryzyko manipulacji kursem (przez zmowę spekulantów). Ponadto duża koncentracja akcji w rękach paru podmiotów rodzi ryzyko wywłaszczenia. O problemie wywłaszczenia, czy w ogóle to jest legalne, pisałem w art. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/08/wyciskanie-akcjonariusza-czyli-kiedy.html&quot; target=&quot;_blank&quot;&gt;Wyciskanie akcjonariusza, czyli kiedy wycena nie ma sensu&lt;/a&gt;. W sumie wzrasta koszt kapitału własnego - a to obniża wartość.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Z drugiej strony większa koncentracja kapitału w rękach inwestorów instytucjonalnych sprawia, że zarząd spółki nie może robić co mu się żywnie podoba i może być łatwo odwołany. Duzi inwestorzy patrzą na ręce zarządowi i nie będą pozwalać np. na dodatkową emisję akcji lub obligacji. Oczywiście ta zaleta koncentracji kapitału powstaje jedynie przy warunku, że pakiety kontrolne nie należą do podmiotów powiązanych z zarządzającymi. Jeśli tak się dzieje, to nie można mieć pewności, że będą zatrudniani ludzie wg klucza kompetencji, a wszelkie emisje będą tylko ułatwiane.&amp;nbsp;&lt;/p&gt;&lt;p&gt;W każdym razie kupując akcje powinniśmy też zwracać uwagę na poziom free floatu i kto ma kontrolę. Wydaje się, że najlepszą sytuacją jest, jeśli po pierwsze kontrola jest rozproszona między wiele funduszy niezależnych od siebie, ale sumarycznie mają powyżej 50%, a po drugie, żeby ta kontrola nie była powyżej powiedzmy 80-85%. Wzorową sytuacją jest Kruk (kontrola = 73%, najwięcej ma niecałe 13% fundusz), a przeciwieństwem mBank (kontrola 90,08%, a inny (niemiecki) bank ma aż 69% akcji).&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/3028409270083162515/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/krotka-uwaga-na-temat-free-floatu.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/3028409270083162515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/3028409270083162515'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/krotka-uwaga-na-temat-free-floatu.html' title='Krótka uwaga na temat free floatu'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7586808306474212147</id><published>2025-08-24T15:52:00.009+02:00</published><updated>2025-08-28T14:08:24.243+02:00</updated><title type='text'>Policzmy w końcu poprawnie wskaźniki indeksów</title><content type='html'>Zawsze gdy analizujemy dane finansowe, staramy się je uzyskać z najbardziej rzetelnych i aktualnych źródeł. Gdy więc chcemy zobaczyć bieżące C/Z i C/WK indeksu lub spółki, pierwszym wyborem powinno być to oficjalne. W przypadku WIG20, będzie nim strona &lt;a href=&quot;https://www.gpwbenchmark.pl/karta-indeksu?isin=PL9999999987#Indicators&quot; target=&quot;_blank&quot;&gt;gpwbenchmark&lt;/a&gt;. Widzimy, że C/Z równa się 14,66, a C/WK 1,64 (stan na 21.08.2025). Gdy jednak chcemy znaleźć historyczne wskaźniki, to dużo łatwiej oprzeć się na źródłach pośrednich. Korzystamy więc np. ze &lt;a href=&quot;https://stooq.pl/q/g/?s=wig20&quot; target=&quot;_blank&quot;&gt;stooq&lt;/a&gt;. I okazuje się, że portal pokazuje inne dane: C/Z = 16,19 i C/WK = 2,86.&amp;nbsp;Z czego wynika ta różnica? Czy stooq.pl pokazuje błędne wartości?&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W jaki sposób policzyć wskaźnik dla indeksu? Zajmijmy się C/WK. Na logikę, cały indeks jako portfel traktujemy jak jedną spółkę. Czyli:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;C/WK = Kapitalizacja portfela / Wartość księgowa portfela&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Całą kapitalizację oznaczymy&amp;nbsp;&lt;i&gt;Kap&lt;/i&gt;. Powiedzmy, że&amp;nbsp;mamy 3 spółki w portfelu.&amp;nbsp;&lt;i&gt;&amp;nbsp;&lt;/i&gt;Zapiszemy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivQ5Tlvjoj9WbhCcLM0W3U6avBQn5udw7wZatHvM9bvUBp3cqrS8XLybDX3qANKR2cj67fnsvGEMt20r-cr4Co30jwVV8Bc8FJFtVCZvSbqOThaC4LgBlRd16sdcRtwbh_lNFmUYJXPgu9CktPzbBC5VD26P6WWyuRCYNcroOnCi3ao0eZzH1Rls5C/s390/MathType_shNqdRnZYh.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;65&quot; data-original-width=&quot;390&quot; height=&quot;53&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivQ5Tlvjoj9WbhCcLM0W3U6avBQn5udw7wZatHvM9bvUBp3cqrS8XLybDX3qANKR2cj67fnsvGEMt20r-cr4Co30jwVV8Bc8FJFtVCZvSbqOThaC4LgBlRd16sdcRtwbh_lNFmUYJXPgu9CktPzbBC5VD26P6WWyuRCYNcroOnCi3ao0eZzH1Rls5C/s320/MathType_shNqdRnZYh.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;gdzie Kap_i oznacza kapitalizację spółki i, czyli&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqDJBiDsnN_8pNL_R6qzSMMvz2HXIf625Rrwg0D9EFacAJPavEtBKsT1KQmoB7BeVgPnE5NnK1ydJcX1sNuaSjNcBpErM1t2aQifk4-ENIEKdTYOfL7ptm2hJfZ4Vnof8fNjypup3i3PM8YRlWmDU2mXeuH6EudTQczH7IsoQYc1s_WUndfk52BZ5i/s206/MathType_bg10nvQmxz.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;55&quot; data-original-width=&quot;206&quot; height=&quot;53&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqDJBiDsnN_8pNL_R6qzSMMvz2HXIf625Rrwg0D9EFacAJPavEtBKsT1KQmoB7BeVgPnE5NnK1ydJcX1sNuaSjNcBpErM1t2aQifk4-ENIEKdTYOfL7ptm2hJfZ4Vnof8fNjypup3i3PM8YRlWmDU2mXeuH6EudTQczH7IsoQYc1s_WUndfk52BZ5i/w200-h53/MathType_bg10nvQmxz.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;gdzie N_i - liczba akcji spółki i, C_i - cena akcji.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wtedy C/WK indeksu ma postać:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqXea5zuAkA9-I94GXVK8f057FAe6sa-a-uRtTgLLl5YdbvvC2owVbJhVLaXhHUOOJ6GoWETeSPhmFwEw4vMvk5L0HyApFidzBhcqK3q-APt7NSibfeQlUvRf1CXpUbqLtstNXSs3zh8zXwHfeKx3lGAL-AEsR6FfcMys0MQ0foam6UR21q4Xz14Li/s649/MathType_9io51JWJyw.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;111&quot; data-original-width=&quot;649&quot; height=&quot;69&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqXea5zuAkA9-I94GXVK8f057FAe6sa-a-uRtTgLLl5YdbvvC2owVbJhVLaXhHUOOJ6GoWETeSPhmFwEw4vMvk5L0HyApFidzBhcqK3q-APt7NSibfeQlUvRf1CXpUbqLtstNXSs3zh8zXwHfeKx3lGAL-AEsR6FfcMys0MQ0foam6UR21q4Xz14Li/w400-h69/MathType_9io51JWJyw.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;WK_i - wartość księgowa na akcję spółki i.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Taką właśnie definicję wskaźników znajdziemy w dokumencie GPW &quot;Podstawowe algorytmy wskaźników rynku kapitałowego&quot;. Jest to nic innego jak średnia ważona harmoniczna:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ7UfxPFY6jP_R9s0fOLpPC80LxWPAnV0Y0ksTEHDQ9U8CKZNgn4QL8y39obwdowZDhWx2Tk8ms82dL2Aly4r9VELgVKwO6fafiDBe-hursxUzDUhGXBDk6LPV8OuL1Zg3O__Mz2NT7T06BQ2thsNe_DYyJaZDfPNBRmrSu7G8tWvVr9mBHYNZcrdR/s614/MathType_XfBjNGpsNI.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;177&quot; data-original-width=&quot;614&quot; height=&quot;92&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ7UfxPFY6jP_R9s0fOLpPC80LxWPAnV0Y0ksTEHDQ9U8CKZNgn4QL8y39obwdowZDhWx2Tk8ms82dL2Aly4r9VELgVKwO6fafiDBe-hursxUzDUhGXBDk6LPV8OuL1Zg3O__Mz2NT7T06BQ2thsNe_DYyJaZDfPNBRmrSu7G8tWvVr9mBHYNZcrdR/s320/MathType_XfBjNGpsNI.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I dla C/Z analogicznie:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKxfedFYoSaEK95ZX0L8y3ODv3lyoE1QSW2BPdoEMjkMkju-D7XPM9ftdp2phvYmkpBfqoJWWS_SpUbxEuOwl8Bi281wJOGHFbnThrT4IqCSCX9_jsAoH7mRb1B-lblcrkJE9LWNy0pE73AgmIs_IaVoOQXFNb0MdD-ZErgBx_tNU06J3VoRjX-Pt-/s487/MathType_8y22oB6sI1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;169&quot; data-original-width=&quot;487&quot; height=&quot;111&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKxfedFYoSaEK95ZX0L8y3ODv3lyoE1QSW2BPdoEMjkMkju-D7XPM9ftdp2phvYmkpBfqoJWWS_SpUbxEuOwl8Bi281wJOGHFbnThrT4IqCSCX9_jsAoH7mRb1B-lblcrkJE9LWNy0pE73AgmIs_IaVoOQXFNb0MdD-ZErgBx_tNU06J3VoRjX-Pt-/w320-h111/MathType_8y22oB6sI1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;gdzie Z_i - EPS dla i-tej spółki.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Taki wzór powinno się stosować.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dlaczego nazywa się to średnią ważoną, skoro nie widać tu żadnych wag? Wzór można tak przekształcić, żeby wagi się pojawiły. Wtedy będzie można porównać powyższy wzór z innymi średnimi ważonymi. Najpierw zdefiniujemy udział i-tej spółki w portfelu:&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMo6CE89FN6xKZJ7YVzbbrqBb0azIHZKW-cG2zdDuaQ771F0kMcgQKGOmcOK1IZnqBrmRNqnDz3mkn6L6ckW9x_k_cojq3mREBM2f7aq5OvnBJa0EvCtW5gH5xNgjA9ln-n2xbXktmQpJ1_dH_mnz5W1clmKNmMuH1ljGRBlZ16-qBDdbZ5dlx7mPW/s406/MathType_AyP6HCZeft.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;112&quot; data-original-width=&quot;406&quot; height=&quot;55&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMo6CE89FN6xKZJ7YVzbbrqBb0azIHZKW-cG2zdDuaQ771F0kMcgQKGOmcOK1IZnqBrmRNqnDz3mkn6L6ckW9x_k_cojq3mREBM2f7aq5OvnBJa0EvCtW5gH5xNgjA9ln-n2xbXktmQpJ1_dH_mnz5W1clmKNmMuH1ljGRBlZ16-qBDdbZ5dlx7mPW/w200-h55/MathType_AyP6HCZeft.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Czy za udział można by alternatywnie wstawić liczbę akcji podzieloną przez liczbę wszystkich akcji? Nie, bo wtedy split czy resplit zmieniałby udział. &quot;Waga&quot; jest więc ciut lepszym słowem niż udział, bo jak coś waży, to wiadomo o co chodzi. Definicja udziału wywodzi się jednak formalnie z teorii portfela, w której inwestor przeznacza określoną sumę pieniędzy na zakup danego waloru (zob.&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2009/11/teoria-portfela-markowitza-krzywa_11.html&quot; target=&quot;_blank&quot;&gt;ten wpis&lt;/a&gt;, w którym jest to wyjaśnienie).&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To teraz przekształcimy pierwotny wzór:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLKBZhO9N4Bp9botP7sIA-W2C1yPyUjv9MzwVhzoJd-LPaZZjfXYl0VZuoIExFiI1v-lXdCkEotUnGpByqkGQNGNXb18GAx2aJXI2H1nvT0wtPO2YR9GB-FERmellSgJK30JiN1-CiwQmLmZ65A1OzO7qGdatQ8JWqZDCFtwV4OsGouou-PTEZlWF9/s928/MathType_mtnxcwkff5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;928&quot; data-original-width=&quot;578&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLKBZhO9N4Bp9botP7sIA-W2C1yPyUjv9MzwVhzoJd-LPaZZjfXYl0VZuoIExFiI1v-lXdCkEotUnGpByqkGQNGNXb18GAx2aJXI2H1nvT0wtPO2YR9GB-FERmellSgJK30JiN1-CiwQmLmZ65A1OzO7qGdatQ8JWqZDCFtwV4OsGouou-PTEZlWF9/w249-h400/MathType_mtnxcwkff5.png&quot; width=&quot;249&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Czyli dostajemy postać:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd8Z2F1QloEa5KPMV3nPCJxk5815eHmKqPA58J1B8OggSWsXHZgmN8CTf09NU79IS5_mGt3YsOJdry_oS-o6cIqveH5ZcQz3ilOOkvdp6bcXw1DLR-mv2L1gSkURayWZZGDI6cJHdxtN1bj5i7VA3rcyjCFAAddeAFh9zRHuDGEMCtS63LJd-whIOp/s708/MathType_9fOfe95vcU.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;266&quot; data-original-width=&quot;708&quot; height=&quot;120&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd8Z2F1QloEa5KPMV3nPCJxk5815eHmKqPA58J1B8OggSWsXHZgmN8CTf09NU79IS5_mGt3YsOJdry_oS-o6cIqveH5ZcQz3ilOOkvdp6bcXw1DLR-mv2L1gSkURayWZZGDI6cJHdxtN1bj5i7VA3rcyjCFAAddeAFh9zRHuDGEMCtS63LJd-whIOp/s320/MathType_9fOfe95vcU.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Powiedzmy jednak, że jesteśmy otwarci na eksperymenty z innymi metodami. Porównajmy naszą formułę ze średnią ważoną arytmetyczną i geometryczną.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Średnia ważona arytmetyczna&lt;/span&gt;&lt;/p&gt;&lt;div&gt;To metoda intuicyjna w tym sensie, że wykorzystujemy naturalnie wagi (udziały) spółek z portfela. Każdą wagę mnożymy przez wskaźnik dla danej spółki:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilrskYvwLmjQVgjmZvxW1ndYqgqEwnFBr2ooSjJmICNC2ytE4mGoIkixeINCRBeGdEpRi5T7hB9USuGyOr9p8GR94DpycNISFdbshI582gPxSMnHPVaJKZwlk62l4g99wMGA1E9dn3gTQXGjX7jdmbTP1c7bTNO0NxhakZWgtxS2_Q15Q5clD0SAzd/s629/MathType_hpLIaSUplS.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;177&quot; data-original-width=&quot;629&quot; height=&quot;90&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilrskYvwLmjQVgjmZvxW1ndYqgqEwnFBr2ooSjJmICNC2ytE4mGoIkixeINCRBeGdEpRi5T7hB9USuGyOr9p8GR94DpycNISFdbshI582gPxSMnHPVaJKZwlk62l4g99wMGA1E9dn3gTQXGjX7jdmbTP1c7bTNO0NxhakZWgtxS2_Q15Q5clD0SAzd/s320/MathType_hpLIaSUplS.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wskaźnik C/Z wygląda analogicznie. Teraz pomyślmy co się stanie, gdy zysk trzeciej spółki wynosi zero lub jest bardzo niski. C/Z skacze do nieskończoności albo do ogromnych wartości, a więc średnia ważona C/Z dla całego portfela będzie nienormalnie duża. Czyli z punktu widzenia C/Z widać, że nie należy tego sposobu używać. Ale wszystkie wskaźniki muszą być liczone tą samą metodą, aby zachować spójność i proporcjonalność (chociażby, żeby policzyć ROE ze stosunku C/WK do C/Z). Zatem dostajemy dowód, że C/WK też nie może być liczone w ten sposób.&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Średnia ważona geometryczna&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Trzecią możliwością jest średnia geometryczna z wagami w potęgach:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhfh7uprW3JVoZytLLl8zvSaenYmlzQyebHjEemjpAw6JmQrW_4gxrbhfz_sVsp_K8se5p8eie3Tnd_VHvFL3O7oJ7PKjyiEVicvVoOlrvLnhBRFAXhZMyKmziQfxGzxiVC4wKLhv8cnxnqFHe9q1o7Xk0djMC4gt9wUC1KlK1sWGVCKfSD7b4ZK-/s807/MathType_jEnK9G3PnJ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;463&quot; data-original-width=&quot;807&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhfh7uprW3JVoZytLLl8zvSaenYmlzQyebHjEemjpAw6JmQrW_4gxrbhfz_sVsp_K8se5p8eie3Tnd_VHvFL3O7oJ7PKjyiEVicvVoOlrvLnhBRFAXhZMyKmziQfxGzxiVC4wKLhv8cnxnqFHe9q1o7Xk0djMC4gt9wUC1KlK1sWGVCKfSD7b4ZK-/w400-h230/MathType_jEnK9G3PnJ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tutaj można przeprowadzić identyczne rozumowanie co w przypadku średniej arytmetycznej. Jeśli zysk wyniesie zero, to średnia ważona geometryczna skacze do nieskończoności. Nie musi być to nawet dokładnie zero, wystarczy, że będzie bardzo mały. Gdyby była strata, to już w ogóle nie dałoby się nic policzyć. Jedna spółka całkowicie psuje wskaźnik. Trzeba więc porzucić tę metodę, ale żeby zachować spójność, także C/WK nie może być w ten sposób liczone.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Przykłady&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Zobaczmy przykłady trzech wariantów-okresów. Dla uproszczenia liczba akcji wszędzie równa się 1.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&lt;i&gt;Okres I – wszystkie spółki mają podobny zysk&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Dane wejściowe:&lt;/div&gt;&lt;div&gt;Spółka 1: C1 = 100, Z1 = 10, Kap1 = 100, C1/Z1 = 10&lt;/div&gt;&lt;div&gt;Spółka 2: C2 = 150, Z2 = 10, Kap2 = 150, C2/Z2 = 15&lt;/div&gt;&lt;div&gt;Spółka 3: C3 = 120, Z3 = 10, Kap3 = 120, C3/Z3 = 12&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suma kapitalizacji i zysków:&amp;nbsp;&lt;/div&gt;&lt;div&gt;Kap1 + Kap2 + Kap3 = 370&amp;nbsp;&lt;/div&gt;&lt;div&gt;Z1 + Z2 + Z3 = 30&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wagi:&amp;nbsp;&lt;/div&gt;&lt;div&gt;w1 = Kap1 / (Kap1 + Kap2 + Kap3) = 100 / 370 = 0,27&lt;/div&gt;&lt;div&gt;w2 = 150 / 370 = 0,41&amp;nbsp;&lt;/div&gt;&lt;div&gt;w3 = 120 / 370 = 0,32&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Średnie ważone:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Arytmetyczna = 12,7&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Geometryczna = 12,5&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Harmoniczna = 12,3&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;i&gt;&lt;span style=&quot;color: #444444;&quot;&gt;Okres II – spółka 3 ma spadek zysku o 95% i kapitalizacji o 40%&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Dane wejściowe:&amp;nbsp;&lt;div&gt;Spółka 1: C1 = 100, Z1 = 10, Kap1 = 100, C1/Z1 = 10&amp;nbsp;&lt;/div&gt;&lt;div&gt;Spółka 2: C2 = 150, Z2 = 10, Kap2 = 150, C2/Z2 = 15&amp;nbsp;&lt;/div&gt;&lt;div&gt;Spółka 3: C3 = 72, Z3 = 0,5, Kap3 = 72, C3/Z3 = 144&lt;br /&gt;&lt;br /&gt;Suma kapitalizacji i zysków:&amp;nbsp;&lt;/div&gt;&lt;div&gt;Kap1 + Kap2 + Kap3 = 322&amp;nbsp;&lt;/div&gt;&lt;div&gt;Z1 + Z2 + Z3 = 20,5&lt;br /&gt;&lt;br /&gt;Wagi:&amp;nbsp;&lt;/div&gt;&lt;div&gt;w1 = Kap1 / (Kap1 + Kap2 + Kap3) = 100 / 322 ≈ 0,31&lt;/div&gt;&lt;div&gt;w2 = 150 / 322 ≈ 0,47&amp;nbsp;&lt;/div&gt;&lt;div&gt;w3 = 72 / 322 ≈ 0,22&lt;br /&gt;&lt;br /&gt;Średnie ważone:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Arytmetyczna = 42,3&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Geometryczna = 21,9&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Harmoniczna = 15,7&lt;/b&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444;&quot;&gt;&lt;i&gt;Okres III – spółka 3 ma zysk zero i spadek ceny o 50%&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Dane wejściowe:&amp;nbsp;&lt;/div&gt;&lt;div&gt;Spółka 1: C1 = 100, Z1 = 10, Kap1 = 100, C1/Z1 = 10&amp;nbsp;&lt;/div&gt;&lt;div&gt;Spółka 2: C2 = 150, Z2 = 10, Kap2 = 150, C2/Z2 = 15&amp;nbsp;&lt;/div&gt;&lt;div&gt;Spółka 3: C3 = 60, Z3 = 0, Kap3 = 60, C3/Z3 = nieskończoność&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suma kapitalizacji i zysków:&amp;nbsp;&lt;/div&gt;&lt;div&gt;Kap1 + Kap2 + Kap3 = 310&amp;nbsp;&lt;/div&gt;&lt;div&gt;Z1 + Z2 + Z3 = 20&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wagi:&amp;nbsp;&lt;/div&gt;&lt;div&gt;w1 = Kap1 / (Kap1 + Kap2 + Kap3) = 100 / 310 = 0,32&amp;nbsp;&lt;/div&gt;&lt;div&gt;w2 = 150 / 310 = 0,48&amp;nbsp;&lt;/div&gt;&lt;div&gt;w3 = 60 / 310 = 0,19&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Średnie ważone:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Arytmetyczna = nieskończoność&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Geometryczna = nieskończoność&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Harmoniczna = 15,5&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Spójrzmy jak &quot;oporna&quot; jest ta średnia harmoniczna - nawet przy nieskończonej wartości C/Z dla jednego składnika, jest stabilna, a dla ogromnych wzrostów wskaźników niewiele się zmienia.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Co ze stratami?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Konstrukcja średniej harmonicznej pozwala też użyć jej dla spółek ze stratami, jeśli nie przeważają nad zyskami pozostałych. Ponieważ wskaźniki poszczególnych spółek sztucznie usuwa się z analizy, gdy występują straty, to lepiej używać wzoru ze stosunkiem sum, ponieważ ten z wagami wymaga użycia indywidualnych wskaźników.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;I tu zaczyna się problem. Obecnie dwie z WIG20 są pod kreską (Pepco i PGE). Jeśli ich nie uwzględnimy, to sztucznie zaniżymy C/Z. Powoduje to nie tylko błędną analizę porównawczą, ale też dostaniemy nieprawidłowe ROE dzieląc C/WK przez C/Z.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Potrzebujemy więc odpowiednich danych, tj. strat dla tych spółek, których nie wyłuskam ze wskaźników (raczej nie podaje się ich, gdy są ujemne). Spojrzałem więc na dane w dwóch źródłach - bankier.pl i biznesradar.pl. Oba portale pokazują inne liczby.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Biznesradar: dla Pepco wskazuje ponad 3 mld zł strat, dla PGE ponad 1,5 mld strat.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Bankier: dla Pepco w ogóle nie wykazuje ani zysku ani strat, dla PGE to 1,64 mld strat.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Biorąc dane Bankiera dostałbym C/Z&amp;nbsp; = 14,59, natomiast wg Bizneradar ok. 17. Zakładając, że bankier.pl ma bardziej poprawne dane, możemy uznać, że gpw uwzględnia straty - wtedy wszystko będzie prawidłowo (przypominam, że podali 14,66).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Straty trzeba koniecznie uwzględnić we wskaźnikach nie tylko dlatego, że&amp;nbsp; błędnie omijamy gorsze spółki, ale także po to, aby utrzymać współmierność z innymi wskaźnikami. Jeżeli policzymy C/WK normalnie sumując wszystkie kapitalizacje i dzieląc je na sumę wartości księgowych (czyli średnią harmoniczną), dostaniemy dla WIG20 1,65 (stan na 21.08.2025), czyli praktycznie idealnie się zgadza z danymi gpw, a różnica wynika z zaokrągleń (przypominam, że na gpw podali 1,64).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Jak robią na stooq.pl?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Wg średniej ważonej arytmetycznej dostajemy C/Z 17,7 i C/WK 3,25. Wg średniej ważonej geometrycznej będzie to odpowiednio 13,97 i 2,26. W ogóle to nie odpowiada 16,19 i 2,86, które prezentował stooq na 21.08.&amp;nbsp; Czyli stosują jeszcze jakąś inną metodę. Jedynie, co warto odnotować, to to, że (17,7 + 13,97) / 2 = 15,84, a (3,25 + 2,26) / 2 =&amp;nbsp; daje 2,76, czyli naprawdę blisko. Sugeruje to, że używają jakiejś pośredniej metody.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Problem z ROE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Takie różnice w szacowaniu wskaźników prowadzą do dużych rozbieżności w określeniu rentowności kapitału własnego. Poprawna metoda, którą tu pokazałem, wskazuje, że dla WIG20 ROE = 1,66 / 15,11 = ok. 11%. Wg oficjalnych wskaźników GPW, byłoby to 1.64 / 14.66 = 11,2%. Ale wg stooq to jest 17,7%. Raczej nie jest przypadkiem, że wg śr. ważonej arytm. wychodzi 17,8%.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wszystko wskazuje na to, że stooq.pl zawyża wszystkie te wskaźniki, co prowadzi do zaburzeń przy wycenie indeksu. Moje obliczenia we wpisie&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/03/jaka-piekna-katastrofa.html&quot; target=&quot;_blank&quot;&gt;Jaka piękna katastrofa&lt;/a&gt;&amp;nbsp;, w którym badałem na szybko historyczne EPS, ROE i WK okazują się błędne. Jednak sama wycena, którą wtedy pokazałem, może być nadal poprawna. Od tamtego czasu wzrósł EPS, zatem będzie wyższa. Na ten moment wyceniam WIG20 na ok. 1950, czyli nadal uważam, że indeks jest mocno przewartościowany.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wszystkie obliczenia do tego artykułu zamieściłem w &lt;a href=&quot;https://docs.google.com/spreadsheets/d/19byfWbfI50wWMMBvv7F9_j1YwPPZgyNJqgENrgLFolY/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;tym linku&lt;/a&gt;.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7586808306474212147/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/policzmy-w-koncu-poprawnie-wskazniki.html#comment-form' title='Komentarze (9)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7586808306474212147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7586808306474212147'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/policzmy-w-koncu-poprawnie-wskazniki.html' title='Policzmy w końcu poprawnie wskaźniki indeksów'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivQ5Tlvjoj9WbhCcLM0W3U6avBQn5udw7wZatHvM9bvUBp3cqrS8XLybDX3qANKR2cj67fnsvGEMt20r-cr4Co30jwVV8Bc8FJFtVCZvSbqOThaC4LgBlRd16sdcRtwbh_lNFmUYJXPgu9CktPzbBC5VD26P6WWyuRCYNcroOnCi3ao0eZzH1Rls5C/s72-c/MathType_shNqdRnZYh.png" height="72" width="72"/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-8192547946151054388</id><published>2025-08-11T16:22:00.008+02:00</published><updated>2025-08-14T00:41:00.926+02:00</updated><title type='text'>Przecięcie KSP z DSP to zapowiedź bessy?</title><content type='html'>Ostatnio giełda mnie mocno zaskakuje, chyba nie tylko mnie (nie spodziewałem się tak szybkiego powrotu do hossy), dlatego nie będę się mądrzył, że zaraz to na pewno wszystko walnie. Jedynie zwrócę uwagę na ryzyko jakie warto wziąć pod uwagę w najbliższej przyszłości.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Parę lat temu napisałem &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2021/09/spread-miedzy-dugo-krotkoterminowa.html&quot; target=&quot;_blank&quot;&gt;ten wpis&lt;/a&gt;&amp;nbsp;i omówiłem wyniki badań związku między spredem rentowności a zmianami PKB. Dla przypomnienia:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;KSP - krótkoterminowa stopa procentowa&lt;/div&gt;&lt;div&gt;DSP - długoterminowa stopa procentowa&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Badania Clintona [Clinton, K., &lt;i&gt;The term structure of interest rates as a leading indicator of economic activity: A technical note&lt;/i&gt;, 1995] wskazują, że spread między DSP a KSP to &quot;doskonały predyktor zmian aktywności gospodarczej w Kanadzie&quot;. Gdy DSP jest znacznie większa od KSP, silny wzrost PKB nastąpi mniej więcej w kolejnym roku. Gdy KSP &amp;gt; DSP, prawdopodobnie szykuje się recesja. Trzeba dodać, że to badanie jest dość stare, bo dotyczy lat 1962-93.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przeanalizujemy sytuację w USA. Do niedawna KSP była rzeczywiście większa od DSP - i to po raz pierwszy w tak widoczny sposób. Co więcej, porównałem momenty lokalnych szczytów S&amp;amp;P 500, po których następował spadek nie mniej niż 20%:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSV8yg2Y0E_D4Ej3QYhwDzjr-Or8Xw4zn400Z5RWMw1F5OqhRzQi5y2gpGtsVIP3umLwHUfWEalEy_5F-u9g2hJ8xIVjxGG0YWjn55UJHjuygOz1q8v2lqFCDHATUDrOCwvSSlX0ZJIT3PjoZmZ9UNNNQ0x_6R3NsZ1cQathYpW_dShki8gKphj26a/s855/rstudio_CbG6dn6jCt.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;555&quot; data-original-width=&quot;855&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSV8yg2Y0E_D4Ej3QYhwDzjr-Or8Xw4zn400Z5RWMw1F5OqhRzQi5y2gpGtsVIP3umLwHUfWEalEy_5F-u9g2hJ8xIVjxGG0YWjn55UJHjuygOz1q8v2lqFCDHATUDrOCwvSSlX0ZJIT3PjoZmZ9UNNNQ0x_6R3NsZ1cQathYpW_dShki8gKphj26a/w400-h260/rstudio_CbG6dn6jCt.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Najczęściej szczyty korespondowały z przecięciami KSP (czerwona) z DSP (zielona). Oczywiście sam moment był losowy, ale widać, że zakres, gdy obie stopy były bardzo blisko siebie, wiązał się z największymi spadkami indeksu. W dwóch przypadkach mechanizm ten nie zadziałał (1987, 2022) i prawidłowo, bo przyczyny leżały poza gospodarką USA. Wprawdzie na początku 2023 nastąpiło przecięcie, ale było to już zakończenie krótkiej, wojennej, bessy. Chociaż raczej mówimy tu o pełnym przecięciu, to czasem wystarczyło stykanie się. W 2019 KSP i DSP dotykały się, ale nie przecięły i nie było bessy - a mimo wszystko indeks i tak zaliczył istotną korektę.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Z czego wynika ten mechanizm? W uproszczeniu powinniśmy kojarzyć tak: KSP - teraźniejszość i bliska przyszłość (do roku), DSP - niedaleka przyszłość (do roku) plus daleka przyszłość (po roku). Przez przyszłość mam na myśli sferę realną oraz inflację. Inflacja teraz jest nieistotna, zajmijmy się częścią realną. W uproszczeniu: większe KSP niż DSP to lepsza teraźniejszość niż przyszłość i vice versa - mniejsze KSP niż DSP to gorsza teraźniejszość niż przyszłość.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To jednak duże uproszczenie, a sam spred niewiele mówi, biorąc pod uwagę, że jest on ujemny od końcówki 2022. Przez to zresztą rok temu pomyliłem się,&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/05/kolejne-wykresy-jako-ostrzezenie.html&quot; target=&quot;_blank&quot;&gt;sądząc, że bessa tuż za rogiem&lt;/a&gt;. Trzeba podzielić przyszłość na dwie części:&lt;/div&gt;&lt;div&gt;- bieżące oczekiwania, bardziej pewne&lt;/div&gt;&lt;div&gt;- większą niepewność przyszłości.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jeżeli KSP przegania DSP, to można sądzić, że następuje przesadny optymizm czasem dyskontowany od razu (np. rok 2000), a czasami dopiero gdy rynek orientuje się, że był to hurraoptymizm i następuje powrót KSP do DSP (rok 2007). W pierwszym przypadku inwestorzy wierzą, że inwestycje firm szybciej się zwrócą lub przyniosą większe zyski. Sprzedają więc krótkie terminy i kupują długie, podwyższając KSP. W drugim przypadku&amp;nbsp; ich oczekiwania maleją albo niepewność rośnie i znów kupują krótkie terminy, obniżając KSP. Jednak niepewność przyszłości i bieżące oczekiwania powinniśmy oddzielić. Jeśli pierwsze rośnie, a drugie spada, to DSP może stać w miejscu (bo DSP zawiera obydwa czynniki), a KSP może ją wtedy przeciąć. Gdy niepewność zacznie rosnąć, a bieżące oczekiwania będą stać w miejscu, to KSP może stać w miejscu (bo KSP nie zawiera dalekiej niepewności), a DSP przeciąć KSP (z dołu w górę). I taka sytuacja byłaby pozytywnym sygnałem w dłuższym terminie mimo iż niepewność wzrasta. Spred staje się dodatni, a rosnącą niepewność inwestorzy uznają bardziej za szansę niż zagrożenie, wiedząc, że w równowadze stopa procentowa powinna odzwierciedlać produktywność gospodarki.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/8192547946151054388/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/przeciecie-ksp-z-dsp-to-zapowiedz-bessy.html#comment-form' title='Komentarze (5)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8192547946151054388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8192547946151054388'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/przeciecie-ksp-z-dsp-to-zapowiedz-bessy.html' title='Przecięcie KSP z DSP to zapowiedź bessy?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSV8yg2Y0E_D4Ej3QYhwDzjr-Or8Xw4zn400Z5RWMw1F5OqhRzQi5y2gpGtsVIP3umLwHUfWEalEy_5F-u9g2hJ8xIVjxGG0YWjn55UJHjuygOz1q8v2lqFCDHATUDrOCwvSSlX0ZJIT3PjoZmZ9UNNNQ0x_6R3NsZ1cQathYpW_dShki8gKphj26a/s72-w400-h260-c/rstudio_CbG6dn6jCt.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-8678738182709983031</id><published>2025-08-01T17:23:00.012+02:00</published><updated>2025-08-02T15:52:51.160+02:00</updated><title type='text'>Poprawka do analizy premii za ryzyko S&amp;P 500</title><content type='html'>Wykonana &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/06/krotka-analiza-i-prognoza-premii-za.html&quot; target=&quot;_blank&quot;&gt;ostatnio analiza premii za ryzyko S&amp;amp;P 500&lt;/a&gt; wskazywała, że roczne zmiany można modelować za pomocą ARMA(7, 4). Dziś widzę, że zawierała 3 problemy. Po pierwsze metoda &quot;full&quot; w funkcji autoarfima (pakiet rugarch dla R), którą wówczas uważałem za bardziej precyzyjną, lepszą, wcale taka nie jest. Poprzez symulacje przetestowałem ją i okazało się, że &quot;partial&quot; dużo lepiej znajduje prawidłowe rzędy. Wydawało się, że skoro &quot;full&quot; jest tak potwornie wolna, bo sprawdza wszystkie możliwe kombinacje (a więc np. 1 rzędu nie ma, ale jest drugi i trzeci, albo drugiego nie ma, ale jest pierwszy i trzeci, albo pierwszego i drugiego nie ma, ale jest trzeci itd.), to będzie najdokładniejsza. Chociaż na obrazkach rzeczywiście dopasowanie było niezłe, to jednak wiadomo, że w próbie zawsze może być zbyt przypadkowe.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Drugi problem to założenie rozkładu t-studenta w resztach modelu. Właściwie dlaczego założyłem taki? Stopy zwrotu są zazwyczaj dalekie od normalności, a rozkład Studenta uwzględnia grubsze ogony. Proces MA można zapisać jako AR wielu rzędów z przeszłości (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2022/05/symulacja-i-automatyczne-modelowanie.html&quot; target=&quot;_blank&quot;&gt;ten wpis&lt;/a&gt;), a skoro AR to właśnie stopa zwrotu, tylko opóźniona ze stałymi współczynnikiami, to znaczy, że proces MA ma ten sam rozkład - zakładając stacjonarność stopy zwrotu. A skoro (stacjonarny) MA ma ten sam rozkład, to znaczy, że składnik losowy też ma ten sam rozkład (bo MA jedynie mnoży jego wartość z przeszłości przez stałą). W sumie więc, jeśli stopa zwrotu ma rozkład Studenta, to reszty w ARMA też muszą taki posiadać.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tylko że okazało się, że nie można odrzucić hipotezy o gaussowskości ostatnich 80 rocznych stóp zwrotu lub premii:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CI5B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GPWVOE5CH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;shapiro.test(as.numeric(stopa_zwrotu))
&lt;/span&gt;&lt;span class=&quot;GPWVOE5CB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Shapiro-Wilk normality test

data:  as.numeric(stopa_zwrotu)&lt;br /&gt;W = 0.9804, p-value = 0.257&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nawet ostatnie 120 danych (czyli od 1904 r.) nie zmieniło tego wyniku:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;	Shapiro-Wilk normality test

data:  as.numeric(stopa_zwrotu)&lt;br /&gt;W = 0.9854, p-value = 0.221&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Nienormaność pojawia się dopiero przy większych częstościach. Bardzo możliwe, że przy większej liczbie rocznych obserwacji należy odrzucić rozkład normalny, ale dla danych, które analizowałem, nie można tego zrobić.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Po trzecie porównałem autoarfima z auto.arima z pakietu forecast, zrobiłem różne symulacje ARMA i czasami auto.arima wskazywała prawidłowy model, czasami autoarfima. Stąd doszedłem do wniosku, że należy wykonywać testy obiema funkcjami. W dodatku najlepiej stosować zarówno kryterium nie tylko BIC, ale też AIC.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Premia za ryzyko (od samych akcji)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;autoarfima:&lt;/p&gt;&lt;p&gt;klaster &amp;lt;- makeCluster(detectCores() - 1)&lt;/p&gt;&lt;p&gt;premia_model_arma &amp;lt;- autoarfima(data = premia, ar.max = 10, ma.max = 10, cluster = klaster, solver = &quot;nlminb&quot;)&lt;/p&gt;&lt;p&gt;stopCluster(klaster)&lt;/p&gt;&lt;p&gt;Wszystkie kryteria wskazały ten sam model:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*----------------------------------*
*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(0,0,0)
Distribution	: norm 

Optimal Parameters
------------------------------------
       Estimate  Std. Error  t value Pr(&amp;gt;|t|)
mu     0.077126    0.021203   3.6376 0.000275
sigma  0.189641    0.014992  12.6491 0.000000

Robust Standard Errors:
       Estimate  Std. Error  t value Pr(&amp;gt;|t|)
mu     0.077126    0.019321   3.9917 0.000066
sigma  0.189641    0.017623  10.7608 0.000000

LogLikelihood : 19.4946 

Information Criteria
------------------------------------
                     
Akaike       -0.43737
Bayes        -0.37781
Shibata      -0.43857
Hannan-Quinn -0.41349

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.7322  0.3922
Lag[2*(p+q)+(p+q)-1][2]    1.5233  0.3557
Lag[4*(p+q)+(p+q)-1][5]    4.0949  0.2425

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                      1.392  0.2381
Lag[2*(p+q)+(p+q)-1][2]     1.749  0.3081
Lag[4*(p+q)+(p+q)-1][5]     2.110  0.5928


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]      2.253   2  0.3241
ARCH Lag[5]      2.403   5  0.7911
ARCH Lag[10]     5.979  10  0.8171

Nyblom stability test
------------------------------------
Joint Statistic:  0.2461
Individual Statistics:            
mu    0.1522
sigma 0.0835

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 0.61 0.749 1.07
Individual Statistic:	 0.35 0.47 0.75&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Model jest dobrze dopasowany: stabilny, nie występują autokorelacje w resztach ani ARCH. Czyli nie żadna ARMA, ale zwykła średnia. Średnioroczna premia za ryzyko wynosi &lt;b&gt;7,7% +/- 19% &lt;/b&gt;(nie mylmy tu błędu standardowego reszt, który wynosi 1,9% - on wskazuje jak średnia przypadkowo się odchyla, a nie sama stopa zwrotu).&lt;/p&gt;&lt;p&gt;To samo auto.arima:&lt;/p&gt;&lt;p&gt;premia_model_arma &amp;lt;- auto.arima(premia, max.p=10, max.q=10, stepwise = FALSE,&amp;nbsp; approximation = FALSE)&lt;/p&gt;&lt;p&gt;Argumenty stepwise i approximation ustawiam na FALSE, bo zwiększają precyzję algorytmu. Niezależnie od kryterium dostaniemy model:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Series: premia 
ARIMA(0,0,0) with non-zero mean 

Coefficients:
       mean
      0.077
s.e.  0.021

sigma^2 = 0.0364:  log likelihood = 19.49
AIC=-34.99   AICc=-34.83   BIC=-30.23&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;Obydwie funkcje - na obydwu kryteriach BIC i&amp;nbsp; AIC wskazały ten sam model - zwykłą średnią. To jest silny argument za odrzuceniem poprzedniego modelu ARMA.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Można pokazać to na wykresie:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcJGYcfqfbA_hMIwRGfkCGaIOXGZj6eVMbgNxg8KWuwfZzndE1CDMzbNEDT5bW1CiGjxG6wMAMjd3jDuCLMArjtTIMM_z3h9-zo30LjwJzAwnvls-LCgAhXIeRJAg_6KK_EqBvR7OiXZ6NLRoHrjdZdWyGOkw1TjU6wqLjyt01y-t92PahCqr7s0eU/s766/rstudio_1xOdelO5b8.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;555&quot; data-original-width=&quot;766&quot; height=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcJGYcfqfbA_hMIwRGfkCGaIOXGZj6eVMbgNxg8KWuwfZzndE1CDMzbNEDT5bW1CiGjxG6wMAMjd3jDuCLMArjtTIMM_z3h9-zo30LjwJzAwnvls-LCgAhXIeRJAg_6KK_EqBvR7OiXZ6NLRoHrjdZdWyGOkw1TjU6wqLjyt01y-t92PahCqr7s0eU/w400-h290/rstudio_1xOdelO5b8.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Premia za ryzyko od akcji i obligacji skarbowych&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Obligacje skarbowe są obarczone głównie ryzykiem stopy procentowej. Aby je uwzględnić metodą ad hoc, odejmujemy od stopy zwrotu z akcji rentowność bonów skarbowych. Nie jest to prawdziwa premia, bo nie uwzględnia zależności między akcjami a obligacjami, ale daje pewien obraz.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Test na normalność:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CB5B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;
	Shapiro-Wilk normality test

data:  premia
W = 0.9845, p-value = 0.447&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Czyli też zachowuje się normalnie.&lt;/p&gt;&lt;p&gt;Analogicznie jak poprzednio używamy autoarfima i auto.arima.&lt;/p&gt;&lt;p&gt;autoarfima:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*----------------------------------*
*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(0,0,0)
Distribution	: norm 

Optimal Parameters
------------------------------------
       Estimate  Std. Error  t value Pr(&amp;gt;|t|)
mu     0.089739    0.019332   4.6421 0.000003
sigma  0.172907    0.013670  12.6491 0.000000

Robust Standard Errors:
       Estimate  Std. Error  t value Pr(&amp;gt;|t|)
mu     0.089739    0.017760   5.0529        0
sigma  0.172907    0.012238  14.1292        0

LogLikelihood : 26.885 

Information Criteria
------------------------------------
                     
Akaike       -0.62212
Bayes        -0.56257
Shibata      -0.62333
Hannan-Quinn -0.59825

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4299  0.5121
Lag[2*(p+q)+(p+q)-1][2]    1.4963  0.3619
Lag[4*(p+q)+(p+q)-1][5]    4.3507  0.2134

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.9464  0.3306
Lag[2*(p+q)+(p+q)-1][2]    3.1373  0.1288
Lag[4*(p+q)+(p+q)-1][5]    4.8670  0.1640


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]      5.497   2 0.06403
ARCH Lag[5]      5.442   5 0.36440
ARCH Lag[10]    10.107  10 0.43112

Nyblom stability test
------------------------------------
Joint Statistic:  0.1892
Individual Statistics:            
mu    0.1121
sigma 0.0580

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 0.61 0.749 1.07
Individual Statistic:	 0.35 0.47 0.75&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;auto.arima:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Series: premia 
ARIMA(0,0,0) with non-zero mean 

Coefficients:
       mean
      0.090
s.e.  0.019

sigma^2 = 0.0303:  log likelihood = 26.88
AIC=-49.77   AICc=-49.61   BIC=-45.01&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ponownie obie funkcje wskazały ten sam model zwykłej średniej: &lt;b&gt;&quot;pełna premia&quot; wynosi 9% +/- 17,3%. Taki wynik uzyskałem niezależnie od użytego kryterium.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;I wykres:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJ48yetBO-QmgNTLTNIfteIW4ErW7yxbkYmT6hoGPI__cG7FrqaSUydYv_TA7dlA_X7xcVvBJZDLB4HLyN2ebzjm3w2Th88ownQ5SPwj55aZr0zraDpRlgTxYUGXfcFbZrhJHlCHfbQ09GR8z6oqvoZmNrAiQ4hUafcWLLBTOy5IaJG_VDDT73pl1/s760/rstudio_nyWsChS8WB.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;558&quot; data-original-width=&quot;760&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitJ48yetBO-QmgNTLTNIfteIW4ErW7yxbkYmT6hoGPI__cG7FrqaSUydYv_TA7dlA_X7xcVvBJZDLB4HLyN2ebzjm3w2Th88ownQ5SPwj55aZr0zraDpRlgTxYUGXfcFbZrhJHlCHfbQ09GR8z6oqvoZmNrAiQ4hUafcWLLBTOy5IaJG_VDDT73pl1/w400-h294/rstudio_nyWsChS8WB.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Chociaż brak zależności w rocznych stopach pogarsza sytuację prognostyczną, to z punktu widzenia inwestora może się ona nawet poprawić. Po pierwsze ułatwia mu wycenę - nie musi uwzględniać zmienności stopy dyskontowej. Po drugie zwiększa szansę, że wycena będzie szybko zbiegać do jego wyceny, a nie od niej uciekać. Na ten moment, nawet bez wyceny, możemy spekulować, że premia w 2025 spadnie, choć powinna pozostać dodania.&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/8678738182709983031/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/poprawka-do-analizy-premii-za-ryzyko-s.html#comment-form' title='Komentarze (12)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8678738182709983031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8678738182709983031'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/08/poprawka-do-analizy-premii-za-ryzyko-s.html' title='Poprawka do analizy premii za ryzyko S&amp;P 500'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcJGYcfqfbA_hMIwRGfkCGaIOXGZj6eVMbgNxg8KWuwfZzndE1CDMzbNEDT5bW1CiGjxG6wMAMjd3jDuCLMArjtTIMM_z3h9-zo30LjwJzAwnvls-LCgAhXIeRJAg_6KK_EqBvR7OiXZ6NLRoHrjdZdWyGOkw1TjU6wqLjyt01y-t92PahCqr7s0eU/s72-w400-h290-c/rstudio_1xOdelO5b8.png" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-817777094775927695</id><published>2025-06-09T19:19:00.054+02:00</published><updated>2025-08-08T12:47:10.914+02:00</updated><title type='text'>Krótka analiza i prognoza premii za ryzyko S&amp;P 500 (język R)</title><content type='html'>&lt;p&gt;Powiedzmy, że chcemy oszacować premię za ryzyko amerykańskiej giełdy w roku 2025 i 2026. Określenie &quot;premia za ryzyko&quot; używam jako skrót na oznaczenie nadwyżki stopy zwrotu z indeksu (tu S&amp;amp;P 500) nad stopę zwrotu z 10-letnich obligacji skarbowych. Precyzyjnie przecież mówiąc o premii mamy na myśli oczekiwane lub wymagane wynagrodzenie za przyszłe ryzyko, czyli takie, którego okres jeszcze nie zaczął się. I może się zrealizować (wtedy albo stracimy, albo mniej zarobimy), albo nie zrealizować (zarobimy co najmniej tyle, ile wymagamy). Dodatnia premia za ryzyko wynika z tego, że inwestorzy są niechętni wobec ryzyka. To znaczy, że wyceniają niżej aktywa o wyższym ryzyku. Mechanizm ten pozwala łatwo zrozumieć, dlaczego oczekiwana (a więc i średnia) stopa zwrotu jest dodatnia, a nie zerowa, jak w hazardzie. Otóż cała tajemnica leży w tym, że to ludzie wyceniają aktywa, a nie natura. Jeżeli wielu inwestorów będzie wyceniać niżej akcje z powodu ich większego ryzyka, to przecież spółka nie przestaje zarabiać tyle co zarabiała, jej wartość księgowa się nie zmienia. Spadek ceny oznacza więc, że inwestorzy mogą więcej zarobić, sprzedając w przyszłości akcje. Ryzyko jest mimo wszystko miarą psychologiczną, a więc dość subiektywną - i to właśnie sprawia, że inwestowanie daje dużo większe możliwości niż hazard.&lt;/p&gt;&lt;p&gt;Historyczne roczne premie za ryzyko S&amp;amp;P 500 dla lat 1945-2024 biorę ze &lt;a href=&quot;https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/histretSP.html&quot; target=&quot;_blank&quot;&gt;strony Damodarana&lt;/a&gt;. Średnia wyniosła 7,7%. To coś dużo biorąc pod uwagę, że średnia stopa wolna od ryzyka to ok. 5%. Porównałem więc te dane z&amp;nbsp;&lt;a href=&quot;https://www.spglobal.com/spdji/en/indices/multi-asset/sp-us-equity-risk-premium-index/#overview&quot; target=&quot;_blank&quot;&gt;S&amp;amp;P U.S. Equity Risk Premium Index&lt;/a&gt;.&amp;nbsp;Obejmuje on zajęcie długiej pozycji w indeksie S&amp;amp;P 500 Futures Excess Return Index i krótkiej pozycji w indeksie S&amp;amp;P U.S. Treasury Bond Futures Excess Return Index [zob.&amp;nbsp;&lt;i&gt;S&amp;amp;P Factor Indices Methodology&lt;/i&gt;].&amp;nbsp;Od 2015 roku dostałem taki wykres:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGxh8ZdW8SwpysDnnWxU6qvffKBBP_5rKvMX4cOsVmS9kMETuuDaal3P_twR8szTnrnkvtVEfo0plqfT_njYaBzCA0uEgSRPSpRxwws0P1fv1_LSq4KX1FsS_H3uNd91yQGyUyNZI8eBhKOO0txzausk4c09IlQFARUd58eFEyAYW6lI6rZVy0NIlh/s910/EXCEL_MbrkmhY9CB.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;516&quot; data-original-width=&quot;910&quot; height=&quot;226&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGxh8ZdW8SwpysDnnWxU6qvffKBBP_5rKvMX4cOsVmS9kMETuuDaal3P_twR8szTnrnkvtVEfo0plqfT_njYaBzCA0uEgSRPSpRxwws0P1fv1_LSq4KX1FsS_H3uNd91yQGyUyNZI8eBhKOO0txzausk4c09IlQFARUd58eFEyAYW6lI6rZVy0NIlh/w400-h226/EXCEL_MbrkmhY9CB.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;A więc dane są poprawne, bo idealnie korelują. Oczywiście w tym okresie średnia była jeszcze wyższa i dla S&amp;amp;P U.S. Equity Risk Premium Index wyniosła 13,2%, a Damodarana 13,5%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Stabilność średniej&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Pytanie brzmi czy średnia się zmieniała w ciągu tych 80 lat. Przez pierwsze 40 lat wyniosła ok. 8,6%, a kolejne niecałe 6,8%. Sprawdźmy czy możemy uznać to za coś więcej niż przypadek.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jeżeli dzielimy okres na dwie części, to najlepiej użyć &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2015/01/jak-sprawdzic-stabilnosc-modelu.html&quot; target=&quot;_blank&quot;&gt;testu Chowa&lt;/a&gt;. W &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2022/05/jaka-jest-roznica-miedzy-testem-t.html&quot; target=&quot;_blank&quot;&gt;tym artykule&lt;/a&gt; pokazałem, jak go wykonać w R.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;if (require(&quot;strucchange&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; install.packages(&quot;strucchange&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; library(&quot;strucchange&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sctest(premia ~ 1, type=&quot;Chow&quot;, point=40)&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;	Chow test

data:  premia ~ 1
F = 0.18, p-value = 0.7&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;Jak widać nie ma podstaw do odrzucenia hipotezy, że średnia jest stała. Wykonałem dodatkowo najróżniejsze testy (ADF, KPSS, Bai-Perrona, CUSUM, MOSUM) i nie wykryłem niestacjonarności czy niestabilności.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Modelowanie&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Jeżeli średnia się nie zmienia, to trzeba sprawdzić autokorelację. Najpierw ACF:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;acf(premia, 15)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV13uke4S_9SPoVtF43VuuyCcCNurnpVh9qiRYnqY4Dc6TDIVEpollrll391AxY3OURJa8p0vOBd_c2dDHwIoRc1r89QoFYGQ5sxbZb4ODiTowoxcVOGEC-SDlqab5tsydCbF6Hs5UOI5MC9u56h2R6xIxH7D9RwysmP6CASVu5cmKe5udomX4CyVy/s769/rstudio_zifR8WxuLl.png&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; margin-left: 1em; margin-right: 1em; text-align: center; white-space-collapse: collapse;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;224&quot; data-original-width=&quot;769&quot; height=&quot;93&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV13uke4S_9SPoVtF43VuuyCcCNurnpVh9qiRYnqY4Dc6TDIVEpollrll391AxY3OURJa8p0vOBd_c2dDHwIoRc1r89QoFYGQ5sxbZb4ODiTowoxcVOGEC-SDlqab5tsydCbF6Hs5UOI5MC9u56h2R6xIxH7D9RwysmP6CASVu5cmKe5udomX4CyVy/w320-h93/rstudio_zifR8WxuLl.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Do dziś nie mogę z tego, że R pokazuje bez sensu ten zerowy rząd. Głupota. W cząstkowej jest już normalnie od pierwszego rzędu:&amp;nbsp;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;pacf(premia, 15)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirwvSL0JRdAXQWpmpFr-QF05CcsKvkD6nE91vpkom8LOdy9VcrXEMesQsVx32Y5bcOvzhkzc_-3xTrXZughV86JdC7AYywvnwrm36LO0fatmEry6AJpL0wyOKq5ILXVl__vZcCt1OUEEdV5bCbt1vuuMt4QHRGJ5Ej5Q_zMsXGPlT4C_a-y5-wRQPP/s769/rstudio_gDmyzjpeU1.png&quot; style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; margin-left: 1em; margin-right: 1em; text-align: center; white-space-collapse: collapse;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;220&quot; data-original-width=&quot;769&quot; height=&quot;92&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirwvSL0JRdAXQWpmpFr-QF05CcsKvkD6nE91vpkom8LOdy9VcrXEMesQsVx32Y5bcOvzhkzc_-3xTrXZughV86JdC7AYywvnwrm36LO0fatmEry6AJpL0wyOKq5ILXVl__vZcCt1OUEEdV5bCbt1vuuMt4QHRGJ5Ej5Q_zMsXGPlT4C_a-y5-wRQPP/s320/rstudio_gDmyzjpeU1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;W Dodatku do tego artykułu zrobiłem analogiczną analizę dla nadwyżki nad bonami. Tam PACF 4-tego rzędu jest na granicy istotności. Tutaj natomiast nie można mówić o jakiejkolwiek istotności. Z tego z kolei wynika, że obligacje skarbowe mają swój udział w cyklu 4-letnim (bo je&amp;nbsp;tam dodaliśmy).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Mimo wszystko sprawdzę model AR(4) i jego stabilność. W R kod będzie następujący:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Pierwszy model - arima&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma1 &amp;lt;- arima(&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; premia,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; order&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= c(4, 0, 0),&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # ARMA(4, 0, 0)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; include.mean&amp;nbsp; &amp;nbsp; = TRUE,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # estymuj μ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; fixed&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= c(0, 0, 0, NA, NA),&amp;nbsp; # φ1=0, φ2=0, φ3=0, φ4=estymuj, μ=estymuj&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; transform.pars&amp;nbsp; = FALSE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # aby fixed=0 było literalne&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; summary(premia_model_arma1)&lt;/span&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Coefficients:
      ar1  ar2  ar3    ar4  intercept
        0    0    0  0.205      0.079
s.e.    0    0    0  0.111      0.026

sigma^2 estimated as 0.0344:  log likelihood = 21.16,  aic = -36.33

&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;Gdyby zastosować taki model, dostalibyśmy rzeczywiście średnią 7,9% (+/- 2,6%), ale dodatkowo współczynnik 4-tego rzędu 0,205 (+/- 0,11).&lt;/div&gt;&lt;p&gt;Aby sprawdzić stabilność tego modelu, trzeba niestety zamienić na formę typu:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia4 &amp;lt;- tail(zmienna, -4)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia_4 &amp;lt;- head(zmienna, -4)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia.model &amp;lt;- premia4 ~ premia_4&lt;/span&gt;&lt;/p&gt;&lt;p&gt;i przykładowo, żeby użyć testu CUSUM-Score, wpisać:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;par(mfrow=c(3,1), mar=c(2.5,5,1.5,3))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;cus = efp(&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;.model, type=&quot;Score-CUSUM&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;plot(cus, functional=NULL)&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxhlbVQ0iIsNvHfqaq0iioCoW6dLMG5i1_jR_YdWt4XpJm0QtWjOD_SFmIK9S_altfJjX2FBRe9QePQT2TAYJTISZtROb5EM-MZvLuDXsX88lAE-7IDVrBKxEArt92ernTl0XkIC_bgR405YA24BxF9JmweUWHr7HX0321svk8VZgw-r1D8VNQFtYt/s816/rstudio_Fa8hHFGGjQ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;497&quot; data-original-width=&quot;816&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxhlbVQ0iIsNvHfqaq0iioCoW6dLMG5i1_jR_YdWt4XpJm0QtWjOD_SFmIK9S_altfJjX2FBRe9QePQT2TAYJTISZtROb5EM-MZvLuDXsX88lAE-7IDVrBKxEArt92ernTl0XkIC_bgR405YA24BxF9JmweUWHr7HX0321svk8VZgw-r1D8VNQFtYt/w400-h244/rstudio_Fa8hHFGGjQ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Za jednym zamachem mamy tu sprawdzenie stabilności wszystkich współczynników, w tym wariancji. Brak jakichkolwiek wychyleń (byłyby zaznaczenia) świadczy o stabilności.&amp;nbsp;&lt;p&gt;To jednak tylko punkt wyjścia, bo znacznie lepszym sposobem jest użycie autoarfima() w rugarch lub auto.arima() w forecast. Wybrałem ten pierwszy, bo dostarcza wszystkie potrzebne statystyki. Ten argument&amp;nbsp; omówiłem w &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/02/dlaczego-oddzielne-badanie.html&quot; target=&quot;_blank&quot;&gt;tym artykule&lt;/a&gt;. Sprawdziłem więc w autoarfima max ARMA(7, 7) w metodzie full.&amp;nbsp;Wybrałem rozkład &quot;std&quot;, bo dawał najlepsze rezultaty, jeśli chodzi o statystyki dopasowania. Wadą rugarch jest czasochłonność obliczeń, dlatego koniecznie trzeba używać argumentu cluster tam gdzie się da. Ponadto wybrałem solver &quot;nlminb&quot;, ponieważ wydaje się dość efektywny. Użyłem funkcji dwukrotnie - wg kryterium BIC i AIC (HQIC nie używam, bo danych jest za mało, zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2017/07/usuwanie-sezowosci-i-prognozowanie-przy.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). Okazało się, że oba dały ten sam model. Zwracam też uwagę, że nie stosuję tutaj modelu GARCH ze względu na małą liczbę danych. Efekt:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Drugi model - autoarfima (rugarch)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;if (require(&quot;rugarch&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;install.packages(&quot;rugarch&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;library(&quot;rugarch&quot;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;# Kryterium BIC&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; klaster &amp;lt;- makeCluster(detectCores() - 1)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma_bic &amp;lt;- autoarfima(data = premia, ar.max = 7, ma.max = 7, criterion = &quot;BIC&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;method = &quot;full&quot;, arfima = FALSE, include.mean = NULL,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;distribution.model = &quot;std&quot;, cluster = klaster, external.regressors = NULL,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;solver = &quot;nlminb&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; stopCluster(klaster)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma_bic&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Kryterium AIC&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; klaster &amp;lt;- makeCluster(detectCores() - 1)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma_aic &amp;lt;- autoarfima(data = premia, ar.max = 7, ma.max = 7, criterion = &quot;AIC&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; method = &quot;full&quot;, arfima = FALSE, include.mean = NULL,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; distribution.model = &quot;std&quot;, cluster = klaster, external.regressors = NULL,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; solver = &quot;nlminb&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; stopCluster(klaster)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma_aic&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_model_arma2 &amp;lt;- premia_model_arma_aic&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;p style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; white-space-collapse: collapse;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px;&quot;&gt;*----------------------------------*&lt;/span&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(7,0,4)
Distribution	: std 

Optimal Parameters
------------------------------------
       Estimate  Std. Error    t value Pr(&amp;gt;|t|)
ar1     0.44901    0.000926    484.974        0
ar2     0.00000          NA         NA       NA
ar3     0.00000          NA         NA       NA
ar4     0.00000          NA         NA       NA
ar5    -0.22529    0.000465   -484.974        0
ar6     0.00000          NA         NA       NA
ar7     0.34287    0.000027  12785.413        0
ma1    -1.28980    0.000061 -21191.451        0
ma2     0.00000          NA         NA       NA
ma3     0.61606    0.000029  21191.451        0
ma4     0.44741    0.000021  21191.451        0
sigma   0.13607    0.005403     25.184        0
shape 100.00000    0.004585  21809.383        0

Robust Standard Errors:
       Estimate  Std. Error    t value Pr(&amp;gt;|t|)
ar1     0.44901    2.324983    0.19312  0.84686
ar2     0.00000          NA         NA       NA
ar3     0.00000          NA         NA       NA
ar4     0.00000          NA         NA       NA
ar5    -0.22529    1.166585   -0.19312  0.84686
ar6     0.00000          NA         NA       NA
ar7     0.34287    0.000385  891.10681  0.00000
ma1    -1.28980    0.005203 -247.88844  0.00000
ma2     0.00000          NA         NA       NA
ma3     0.61606    0.000766  804.54128  0.00000
ma4     0.44741    0.001619  276.38488  0.00000
sigma   0.13607    0.619235    0.21974  0.82608
shape 100.00000    1.325372   75.45050  0.00000

LogLikelihood : 46.12 

Information Criteria
------------------------------------
                     
Akaike       -0.95299
Bayes        -0.71479
Shibata      -0.97067
Hannan-Quinn -0.85749

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                    0.000611  0.9803
Lag[2*(p+q)+(p+q)-1][32] 11.645908  1.0000
Lag[4*(p+q)+(p+q)-1][54] 17.816677  0.9976

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4785  0.4891
Lag[2*(p+q)+(p+q)-1][2]    0.7811  0.5750
Lag[4*(p+q)+(p+q)-1][5]    2.3214  0.5447


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]      1.519   2  0.4678
ARCH Lag[5]      2.647   5  0.7542
ARCH Lag[10]     9.429  10  0.4920

Nyblom stability test
------------------------------------
Joint Statistic:  231429
Individual Statistics:             
ar1   0.09969
ar5   0.05997
ar7   0.01355
ma1   0.03352
ma3   0.11951
ma4   0.09983
sigma 0.13154
shape 0.42456

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 1.89 2.11 2.59
Individual Statistic:	 0.35 0.47 0.75&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;BIC i AIC wskazały ten sam model: AR o rzędach 1, 5 i 7; MA o rzędach 1, 3 i 4. W nieodpornych statystykach (tj. przy założeniu danego rozkładu, tu t-Studenta) wszystkie są istotne. Jednak statystyki odporne (na odchylenia od założonego rozkładu reszt) wskazują jedynie istotność rzędu 7 dla AR, a dla MA wszystkie są istotne. Pozostałe statystyki są okej, wszystkie współczynniki są stabilne, chociaż znowu cały model mocno niestabilny (pewnie niezbyt idealny rozkład).&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Test MCS&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Aby się upewnić, że na pewno drugi model jest lepszy od pierwszego, użyjemy testu MCS, który omówiłem w&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/05/modele-w-zbiorze-ufnosci-w-rugarch.html&quot; target=&quot;_blank&quot;&gt;poprzednim artykule&lt;/a&gt;. Tak jak wtedy za stratę uznam sytuację, gdy znak prognozy in-sample nie zgadza się ze znakiem rzeczywistej wartości.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-family: courier;&quot;&gt; #MCS test&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; Funkcja_strat &amp;lt;- function(rzeczywiste, prognoza) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; roznica &amp;lt;- rzeczywiste - prognoza&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; strata &amp;lt;- ifelse(sign(rzeczywiste) != sign(prognoza), abs(roznica), 0)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; return(strata)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Obliczenie funkcji strat dla każdego modelu (in-sample)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; straty1 &amp;lt;- Funkcja_strat(premia, as.numeric(fitted(premia_model_arma1)))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; straty2 &amp;lt;- Funkcja_strat(premia, premia_model_arma2$fit@fit$fitted.values)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; straty &amp;lt;- cbind(straty1, straty2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; mcs_stationary &amp;lt;- mcsTest(straty, alpha = 0.05, nboot = 500, nblock = 10, boot = &quot;stationary&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; print(mcs_stationary)&lt;/span&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;$includedR
[1] 1 2

$pvalsR
     [,1]
[1,] 0.23
[2,] 1.00

$excludedR
NULL

$includedSQ
[1] 1 2

$pvalsSQ
     [,1]
[1,] 0.23
[2,] 1.00

$excludedSQ
NULL&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;Test MCS nie pozwolił wykluczyć żadnego z dwóch modeli, ale wskazuje dużo bardziej na zachowanie drugiego, tj. z autoarfima, więc go wybierzemy.&lt;div&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; white-space-collapse: collapse;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Wykres modelu&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Wobec tego sprawdźmy jak te dopasowania dla najlepszego modelu wyglądają:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Wartości dopasowane&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; dopas &amp;lt;- premia_model_arma2$fit@fit$fitted.values&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; okres &amp;lt;- c(1945:2024)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Wykres najlepszego modelu z prawdziwymi obserwacjami&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; plot(x=okres, y=premia, type=&quot;l&quot;, ylab = &quot;&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=okres, y=dopas, col=&quot;red&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=0, col=&quot;grey&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=mean(premia), col=&quot;blue&quot;, lwd=2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; legend(&quot;topright&quot;, legend=c(&quot;premia za ryzyko S&amp;amp;P 500&quot;, &quot;prognoza in-sample&quot;, &quot;średnia premia za ryzyko&quot;),&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col=c(&quot;black&quot;,&quot;red&quot;, &quot;blue&quot;), lwd=2, cex=0.6)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzI1mEb7HEB4rpW3Ab_zHz7N9kKdC5lqTJpKvbWx5zP3Ka3CtcA0jGHNXch0rjsBFN14ocv7mo0b1LyMSyYgnd96yewNmbvSafsFy7ndWuVWuY6UnmN1Xs1HjSQBaG3Rcgszm2GWvsWCy9qOOE3mNL20LbBuQI7709g7eNLmD2h2VAYYXB64rNMTL-/s718/rstudio_6kgH1NBRG3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;718&quot; height=&quot;243&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzI1mEb7HEB4rpW3Ab_zHz7N9kKdC5lqTJpKvbWx5zP3Ka3CtcA0jGHNXch0rjsBFN14ocv7mo0b1LyMSyYgnd96yewNmbvSafsFy7ndWuVWuY6UnmN1Xs1HjSQBaG3Rcgszm2GWvsWCy9qOOE3mNL20LbBuQI7709g7eNLmD2h2VAYYXB64rNMTL-/w400-h243/rstudio_6kgH1NBRG3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Prognoza na 2025-2026&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Niestety nie mam wiedzy, czy można od razu w rugarch robić prognozy mając już najlepszy model z autoarfima. jestem niemal pewny, że jest sposób, ale szybciej jest mi tak zrobić. Dlatego robię to &quot;na piechotę&quot;. Obliczam arfimaspec(), z tego arfimafit i dopiero z tego arfimaforecast(). W arfimaspec() wpisujemy normalnie maksymalne rzędy ARMA, ale za to dodajemy argument &lt;span style=&quot;font-family: courier;&quot;&gt;fixed.pars = list(ar2=0,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;ar3=0)&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;, który właśnie kontroluje ustawienie konkretnych współczynników.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; rzadAR &amp;lt;- premia_model_arma2$fit@model$modelinc[2]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; rzadMA &amp;lt;- premia_model_arma2$fit@model$modelinc[3]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia_spec &amp;lt;- arfimaspec(mean.model = list(armaOrder = c(rzadAR, rzadMA), include.mean = TRUE,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; arfima = FALSE, external.regressors = NULL), distribution.model = &quot;std&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; start.pars = list()&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , fixed.pars = list(ar2=0,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ar3=0,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ar4=0,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ar6=0,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ma2=0)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;premia_fit &amp;lt;- arfimafit(spec = premia_spec, data = premia, solver = &quot;nlminb&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;prognoza &amp;lt;- arfimaforecast(premia_fit, n.ahead = 2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;prognoza&lt;/span&gt;&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*----------------------------------*
*        ARFIMA Model Forecast     *
*----------------------------------*

Horizon: 2
Roll Steps: 0
Out of Sample: 0

0-roll forecast: 
    T+1     T+2 
0.05436 0.07451 &lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;Na rok 2025 dostajemy premię niecałe 5,4% i na 2026 7,5%. Dodajemy nowe prognozy do wykresu:&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; nowa_prognoza &amp;lt;- as.numeric(prognoza@forecast$seriesFor)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Wykres najlepszego modelu z prawdziwymi obserwacjami&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; plot(x=c(okres, 2025, 2026), y=c(premia, NA, NA), type=&quot;l&quot;, ylab = &quot;&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=c(okres, 2025, 2026), y=c(dopas, NA, NA), col=&quot;red&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=c(okres, 2025, 2026), y=c(rep(NA, length(premia)-1), tail(dopas, 1), nowa_prognoza), col=&quot;green&quot;, lwd=2, type=&quot;o&quot;, cex=0.4)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=0, col=&quot;grey&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=mean(premia), col=&quot;blue&quot;, lwd=2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; legend(&quot;topright&quot;, legend=c(&quot;premia za ryzyko S&amp;amp;P 500&quot;, &quot;prognoza in-sample&quot;, &quot;prognoza poza próbą&quot;, &quot;średnia premia za ryzyko&quot;),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col=c(&quot;black&quot;,&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;), lwd=2, cex = 0.6)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadnV91wJEFmIVHWjcSGQFFd-JRF8R4PaaQbTtZHianOcphzKX2AFuvC3X1Z2YIZgn-lU4ac3tMlZVPMvgDW-DF5RGoK0u6RoiUTTt2-yuxKEWXeVfywRhlBpcyAQzKzMHvwcVz54IxvJXikKuqAB1rOz7YsJAbtZBaIAv_fS_iX4TWzQjugEcl06X/s717/rstudio_UueBWqirRe.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;432&quot; data-original-width=&quot;717&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiadnV91wJEFmIVHWjcSGQFFd-JRF8R4PaaQbTtZHianOcphzKX2AFuvC3X1Z2YIZgn-lU4ac3tMlZVPMvgDW-DF5RGoK0u6RoiUTTt2-yuxKEWXeVfywRhlBpcyAQzKzMHvwcVz54IxvJXikKuqAB1rOz7YsJAbtZBaIAv_fS_iX4TWzQjugEcl06X/w400-h241/rstudio_UueBWqirRe.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Prognoza krocząca&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Czerwone linie są tak naprawdę jedynie dopasowaniem do danych, a nie prognozą. Aby uzyskać bardziej realny obraz dobroci modelu, wykonam prognozy kroczące za pomocą arfimaroll(), czyli prognozy out-of-sample. Jest to odpowiednik ugarchroll bez procesu GARCH (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/12/prognoza-kroczaca-z-ruchomym-oknem-w.html&quot; target=&quot;_blank&quot;&gt;ten art.&lt;/a&gt;). Zobaczmy 10 ostatnich kroczących-nawijanych prognoz, tj. od roku 2015:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Prognoza krocząca-nawijana&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; klaster &amp;lt;- makeCluster(detectCores() - 1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_prognoza_roll &amp;lt;- arfimaroll(spec = premia_spec, data = premia, forecast.length = 10,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;refit.every = 1, refit.window = &quot;recursive&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;window.size = NULL, solver = &quot;nlminb&quot;, fit.control = list(ar2=0, ar3=0),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cluster=klaster)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_prognoza_roll &amp;lt;- resume(premia_prognoza_roll)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; stopCluster(klaster)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; prognoza_roll &amp;lt;- premia_prognoza_roll@forecast$density$Mu&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; okres_prognozy_roll &amp;lt;- c(2015:2024)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; names(prognoza_roll) &amp;lt;- okres_prognozy_roll&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; prognoza_roll&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Wykres z prognozą kroczącą&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; plot(x=c(okres, 2025, 2026), y=c(premia, NA, NA), type=&quot;l&quot;, ylab = &quot;&quot;, xlim=c(2015, 2026))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=c(okres, 2025, 2026), y=c(dopas, NA, NA), col=&quot;red&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=c(okres, 2025, 2026), y=c(rep(NA, length(premia)-1), tail(prognoza_roll, 1), nowa_prognoza), col=&quot;green&quot;, lwd=2, type=&quot;o&quot;, cex=0.4)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; lines(x=c(NA, okres_prognozy_roll), y=c(tail(dopas, 1), prognoza_roll), col=&quot;green&quot;, lwd=2, type=&quot;o&quot;, cex=0.4)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=0, col=&quot;grey&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; abline(h=mean(premia), col=&quot;blue&quot;, lwd=2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; legend(&quot;topright&quot;, legend=c(&quot;premia za ryzyko S&amp;amp;P 500&quot;, &quot;prognoza in-sample&quot;, &quot;prognoza poza próbą&quot;, &quot;średnia premia za ryzyko&quot;),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col=c(&quot;black&quot;,&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;), lwd=2, cex = 0.6)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn5-CqFzmgwdfkRQjimcjm1L_Fg87Y6ljnLyGFDkXkpJpTOhakqizHHOLZBTg40muujOGGs_Z1tMtG1D76RcBsACQQhBHgNvWZvzGPN449sifXC0pArOkWR3aFq2M2I4Tzlpt9-j-3QgCLrglCWOgmzGnhrpRp2d9jbqMaC0pdHtMYhsAp0DcNN7Az/s719/rstudio_42Pf2M741I.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;434&quot; data-original-width=&quot;719&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn5-CqFzmgwdfkRQjimcjm1L_Fg87Y6ljnLyGFDkXkpJpTOhakqizHHOLZBTg40muujOGGs_Z1tMtG1D76RcBsACQQhBHgNvWZvzGPN449sifXC0pArOkWR3aFq2M2I4Tzlpt9-j-3QgCLrglCWOgmzGnhrpRp2d9jbqMaC0pdHtMYhsAp0DcNN7Az/w400-h241/rstudio_42Pf2M741I.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Prognoza sugeruje spadek premii w 2025 i może wzrost 2026. Zauważmy tylko, że spadek nie poniżej zera, tylko poniżej średniej. No i oczywiście nie mówi to nic na temat zmian w obligacjach.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Rozkład częstości i gęstości&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Skupiając się na prognozowaniu łatwo jednak zgubić szeroki obraz, tj. ekonomiczne znaczenie premii za ryzyko. Dlatego musimy mieć w pamięci, że prawdopodobnie tak będzie, ale faktycznie może się zdarzyć niespodzianka. Ostatnie lata przyzwyczajają nie tylko zwykłych ludzi, ale i ekspertów do tego, że co roku z indeksów USA jest dodatnia stopa zwrotu. Od 2009 r do 2024, czyli przez 16 lat zdarzyły się zaledwie 2 ujemne roczne (całkowite) stopy zwrotu! Tworzy to złudzenie, że ryzyka nie ma, bo wystarczy przeczekać parę lat. Jednak ekonomia robi swoje i musi to jakoś wyrównać. Dlatego muszą nie tylko przydarzać się szokowe, bardzo silne i szybkie spadki (prędzej czy później). Muszą występować dłuższe okresy, w których obligacje skarbowe przyniosą większe zwroty od akcji. Gdyby nie ich nie było, to rzeczywiście nie byłoby ryzyka.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nawet historyczna ujemna skośność (średnia &amp;lt; mediana) i kurtoza w rozkładzie premii o tym świadczy, zobaczmy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Zapisujemy stare ustawienia graficzne&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; old_par &amp;lt;- par(no.readonly = TRUE)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # Dajemy więcej miejsca po prawej (dół, lewo, góra, prawo)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; par(mar = c(3.5, 5, 4, 5) - 0.1, mgp = c(2, 1, 0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 1. Obliczamy histogram, ale nie rysujemy&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; h &amp;lt;- hist(premia,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; breaks = 10,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; plot&amp;nbsp; &amp;nbsp;= FALSE)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 2. Estymujemy KDE (Kernel Density Estimation)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; d &amp;lt;- density(premia,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;kernel = &quot;gaussian&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;bw&amp;nbsp; &amp;nbsp; &amp;nbsp;= &quot;nrd0&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 3. Rysujemy histogram na lewą oś Y (counts)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; plot(h,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;freq&amp;nbsp; &amp;nbsp;= TRUE,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col&amp;nbsp; &amp;nbsp; = &quot;lightgray&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;border = &quot;white&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xlab&amp;nbsp; &amp;nbsp;= &quot;Premia&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ylab&amp;nbsp; &amp;nbsp;= &quot;Częstość&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;xlim&amp;nbsp; = range(h$breaks, d$x&lt;/span&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ylim&amp;nbsp; &amp;nbsp;= c(0, max(h$counts) * 1.1),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;main&amp;nbsp; &amp;nbsp;= &quot;Histogram i gęstość rozkładu – lewa oś: częstość, prawa oś: gęstość&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 4. Nałóż KDE na ten sam wykres&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; par(new = TRUE)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; plot(d$x, d$y,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;type&amp;nbsp; = &quot;l&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lwd&amp;nbsp; &amp;nbsp;= 2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;axes&amp;nbsp; = FALSE,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xlab&amp;nbsp; = &quot;&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ylab&amp;nbsp; = &quot;&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ylim&amp;nbsp; = c(0, max(d$y) * 1.1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 5. Dodajemy prawą oś Y (density)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; axis(side = 4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;at&amp;nbsp; &amp;nbsp;= pretty(c(0, max(d$y) * 1.1)))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; mtext(&quot;Gęstość (KDE)&quot;, side = 4, line = 3)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; # 7. Przywracamy poprzednie ustawienia&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; par(old_par)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVWei5tmB-V0ArjKAu08mJxeEvkyTSirZvZab6iGCYxASbMOiUbU8XYtWMycLb-61yeEpGw_FfHnUbl2fRqrsbMEaS3ZuoSsjYAKY7oKd6DJSCNVEC3ajI-Y3d1yQAuJTfDF_QLqLEIMhfc95pF0DRtHNeqvF9N2nvX__-rj5I2TLxWsc3iEiyZ2oB/s811/rstudio_3teJs5rlXx.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;811&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVWei5tmB-V0ArjKAu08mJxeEvkyTSirZvZab6iGCYxASbMOiUbU8XYtWMycLb-61yeEpGw_FfHnUbl2fRqrsbMEaS3ZuoSsjYAKY7oKd6DJSCNVEC3ajI-Y3d1yQAuJTfDF_QLqLEIMhfc95pF0DRtHNeqvF9N2nvX__-rj5I2TLxWsc3iEiyZ2oB/w400-h215/rstudio_3teJs5rlXx.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jeżeli rynek jest efektywny w długim okresie, to powinniśmy się spodziewać, że podobny rozkład wystąpi dla okresów wieloletnich. Zobaczmy dla 4-letnich. Zagregujmy stopy zwrotu:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; grupy &amp;lt;- ceiling(1:length(premia)/4)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; premia_4lata &amp;lt;- exp(tapply(X = log(1+premia), INDEX = grupy, FUN = sum)) - 1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I powtarzamy kod dla wykresu rozkładu częstości i gęstości, zastępując zmienną &lt;span style=&quot;font-family: courier;&quot;&gt;premia &lt;/span&gt;przez &lt;span style=&quot;font-family: courier;&quot;&gt;premia_4lata&lt;/span&gt;. Dostajemy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tMQ7ovkmGGAe2ZFe6jrN8vZGP0I_Q0nf3MxfoidLjNqy2s6uDNq3v6lgv4sjtssP1o-vclxZEqHyL3s8dj362-rc53LCRserxBTEj1RXyTBAXedu4A5slrgkEiH7Ny_XlojPb6ESWeqOv4CjiH1aLWQMO6oygBVTuHs00VoH7i6O77bwSpZvkRXE/s808/rstudio_JKoPX57xVW.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;430&quot; data-original-width=&quot;808&quot; height=&quot;170&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9tMQ7ovkmGGAe2ZFe6jrN8vZGP0I_Q0nf3MxfoidLjNqy2s6uDNq3v6lgv4sjtssP1o-vclxZEqHyL3s8dj362-rc53LCRserxBTEj1RXyTBAXedu4A5slrgkEiH7Ny_XlojPb6ESWeqOv4CjiH1aLWQMO6oygBVTuHs00VoH7i6O77bwSpZvkRXE/s320/rstudio_JKoPX57xVW.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rozkład gęstości 4-letnich premii zawiera niewiele danych, ale też występuje na nim skośność.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;span&gt;Dodatek&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;dla premii za ryzyko nad bonami skarbowymi 3-miesięcznymi&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Powtórzmy całą procedurę dla nadwyżki ponad bony skarbowe. To znaczy premia zawiera również ryzyko długoterminowych obligacji skarbowych w postaci zmienności stopy procentowej.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Stabilność średniej&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;W całym okresie średnia wyniosła aż 9%. Odwrotnie niż dla obligacji pierwsze 40 lat dały mniej, bo 8%, a kolejne prawie 10%. Czy więc tym razem to istotna zmiana średniej? Test Chowa wskazuje na stabilność:&lt;/p&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;	Chow test

data:  premia ~ 1
F = 0.22, p-value = 0.6&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;ACF i PACF&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;acf(premia, 15)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkQOivyQeSYRC11drqRMfrnCTnz9hp8DL6JDp4x0VO5782S1CMnNZgIfGawi4nPToHqmsdAvQxP3m_soGq5zxObVtqN-93Ise5fj-uzBBSJDwIPolqQ6Ind8NKPra9HrJpNq9wzQ5bzZnAPNkJFPYokWW-zMytxM3sO_FPC8CTBDae2cNr7GvKkrqw/s771/rstudio_hp4OuMHpNe.png&quot; style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; margin-left: 1em; margin-right: 1em; text-align: center; white-space-collapse: preserve;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;206&quot; data-original-width=&quot;771&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkQOivyQeSYRC11drqRMfrnCTnz9hp8DL6JDp4x0VO5782S1CMnNZgIfGawi4nPToHqmsdAvQxP3m_soGq5zxObVtqN-93Ise5fj-uzBBSJDwIPolqQ6Ind8NKPra9HrJpNq9wzQ5bzZnAPNkJFPYokWW-zMytxM3sO_FPC8CTBDae2cNr7GvKkrqw/w400-h106/rstudio_hp4OuMHpNe.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GPWVOE5CH4B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;pacf(premia, 15)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-mSi3MOFm9AY9MDwRblxdNY6d2PTjIPmpWQjUyxtP7I2KNW9aN8Ln2r8OBwuqpHQE6WlY2UGY1TSVyaX_nGOZmFESUmrzdY4wsSz5DNFJYn_o3E1kL-sgMeSNKqNtRpr9vvcr7leswCHfxJ4AiQxPWNKKXMR_23dJSjr2XN3cgDOA7Va8Ge5MyblQ/s774/rstudio_x5qxcBMq1F.png&quot; style=&quot;background-color: white; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; margin-left: 1em; margin-right: 1em; text-align: center; white-space-collapse: preserve;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;194&quot; data-original-width=&quot;774&quot; height=&quot;100&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-mSi3MOFm9AY9MDwRblxdNY6d2PTjIPmpWQjUyxtP7I2KNW9aN8Ln2r8OBwuqpHQE6WlY2UGY1TSVyaX_nGOZmFESUmrzdY4wsSz5DNFJYn_o3E1kL-sgMeSNKqNtRpr9vvcr7leswCHfxJ4AiQxPWNKKXMR_23dJSjr2XN3cgDOA7Va8Ge5MyblQ/w400-h100/rstudio_x5qxcBMq1F.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okazuje się, że jedynie ta 4-tego rzędu jest na granicy istotności (przekracza 0,2). To potwierdzałoby istnienie 4-letnich cykli, chociaż wykorzystanie tego fenomenu na pewno nie jest proste.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Modelowanie&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Sprawdzamy zatem AR(4). Efekt:&lt;/div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;GPWVOE5CK4B GPWVOE5CMX&quot; role=&quot;presentation&quot; style=&quot;background-color: white; border: none; color: black; cursor: text; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 10pt; line-height: 16px; outline: none; overflow-wrap: break-word; padding-bottom: 8px; padding-left: 6px; white-space-collapse: preserve; width: 802.6px;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 10pt; line-height: 16px; vertical-align: top;&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 10pt; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Coefficients:
      ar1  ar2  ar3    ar4  intercept
        0    0    0  0.236      0.090
s.e.    0    0    0  0.112      0.024

sigma^2 estimated as 0.0282:  log likelihood = 29.05,  aic = -52.11

Training set error measures:
                      ME  RMSE    MAE    MPE  MAPE   MASE     ACF1
Training set 0.000006594 0.168 0.1362 -266.2 433.2 0.6704 -0.06222&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Gdyby zastosować taki model, dostalibyśmy średnią 9% (+/- 2,4%) -&amp;nbsp;&amp;nbsp;faktycznie, tyle co średnia arytmetyczna. Dodatkowo współczynnik 4-tego rzędu 0,24 (+/- 0,11).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To teraz autoarfima z tymi samymi ustawieniami.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*----------------------------------*
*          ARFIMA Model Fit        *
*----------------------------------*
Mean Model	: ARFIMA(4,0,7)
Distribution	: std 

Optimal Parameters
------------------------------------
       Estimate  Std. Error     t value Pr(&amp;gt;|t|)
mu     0.098811    0.000012   8073.8245  0.00000
ar1    0.000000          NA          NA       NA
ar2    0.000000          NA          NA       NA
ar3    0.945906    0.000100   9503.1496  0.00000
ar4    0.054088    0.000008   6695.8385  0.00000
ma1    0.279539    0.000033   8524.8266  0.00000
ma2    0.000000          NA          NA       NA
ma3   -1.685603    0.000062 -27299.6027  0.00000
ma4   -0.135260    0.000014  -9448.6750  0.00000
ma5   -0.118209    0.000014  -8582.6486  0.00000
ma6    0.000000          NA          NA       NA
ma7   -0.036416    0.000006  -5762.9626  0.00000
sigma  0.111497    0.009553     11.6718  0.00000
shape 16.523609   12.901423      1.2808  0.20028

Robust Standard Errors:
       Estimate  Std. Error      t value Pr(&amp;gt;|t|)
mu     0.098811    0.000566   174.510530  0.00000
ar1    0.000000          NA           NA       NA
ar2    0.000000          NA           NA       NA
ar3    0.945906    0.010638    88.917365  0.00000
ar4    0.054088    0.000072   750.823674  0.00000
ma1    0.279539    0.002076   134.669756  0.00000
ma2    0.000000          NA           NA       NA
ma3   -1.685603    0.002733  -616.737764  0.00000
ma4   -0.135260    0.000331  -408.478534  0.00000
ma5   -0.118209    0.000610  -193.739688  0.00000
ma6    0.000000          NA           NA       NA
ma7   -0.036416    0.000020 -1799.605712  0.00000
sigma  0.111497    0.093611     1.191060  0.23363
shape 16.523609 1287.342190     0.012835  0.98976

LogLikelihood : 62.2351 

Information Criteria
------------------------------------
                    
Akaike       -1.3059
Bayes        -1.0081
Shibata      -1.3327
Hannan-Quinn -1.1865

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                         statistic p-value
Lag[1]                       3.101 0.07826
Lag[2*(p+q)+(p+q)-1][32]    17.518 0.04329
Lag[4*(p+q)+(p+q)-1][54]    27.653 0.46556

H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.3235  0.5695
Lag[2*(p+q)+(p+q)-1][2]    0.6261  0.6373
Lag[4*(p+q)+(p+q)-1][5]    1.6151  0.7116


ARCH LM Tests
------------------------------------
             Statistic DoF P-Value
ARCH Lag[2]     0.6869   2  0.7093
ARCH Lag[5]     2.5554   5  0.7681
ARCH Lag[10]    5.7786  10  0.8335

Nyblom stability test
------------------------------------
Joint Statistic:  411.572
Individual Statistics:             
mu    0.03948
ar3   0.04534
ar4   0.02661
ma1   0.04062
ma3   0.15471
ma4   0.02460
ma5   0.03678
ma7   0.02549
sigma 0.13303
shape 0.08077

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:     	 2.29 2.54 3.05
Individual Statistic:	 0.35 0.47 0.75&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;Dostałem model ARMA(4, 7), ale przy usuniętych ar1, ar2, ma2 i ma6.&lt;/p&gt;&lt;p&gt;Jednak całkowity model okazuje się niestabilny, bo Joint Statistic = 412. Za to poszczególne współczynniki są stabilne shape, czyli kształt rozkładu reszt, jest niestabilny. Wynika to po prostu z tego, że rozkład t-Studenta nie jest idealnym rozkładem tutaj.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;Test MCS&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;$includedR
[1] 2

$pvalsR
     [,1]
[1,]    0
[2,]    1

$excludedR
[1] 1

$includedSQ
[1] 2

$pvalsSQ
     [,1]
[1,]    0
[2,]    1

$excludedSQ
[1] 1&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;Test MCS potwierdza jednoznacznie, że drugi model (uzyskany z autoarfima) jest lepszy, albowiem każe odrzucić pierwszy model.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Prognozy kroczące i dwie nowe&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GPWVOE5CB5B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GPWVOE5CC5B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;*----------------------------------*
*        ARFIMA Model Forecast     *
*----------------------------------*

Horizon: 2
Roll Steps: 0
Out of Sample: 0

0-roll forecast: 
   T+1    T+2 
0.0309 0.1279 &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE6-7ylC6FQrH8Jxbtc8LjiY6-I6KXmEraPhvaLMmZAIDX2SrQzp3mEDzDfCk0Pa0E9HRAnzJiWYUwFSE1F0ggtokHUnw62KHV5Vd7P7zh2A6UqOAxNUrOgxGy5j3olbuX-alMOxvbr7B39MfiVg-V5JvSMIsPR3pbVhyphenhyphen43KAZR0npxXPtGJQdLAjc/s804/rstudio_hWLpbB0pa8.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;490&quot; data-original-width=&quot;804&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE6-7ylC6FQrH8Jxbtc8LjiY6-I6KXmEraPhvaLMmZAIDX2SrQzp3mEDzDfCk0Pa0E9HRAnzJiWYUwFSE1F0ggtokHUnw62KHV5Vd7P7zh2A6UqOAxNUrOgxGy5j3olbuX-alMOxvbr7B39MfiVg-V5JvSMIsPR3pbVhyphenhyphen43KAZR0npxXPtGJQdLAjc/w400-h244/rstudio_hWLpbB0pa8.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrLwjxw4Q9p4odmaME38_g4KkFFfmcYvs7eIEmoU0Lr42oMyjxBPsOmxwzlYQP61PiE6fvprDQV62nhAwkK6Psl938THjOvOIrq0j4v2fv1PHZwY0IaMd-UEfhe86x4d6JfmJNYDTHto5XixHqnw9ThrRJCaXY8puYcMlPKb2GBukUsauCnINCAyGc/s799/rstudio_5sGXZjzFKT.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;463&quot; data-original-width=&quot;799&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrLwjxw4Q9p4odmaME38_g4KkFFfmcYvs7eIEmoU0Lr42oMyjxBPsOmxwzlYQP61PiE6fvprDQV62nhAwkK6Psl938THjOvOIrq0j4v2fv1PHZwY0IaMd-UEfhe86x4d6JfmJNYDTHto5XixHqnw9ThrRJCaXY8puYcMlPKb2GBukUsauCnINCAyGc/w400-h231/rstudio_5sGXZjzFKT.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Podobnie jak poprzednio - rok 2025 spadkowa premia.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;font-size: large; font-weight: 700;&quot;&gt;Rozkład częstości i gęstości&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: large; font-weight: 700;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Roczne premie:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjivJ8qL6HdXWNvb1DJP1pIDSUnfgZO6blC2upFKYBnW0hLJOtObnkNL8p7MQHAsYShUjgJF81ltsv60XEJ02Yckhp-JI80a59zF34xXbuCQyp1BjIKqMOJNwHSrTp6AMggIOIBRagMyfyANd51MkeUrCKcKHuBMU60347UHnZb4tm88JSuST2RKZus/s821/rstudio_I0h4Ebcv09.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;436&quot; data-original-width=&quot;821&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjivJ8qL6HdXWNvb1DJP1pIDSUnfgZO6blC2upFKYBnW0hLJOtObnkNL8p7MQHAsYShUjgJF81ltsv60XEJ02Yckhp-JI80a59zF34xXbuCQyp1BjIKqMOJNwHSrTp6AMggIOIBRagMyfyANd51MkeUrCKcKHuBMU60347UHnZb4tm88JSuST2RKZus/w400-h213/rstudio_I0h4Ebcv09.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: large; font-weight: 700;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;4-letnie premie:&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: large; font-weight: 700;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5mgpgIEloMMEddRAUIPmFUJ6Ec9ImVQbNpWUdJckXqnqt_ctESKXYbK2PLt1pxVZO_XYgRfPBoHD1yYxIOnmXO4kJ9HXBOV1ZEF_2_vksNLcnnrqpUe67Xi2P0MetNL2-ig-wRB2JwosYCWcTXJETAbptcRwTyLlusiJTMeP-lJCTE_Ggmk_-m7A/s813/rstudio_AgQOTH1sV5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;511&quot; data-original-width=&quot;813&quot; height=&quot;251&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd5mgpgIEloMMEddRAUIPmFUJ6Ec9ImVQbNpWUdJckXqnqt_ctESKXYbK2PLt1pxVZO_XYgRfPBoHD1yYxIOnmXO4kJ9HXBOV1ZEF_2_vksNLcnnrqpUe67Xi2P0MetNL2-ig-wRB2JwosYCWcTXJETAbptcRwTyLlusiJTMeP-lJCTE_Ggmk_-m7A/w400-h251/rstudio_AgQOTH1sV5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Porównując ze sobą obydwa rodzaje premii (nad bonami i nad obligacjami), to co się rzuca w oczy, to wpływ obligacji skarbowych na 4-letnią cykliczność stopy zwrotu. Po odjęciu bonów premia wykazuje pewną autokorelację 4-tego rzędu. Po odjęciu obligacji skarbowych premia ta autokorelacja mieści się w granicach nieistotności, a więc przypadkowości (jednak zwracam uwagę, że to PACF to taka klasyczna metoda szukania cykli, raczej wstępna). Wydaje się, że taka dysproporcja wynika z tego, że długoterminowe obligacje odzwierciedlają oczekiwania koniunktury, a ta przecież porusza się właśnie w takich kilkuletnich cyklach. Dostajemy więc pewnego rodzaju &quot;dowód&quot;, że indeks S&amp;amp;P 500 podąża w jakimś zakresie w kierunku zmian gospodarczych.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/817777094775927695/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/06/krotka-analiza-i-prognoza-premii-za.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/817777094775927695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/817777094775927695'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/06/krotka-analiza-i-prognoza-premii-za.html' title='Krótka analiza i prognoza premii za ryzyko S&amp;P 500 (język R)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGxh8ZdW8SwpysDnnWxU6qvffKBBP_5rKvMX4cOsVmS9kMETuuDaal3P_twR8szTnrnkvtVEfo0plqfT_njYaBzCA0uEgSRPSpRxwws0P1fv1_LSq4KX1FsS_H3uNd91yQGyUyNZI8eBhKOO0txzausk4c09IlQFARUd58eFEyAYW6lI6rZVy0NIlh/s72-w400-h226-c/EXCEL_MbrkmhY9CB.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-2579803038646155294</id><published>2025-05-03T13:46:00.006+02:00</published><updated>2025-05-06T16:39:56.271+02:00</updated><title type='text'>Modele w zbiorze ufności w rugarch (język R)</title><content type='html'>Jeśli powiem, że każda prognoza gospodarcza czy giełdowa jest okraszona niepewnością, to będzie to banał. Ale jeśli powiem, że celem prognozy powinno być nie tyle odgadnięcie przyszłej wartości, co minimalizacja jej niepewności, to już banałem nie jest. Dla uproszczenia założymy, że niepewność to przedział ufności dla prognozy naszego modelu. Im więcej informacji zawiera model, tym przedział ufności staje się mniejszy, zbliżając się tym samym do prognozy punktowej. Widzimy więc, że idea nie jest wcale banalna: należy zebrać jak najwięcej istotnych informacji, aby zawężać przedział prognozy, zmniejszając tym samym ryzyko.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Analogicznie do przedziału ufności, Hansen et al.* zaproponowali zbiór ufności dla wielu modeli: z całej puli testowanych modeli, poszukiwane są te najlepsze, które wpadają do zbioru ufności. Im więcej posiadamy informacji, tym mniejszy będzie ten zbiór, zbliżając się tym samym do jednego najlepszego modelu.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Standardową metodą wyboru najlepszego modelu jest użycie kryterium informacyjnego, np. AIC, BIC czy HQIC. Niestety nie uwzględniają one niepewności czy przypadkowości parametrów. Z tym się ciągle zmagamy. Przykładowo, mam zawsze wątpliwości co do używania modeli parametrycznych, ponieważ wydają się one sztuczne, realizując uśrednianie na siłę. Dlatego tak ważne są testy stabilności parametrów. Ale stabilność to dopiero początek, bo:&amp;nbsp;&lt;/div&gt;&lt;div&gt;(1) jeśli spośród wielu modeli różnica w kryterium informacyjnym jest niewielka, to może ona wynikać po prostu z przypadku,&lt;/div&gt;&lt;div&gt;(2) dodanie tylko jednej obserwacji bardzo często zmienia wybór modelu.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;W rugarch jest funkcja mcsTest (&lt;i&gt;Model Confidence Set&lt;/i&gt;&amp;nbsp;- MCS), która testuje, czy dany model należy zachować w zbiorze ufności czy go odrzucić. Ma ona następujące argumenty:&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;- losses: macierz lub ramka danych z wartościami strat dla każdego modelu (każda kolumna odpowiada jednemu modelowi). To w jaki sposób definiujemy straty, zależy od nas. W przypadku rozkładów symetrycznych, najczęściej stosuje się kwadraty odchyleń od prognozy lub wartości absolutne tych odchyleń. Dla rozkładów niesymetrycznych stosować można semi-odchylenia albo miary oparte na wartości zagrożonej.&amp;nbsp;&amp;nbsp;&lt;/p&gt;- alpha: poziom istotności (domyślnie 0.05).&lt;br /&gt;&lt;p style=&quot;text-align: left;&quot;&gt;- nboot: liczba replikacji bootstrapowych (domyślnie 100). Bootstrap to procedura wielokrotnego losowania próbki ze zwracaniem. nboot to właśnie liczba tych losowań.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;- nblock: długość bloku dla bootstrappu blokowego (domyślnie 1). Jeżeli obserwacje mogą być zależne od siebie, to bootstrap musi losować blok występujących po sobie x obserwacji. Jeżeli uważamy, że każda obserwacja jest niezależna od innej, to x = 1. Im rząd autokorelacji większy, tym blok powinien być naturalnie też większy.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;- boot: rodzaj bootstrapu (&quot;stationary&quot; lub &quot;block&quot;). Chociaż w obydwu przypadkach mamy do czynienia z blokami, to metoda blokowa, &quot;block&quot;, oznacza, że całą próbę dzielimy na stałą liczbę przedziałów, tak że każdy przedział składa się bloku obserwacji&amp;nbsp;o długości wyznaczonej dokładnie przez nblock. Potem dopiero losujemy blok, powtarzamy to losowanie dokładnie nboot razy. Natomiast&amp;nbsp; metoda stacjonarna, &quot;stationary&quot;, tworzy bloki o losowej długości ze średnią równą nblock. Jeśli występuje autokorelacja w szeregu czasowym, to blok nie może być za krótki. Najczęściej &quot;stationary&quot; jest lepszy od &quot;block&quot;.&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Co właściwie robi ten test? W skrócie, kiedy mamy macierz strat dla każdego modelu, liczymy różnice między każdym modelem (prognozą każdego modelu) i są one odpowiednio uśredniane. Tworzymy bloki bootstrapowe i dla każdego bloku obliczamy średnie różnice między średnią stratą w bloku, średnią stratą dla całego modelu i średnią stratą ze wszystkich modeli. Dla każdego modelu będą różne wartości tworzące rozkład różnic. Wartości zbyt odchylone na plus (tzn. prawostronne ogony rozkładu) zostają odrzucone i tak&amp;nbsp;uzyskujemy zbiór ufności.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oczywiście najpierw sami budujemy funkcję strat. Ja użyłem definicji najbardziej dla mnie intuicyjnej: jeżeli znak prognozy różni się od znaku wartości rzeczywistej, to bierzemy moduł z różnicy między nimi. Jeżeli znak jest ten sam, to strata wynosi zero.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przetestujmy tę funkcję. Będziemy używać mcsTest na zbiorze uczącym. Reguły używania poniższych funkcji w rugarch omówiłem szczegółowo &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/07/modelowanie-ryzyka-z-rugarch-jezyk-r.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/12/prognoza-kroczaca-z-ruchomym-oknem-w.html&quot; target=&quot;_blank&quot;&gt;Stwierdziłem wcześniej&lt;/a&gt;, że próba między 300 a 400 tygodniowych danych giełdowych dla GARCH wydaje się już w miarę odpowiednia. Zrobię symulację EGARCH o próbie równej 330. Powiedzmy, że prawdziwy proces to EGARCH(1, 1)-ARMA(3, 1). Obok niego mamy też fałszywe - wszystkie EGARCH: ARMA(0, 0), ARMA(1, 0), ARMA(2, 0), ARMA(3, 0). Zobaczmy które z nich zostaną wykluczone przez mcsTest, a które przyjęte do zbioru ufności. Zrobimy test w dwóch wariantach: blokowy i stacjonarny. Ustawienia: nblock = 20 oraz nboot = 1000.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;library(&quot;rugarch&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;library(&quot;xts&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 1. Definicje stałych parametrów&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_3_1 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar3&amp;nbsp; &amp;nbsp; = 0.7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ma1&amp;nbsp; &amp;nbsp; = 0.4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_0_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_1_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_2_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_3_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar3&amp;nbsp; &amp;nbsp; = 0.7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_0_1 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ma1&amp;nbsp; &amp;nbsp; = 0.4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 2. Specyfikacje modeli EGARCH(1,1) z różnymi specyfikacjami średniej:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_3_1 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(3,1), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_3_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_0_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(0,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_0_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_1_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(1,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_1_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_2_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(2,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_2_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_3_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(3,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_3_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_0_1 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(0,1), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;norm&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 3. Symulacja 330 obserwacji według poprawnego modelu (ARMA(3,1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;set.seed(765)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;symulacja &amp;lt;- ugarchpath(spec_3_1, n.sim = 330)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dane_symulowane &amp;lt;- as.numeric(fitted(symulacja))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 4. Dopasowanie modeli do całego szeregu (in-sample)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_3_1 &amp;lt;- ugarchfit(spec = spec_3_1, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_0_0 &amp;lt;- ugarchfit(spec = spec_0_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_1_0 &amp;lt;- ugarchfit(spec = spec_1_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_2_0 &amp;lt;- ugarchfit(spec = spec_2_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_3_0 &amp;lt;- ugarchfit(spec = spec_3_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_0_1 &amp;lt;- ugarchfit(spec = spec_0_1, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 5. Zapisanie wyników dopasowania w liście (dla przejrzystości)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowania &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_1 = dopasowanie_3_1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_0_0 = dopasowanie_0_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_1_0 = dopasowanie_1_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_2_0 = dopasowanie_2_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = dopasowanie_3_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = dopasowanie_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(&quot;Dopasowane modele:&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(names(dopasowania))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 6. Definicja funkcji strat:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;Funkcja_strat &amp;lt;- function(rzeczywiste, prognoza) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; roznica &amp;lt;- rzeczywiste - prognoza&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; strata &amp;lt;- ifelse(sign(rzeczywiste) != sign(prognoza), abs(roznica), 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; return(strata)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 7. Obliczenie funkcji strat dla każdego modelu (in-sample)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_3_1 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_3_1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_0_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_0_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_1_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_1_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_2_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_2_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_3_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_3_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_0_1 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_0_1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# Łączenie strat w macierz – wiersze odpowiadają obserwacjom, kolumny modelom&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- cbind(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_1 = strata_3_1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_0_0 = strata_0_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_1_0 = strata_1_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_2_0 = strata_2_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = strata_3_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = strata_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 8. Usunięcie wierszy składających się tylko z zer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- straty[rowSums(straty != 0) &amp;gt; 0, ]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- coredata(straty)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 9. Test MCS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 9.1. Wariant 1: stacjonarny&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;mcs_stationary &amp;lt;- mcsTest(straty, alpha = 0.05, nboot = 1000, nblock = 20, boot = &quot;stationary&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 9.2. Wariant 1: blokowy&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;mcs_block &amp;lt;- mcsTest(straty, alpha = 0.05, nboot = 1000, nblock = 20, boot = &quot;block&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 10. Wyświetlenie wyników:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;cat(&quot;\nWyniki mcsTest (ustawienie nboot = 1000, nblock = 20, boot = stationary):\n&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(mcs_stationary)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNTYACMBB4B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Wyniki mcsTest (ustawienie nboot = 1000, nblock = 20, boot = stationary):
&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;$includedR
[1] 1 5

$pvalsR
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.004
[5,] 0.697
[6,] 1.000

$excludedR
[1] 6 2 4 3

$includedSQ
[1] 1 5

$pvalsSQ
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.003
[5,] 0.697
[6,] 1.000

$excludedSQ
[1] 6 2 4 3&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Należy zauważyć, że mamy tu 2 typy testów: statystyka R (Range statistic) oraz SQ (Semi-Quadratic statistic). Pierwszy z nich skupia się na różnicach w maksymalnych stratach między modelami, a drugi na różnicach w kwadratach strat. Najlepiej, jeśli obydwa wskazują ten sam zbiór, bo wtedy dostajemy potwierdzenie, że zbiór ufności zawiera odpowiednie modele.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jak widać obydwa testy rzeczywiście wskazują to samo: included 1 oraz 5, czyli zbiór ufności zawiera tylko dwa modele - pierwszy oraz piąty. Pozostałe modele zostają odrzucone (excluded), zarówno przez R jak SQ. Możemy powiedzieć, że test zadziałał poprawnie, mimo przyjęcia błędnego modelu ARMA(3, 0). Model ten jest podobny do prawidłowego ARMA(3, 1), a co więcej poprawny model ma największe p-value = 1 (piąty 0.697). O tym może jeszcze powiem. Otóż wydrukowana lista może być trochę myląca, bo kolejność nie pokazuje p-value w kolejności od modelu 1 do 6, tylko w kolejności od najbardziej istotnego do najmniej istotnego wyniku dotyczącego odrzucenia modelu ze zbioru ufności. Im mniejsze p-value, tym większe prawdopodobieństwo, że dany model należy wyrzucić ze zbioru.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Żeby zawęzić zbiór ufności, należy zwiększyć próbę. Po zwiększeniu jej do 1600, dostałem:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNTYACMBB4B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;Wyniki mcsTest (ustawienie nboot = 1000, nblock = 20, &lt;/span&gt;&lt;/span&gt;boot = stationary):&lt;/pre&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNTYACMBH3B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;GNTYACMBB4B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;$includedR
[1] 1

$pvalsR
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.000
[5,] 0.047
[6,] 1.000

$excludedR
[1] 6 2 4 3 5

$includedSQ
[1] 1

$pvalsSQ
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.000
[5,] 0.047
[6,] 1.000

$excludedSQ
[1] 6 2 4 3 5&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przy tak dużej próbie test nie ma już wątpliwości, że jedyny prawidłowy model to ten pierwszy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bardzo podobne wyniki dostałem dla boot = &quot;block&quot; i nie ma sensu pokazywać ich. Podobnie jak dla &quot;stationary&quot; musiałem ustawić próbę&amp;nbsp; liczną 1600, aby uzyskać wykluczenie wszystkich fałszywych modeli. Co jednak zauważyłem, to to, że w przypadku &quot;block&quot; wykluczenie modelu 5 było ledwo, ledwo, na styk, bo p-value wyniosło 0.049 (dla stationary też, ale niższe, bo 0.047).&amp;nbsp; Stacjonarny test generalnei jest lepszą alternatywą.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Powyższe przykłady zakładały rozkład normalny reszt modelu. Dla rynków może być lepszy inny, np. skośny rozkład t-Studenta. W takiej sytuacji potrzebne są dwa dodatkowe parametry do stałych: skew oraz shape. Zamiast &quot;norm&quot; będzie &quot;sstd&quot;. Przykładowo kod będzie taki:&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 1. Definicje stałych parametrów&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_3_1 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar3&amp;nbsp; &amp;nbsp; = 0.7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ma1&amp;nbsp; &amp;nbsp; = 0.4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_0_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_1_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_2_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_3_0 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar1&amp;nbsp; &amp;nbsp; = -1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar2&amp;nbsp; &amp;nbsp; = 0.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ar3&amp;nbsp; &amp;nbsp; = 0.7,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;stale_0_1 &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; omega&amp;nbsp; = 1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; alpha1 = 0.3,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; beta1&amp;nbsp; = 0.2,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mu&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0.0001,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; ma1&amp;nbsp; &amp;nbsp; = 0.4,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; gamma1 = 0.05,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; skew = 1.5,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; shape = 5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 2. Specyfikacje modeli EGARCH(1,1) z różnymi specyfikacjami średniej:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_3_1 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(3,1), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_3_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_0_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(0,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_0_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_1_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(1,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_1_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_2_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(2,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_2_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_3_0 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(3,0), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_3_0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;spec_0_1 &amp;lt;- ugarchspec(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; variance.model = list(model = &quot;eGARCH&quot;, garchOrder = c(1,1)),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; mean.model&amp;nbsp; &amp;nbsp; &amp;nbsp;= list(armaOrder = c(0,1), include.mean = TRUE),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; distribution.model = &quot;sstd&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; fixed.pars = stale_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 3. Symulacja 330 obserwacji według poprawnego modelu (ARMA(3,1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;set.seed(55)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;symulacja &amp;lt;- ugarchpath(spec_3_1, n.sim = 330)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dane_symulowane &amp;lt;- as.numeric(fitted(symulacja))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 4. Dopasowanie modeli do całego szeregu (in-sample)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_3_1 &amp;lt;- ugarchfit(spec = spec_3_1, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_0_0 &amp;lt;- ugarchfit(spec = spec_0_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_1_0 &amp;lt;- ugarchfit(spec = spec_1_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_2_0 &amp;lt;- ugarchfit(spec = spec_2_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_3_0 &amp;lt;- ugarchfit(spec = spec_3_0, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowanie_0_1 &amp;lt;- ugarchfit(spec = spec_0_1, data = dane_symulowane)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 5. Zapisanie wyników dopasowania w liście (dla przejrzystości)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;dopasowania &amp;lt;- list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_1 = dopasowanie_3_1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_0_0 = dopasowanie_0_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_1_0 = dopasowanie_1_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_2_0 = dopasowanie_2_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = dopasowanie_3_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = dopasowanie_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(&quot;Dopasowane modele:&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(names(dopasowania))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 6. Definicja funkcji strat:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;Funkcja_strat &amp;lt;- function(rzeczywiste, prognoza) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; roznica &amp;lt;- rzeczywiste - prognoza&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; strata &amp;lt;- ifelse(sign(rzeczywiste) != sign(prognoza), abs(roznica), 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; return(strata)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 7. Obliczenie funkcji strat dla każdego modelu (in-sample)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_3_1 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_3_1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_0_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_0_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_1_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_1_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_2_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_2_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_3_0 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_3_0))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;strata_0_1 &amp;lt;- Funkcja_strat(dane_symulowane, fitted(dopasowanie_0_1))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# Łączenie strat w macierz – wiersze odpowiadają obserwacjom, kolumny modelom&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- cbind(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_1 = strata_3_1,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_0_0 = strata_0_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_1_0 = strata_1_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_2_0 = strata_2_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = strata_3_0,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; model_3_0 = strata_0_1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 8. Usunięcie wierszy składających się tylko z zer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- straty[rowSums(straty != 0) &amp;gt; 0, ]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;straty &amp;lt;- coredata(straty)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 9.1. Wariant stacjonarny&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;mcs_stationary &amp;lt;- mcsTest(straty, alpha = 0.05, nboot = 1000, nblock = 20, boot = &quot;stationary&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 10. Wyświetlenie wyników:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;cat(&quot;\nWyniki mcsTest (ustawienie nboot = 1000, nblock = 20, boot = stationary):\n&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(mcs_stationary)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Wyniki mcsTest (ustawienie nboot = 1000, nblock = 20, boot = &lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; white-space-collapse: collapse;&quot;&gt;stationary&lt;/span&gt;):&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;$includedR
[1] 5 1

$pvalsR
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.000
[5,] 0.071
[6,] 1.000

$excludedR
[1] 6 2 4 3

$includedSQ
[1] 5 1

$pvalsSQ
      [,1]
[1,] 0.000
[2,] 0.000
[3,] 0.000
[4,] 0.000
[5,] 0.071
[6,] 1.000

$excludedSQ
[1] 6 2 4 3&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jak widać, ponownie można by podwyższyć p-value do 10%, żeby dostać tylko model 1. Tak czy inaczej test działa bardzo dobrze także dla innych rozkładów.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oczywiście to bardzo wzorcowe przykłady i w praktyce będzie to trudniejsze, ale to jest dobry punkt wyjścia.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;* Hansen, P., A. Lunde, and J. Nason (2011). &lt;i&gt;The model confidence set&lt;/i&gt;. Econometrica 79,
453–497.
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/2579803038646155294/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/05/modele-w-zbiorze-ufnosci-w-rugarch.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2579803038646155294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2579803038646155294'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/05/modele-w-zbiorze-ufnosci-w-rugarch.html' title='Modele w zbiorze ufności w rugarch (język R)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-5145732599352304394</id><published>2025-04-25T11:29:00.007+02:00</published><updated>2025-04-25T14:29:50.102+02:00</updated><title type='text'>Krzyż śmierci na S&amp;P500 - czy faktycznie ma znaczenie?</title><content type='html'>&lt;p&gt;&amp;nbsp;Niektórzy zwrócili niedawno uwagę, że na S&amp;amp;P 500 występuje tzw. krzyż śmierci, czyli 50-dniowa średnia krocząca przecinająca od góry 200-dniową średnią kroczącą:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguZW_i__ETDn8x4jyCmTQQCyHQxi50W095RoD2OJMKPqKdU2HlThleDaA2hyphenhyphen7XrB3NMLbPwHwyivJ7qMJ-KxbawNFkkkOJaWaAQ_XIdfFPrSK0Srs6qe0OqpONjPt621p32JZ1lR2CXquzlxo2Xt4l9a3pmf9A5h6H_OsW3YWJ3TOx2XaCPbMLA_8E/s813/rstudio_mt9eY4b5ZF.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;519&quot; data-original-width=&quot;813&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguZW_i__ETDn8x4jyCmTQQCyHQxi50W095RoD2OJMKPqKdU2HlThleDaA2hyphenhyphen7XrB3NMLbPwHwyivJ7qMJ-KxbawNFkkkOJaWaAQ_XIdfFPrSK0Srs6qe0OqpONjPt621p32JZ1lR2CXquzlxo2Xt4l9a3pmf9A5h6H_OsW3YWJ3TOx2XaCPbMLA_8E/w400-h255/rstudio_mt9eY4b5ZF.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;https://xyz.pl/krzyz-smierci-znow-nad-wall-street-historyczny-sygnal-ostrzegawczy-na-indeksie-sp-500/&quot; target=&quot;_blank&quot;&gt;Na ten sygnał zwrócił m.in. portal xyz.pl&lt;/a&gt;&lt;span&gt;&amp;nbsp;, dodając jednak notkę, że analitycy firmy&amp;nbsp;&lt;/span&gt;LPL Financial zaobserwowali, że historycznie w ciągu kolejnego miesiąca indeks spadał średnio niecały 1%, a w ciągu 3 miesięcy nawet rósł. Mowa jednak o medianie, a więc średnia i dominanta mogły się sporo różnić. Podanie samej mediany jest niewystarczające.&lt;/p&gt;&lt;p&gt;Sprawdźmy jak to rzeczywiście wyglądało dotychczas. Zaczniemy tak jak ta firma od 1950 r. Trzeba precyzyjnie określić warunki. Nie wystarczy, że SMA50 przetnie SMA200 z góry w dół, bo za chwilę może jeszcze zawrócić i średnie mogą się znowu dotknąć albo w ogóle SMA50 może przebić z dołu w górę. Jeśli taka sytuacja dzieje się w np. w ciągu tygodnia, to sygnału nie będzie. Tak więc określamy minimalne okno tego zdarzenia. Przyjmę cały tydzień, co oznacza 3 kroki do tyłu i 3 kroki do przodu od momentu przecięcia. Taki układ warunków jest już wystarczający, chociaż może nie być przekonujący, bo nawet po przecięciu się obie średnie mogą rosnąć. Tak na intuicję wydaje się, że&amp;nbsp; powinny spadać. Z drugiej strony już sama nazwa &quot;krzyż&quot; sugeruje dowolne przecięcie, np. rosnącej SM200 i spadkowej SMA50. Z powodu tej różnicy w interpretacji krzyża śmierci, zrobimy 2 sprawdziany:&lt;/p&gt;&lt;p&gt;1) Są warunki: (a) SMA50 &amp;lt;= SMA200, (b) SMA50[t-3] &amp;gt; SMA200[t-3], (c) SMA50[t+3] &amp;lt; SMA200[t+3] ,&lt;/p&gt;&lt;p&gt;2) To samo co p. (1) i dodatkowo warunek, że obie średnie spadają.&lt;/p&gt;&lt;p&gt;Ostatnia sprawa to sam okres przyszłej stopy zwrotu. Sprawdzimy 1-3 miesięczne zwroty do przodu. Za 1 miesiąc przyjmiemy 21 dni, czyli 21 sesji.&lt;/p&gt;&lt;p&gt;Ad 1) Kod w R:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 1. Pobieramy dane S&amp;amp;P500, ładujemy pakiety, np. xts.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 2. Przekształcamy ceny na logarytmy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;logCena &amp;lt;- log(sp500)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 3. Obliczamy 50-dniową i 200-dniową średnią kroczącą&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sma50&amp;nbsp; &amp;lt;- SMA(logCena, n = 50)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sma200 &amp;lt;- SMA(logCena, n = 200)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 4. Ustalamy wartość przesunięcia (krok) dla warunków – tu krok = 3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;krok &amp;lt;- 3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# Warunki dla sygnału&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;war1 &amp;lt;- sma50 &amp;lt;= sma200&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;war2 &amp;lt;- lag(sma50, k = krok) &amp;gt; lag(sma200, k = krok)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# SMA50[t-krok] &amp;gt; SMA200[t-krok]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;war3 &amp;lt;- lag(sma50, k = -krok) &amp;lt; lag(sma200, k = -krok)&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # SMA50[t+krok] &amp;lt; SMA200[t+krok]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;war4 &amp;lt;- TRUE&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 5. Tworzymy wektor sygnału: 1, gdy wszystkie warunki są spełnione, NA w przeciwnym przypadku&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sygnal &amp;lt;- ifelse(war1 &amp;amp; war2 &amp;amp; war3 &amp;amp; war4, 1, 0)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sygnal &amp;lt;- na.omit(sygnal)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;datySygnalow &amp;lt;- index(sygnal)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# Przypisujemy daty wszystkich sygnałów&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(&quot;Daty sygnałów (pełny szereg):&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(datySygnalow)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 6. Teraz dodajemy warunek, aby wyłapać jedynie moment przejścia z 0 na 1.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# To pozwala zachować tylko pierwszy dzień pojawienia się sygnału.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sygnal_krok1 &amp;lt;- lag(sygnal, k = 1)&amp;nbsp; # przesunięcie danych o jeden dzień do tyłu (opóźnione)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;sygnal_krok1[is.na(sygnal_krok1)] &amp;lt;- 0&amp;nbsp; # traktujemy pierwszy dzień jako 0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;unikalneDatySygnalow &amp;lt;- which(sygnal_krok1 == 0 &amp;amp; sygnal == 1)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;unikalneDatySygnalow &amp;lt;- datySygnalow[unikalneDatySygnalow]&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(&quot;Unikalne daty sygnału (przejście z 0 na 1):&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(unikalneDatySygnalow)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 7. Obliczamy dzienne logarytmiczne stopy zwrotu&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;logZwrot &amp;lt;- na.omit(diff(logCena))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 8. Używamy rollapply do sumowania logarytmicznych stóp zwrotu na horyzoncie 21 sesji,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# ale dnia następnego po sygnale&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;oknoPrzyszlosci &amp;lt;- 21&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;logZwrot_suma &amp;lt;- lag(rollapply(logZwrot,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;width = oknoPrzyszlosci,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FUN = sum,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;align = &quot;left&quot;), -1)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 9. Przekształcamy sumy logarytmicznych stóp zwrotu na zwykłe stopy zwrotu: exp(sum) - 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;miesZwrot &amp;lt;- exp(logZwrot_suma) - 1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 10. Dopasowujemy daty unikalnych sygnałów do obliczonych miesięcznych stóp zwrotu&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;wyniki &amp;lt;- data.frame(Date = unikalneDatySygnalow,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MonthlyReturn = as.numeric(miesZwrot[unikalneDatySygnalow]))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;wyniki &amp;lt;- na.omit(wyniki)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(&quot;Wyniki (data unikalnego sygnału + miesięczna stopa zwrotu):&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;print(wyniki)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;mean(wyniki$MonthlyReturn)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 11. Rysujemy histogram miesięcznych stóp zwrotu dla wyłapanych sygnałów&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;h &amp;lt;- hist(wyniki$MonthlyReturn,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;breaks = 7,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;col = &quot;lightblue&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;border = &quot;black&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;main = &quot;Histogram miesięcznych stóp zwrotu&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;xlab = &quot;Stopa zwrotu&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ylab = &quot;Liczba sygnałów&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;freq = NULL)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 12. Przekształcamy liczebności na prawdopodobieństwa&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;czestosc &amp;lt;- h$counts / sum(h$counts)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 13. Ustawiamy układ dwóch wykresów oraz marginesy&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;par(mfrow = c(2, 1), mar = c(2, 5, 2.2, 3))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;slupkiZwrotow &amp;lt;- 100 * round(h$mids, 3)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 14. Rysujemy wykres słupkowy prawdopodobieństwa 1-miesięcznych stóp zwrotu&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;b &amp;lt;- barplot(czestosc,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;names.arg = slupkiZwrotow,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &quot;lightblue&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;border&amp;nbsp; &amp;nbsp; = &quot;black&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;main&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;Prawdopodobieństwo 1-miesięcznych stóp zwrotu&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;xlab&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ylab&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;Prawdopodobieństwo&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;yaxt&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;n&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;space&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cex.main&amp;nbsp; = 0.9)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 15. Dodajemy oś Y z wartościami prawdopodobieństwa&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;axis(2, at = round(czestosc, 2), las = 2, cex = 0.7)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 16. Zaznaczamy dominantę prawdopodobieństwa linią pionową&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;abline(v&amp;nbsp; = b[which.max(czestosc)],&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col&amp;nbsp; = &quot;red&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lty&amp;nbsp; = 2,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lwd&amp;nbsp; = 2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 17. Rysujemy wykres słupkowy skumulowanego prawdopodobieństwa&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;par(mar = c(4, 5, 1.5, 3))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;barplot(cumsum(czestosc),&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; names.arg = slupkiZwrotow,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; col&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &quot;lightblue&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; border&amp;nbsp; &amp;nbsp; = &quot;black&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; main&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;Skumulowane prawdopodobieństwo 1-miesięcznych stóp zwrotu&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xlab&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ylab&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;Prawdopodobieństwo&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; yaxt&amp;nbsp; &amp;nbsp; &amp;nbsp; = &quot;n&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; space&amp;nbsp; &amp;nbsp; &amp;nbsp;= 0,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cex.main&amp;nbsp; = 0.9)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 18. Dodajemy oś Y z wartościami skumulowanego prawdopodobieństwa&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;axis(2, at = round(cumsum(czestosc), 2), las = 2, cex = 0.7)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 19. Dodajemy opis osi X&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;mtext(text = &quot;Stopa zwrotu, 1-miesięczna (%)&quot;, side = 1, padj = 3.5)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 20. Zaznaczamy dominantę skumulowanego prawdopodobieństwa linią poziomą&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;abline(h&amp;nbsp; &amp;nbsp; = cumsum(czestosc)[which.max(czestosc)],&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col&amp;nbsp; = &quot;red&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lty&amp;nbsp; = 2,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lwd&amp;nbsp; = 2)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;# 21. Zaznaczamy dominantę pojedynczego prawdopodobieństwa linią pionową&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;abline(v&amp;nbsp; &amp;nbsp; = b[which.max(czestosc)],&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;col&amp;nbsp; = &quot;red&quot;,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lty&amp;nbsp; = 2,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lwd&amp;nbsp; = 2)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Liczba przypadków = 35.&lt;/div&gt;&lt;div&gt;Otrzymane statystyki:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhpTAeyDf365kPdKc3DqvIQ1v92d9f8oG1ggx7gswd77zAWhfjlcDupnPWpZ3oqNtMv6KbLEYODmZBHHdGIUxybPbrb9kkL6XdEGAlrC7WPApawyIxi4fGlVGxxxCesdo3j-g-kUefdOn6opNPWLkCHD1VaLUZslnHsWCG41vlvCLhnF5wL8cWcdtj/s772/rstudio_JhHX4h2Y1m.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;518&quot; data-original-width=&quot;772&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhpTAeyDf365kPdKc3DqvIQ1v92d9f8oG1ggx7gswd77zAWhfjlcDupnPWpZ3oqNtMv6KbLEYODmZBHHdGIUxybPbrb9kkL6XdEGAlrC7WPApawyIxi4fGlVGxxxCesdo3j-g-kUefdOn6opNPWLkCHD1VaLUZslnHsWCG41vlvCLhnF5wL8cWcdtj/w400-h269/rstudio_JhHX4h2Y1m.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okazuje się, że dominuje ujemna stopa zwrotu z medianą -2,5%, ale jej częstość to niecałe 0,4, a&amp;nbsp; skumulowane prawdopodobieństwo empiryczne 0,57. Oznacza to, że na prawie 60% będzie spadać w kolejnym miesiącu.&amp;nbsp; Skośność jednak powoduje, że sporo też jest dodatnich stóp zwrotu wokół +2,5%.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sprawdzamy 2-miesięczne zwroty, tj. oknoPrzyszlosci &amp;lt;- 42.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATadaNTaW9GQLAA0bNUAzz6iX2vuE3KgPPD5UFWKKjL3XAQYumbZyO2zad_o8YAACVjqY1G3HkXr49dd7uZT3fGyC5BaLjJoz1gIKpKUi_-uUirMfkqH-0oYCIJkJm6Hf2EJ1PP5pOaXiM1G5YA7f9z8MbHamzfE4Dd4YVdJ4oOXBK6gPlid4z-BW/s765/rstudio_UZAfkNXp3Y.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;518&quot; data-original-width=&quot;765&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgATadaNTaW9GQLAA0bNUAzz6iX2vuE3KgPPD5UFWKKjL3XAQYumbZyO2zad_o8YAACVjqY1G3HkXr49dd7uZT3fGyC5BaLjJoz1gIKpKUi_-uUirMfkqH-0oYCIJkJm6Hf2EJ1PP5pOaXiM1G5YA7f9z8MbHamzfE4Dd4YVdJ4oOXBK6gPlid4z-BW/w400-h271/rstudio_UZAfkNXp3Y.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&amp;nbsp;W kolejnych dwóch miesiącach po krzyżu śmierci dominowały wzrosty z medianą 2,5%, ale znów skośność powoduje duże ryzyko spadków.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3-miesięczna stopa zwrotu (oknoPrzyszlosci &amp;lt;- 63):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPIMM7YKcjx-_vZEk_L7jtx7vXc49TaoSwF8QWL5jIJxom6HXoiE9x-oajRGepUbs4g5tnD2PuKjHGnl0d6oWpD66icveNiIl4KvtBQtvbuZemH0gqe553zVBdO_AqapoJeKS88qFSFijB4s8Fd9O3_Qp1lu0C-fbVWTCZwXYc9-cvpkOQGz6Nm5Zk/s771/rstudio_LRD5J01MWn.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;519&quot; data-original-width=&quot;771&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPIMM7YKcjx-_vZEk_L7jtx7vXc49TaoSwF8QWL5jIJxom6HXoiE9x-oajRGepUbs4g5tnD2PuKjHGnl0d6oWpD66icveNiIl4KvtBQtvbuZemH0gqe553zVBdO_AqapoJeKS88qFSFijB4s8Fd9O3_Qp1lu0C-fbVWTCZwXYc9-cvpkOQGz6Nm5Zk/w400-h269/rstudio_LRD5J01MWn.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Po 3 miesiącach dostajemy w zasadzie czystą przypadkowość - możliwe są zarówno wzrosty jak i spadki.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ad 2) Cały kod będzie ten sam, jedynie war4 przyjmuje teraz postać&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;font-family: verdana; font-size: x-small;&quot;&gt;war4 &amp;lt;- lag(diff(sma50, lag = krok*2 + 1), k = -krok) &amp;lt; 0 &amp;amp; lag(diff(sma200, lag = krok*2 + 1), k = -krok) &amp;lt; 0&amp;nbsp; # oba spadają&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dostałem 20 przypadków.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;a) miesięczne zwroty:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnS7dSqPaRIpg2ltA1PjbnyYOgre09nsXOxwqtDrzpscBszuoFGiE-nwlknLd6Hpa6xtweTfDpSd0nSwxs2J8JPw6S1rfu0PO2a3LlMLtW02OHGIHpnUm7bF4GXLPhJG_eE2KzY-bsrjuA0cW7iOt_awm9eLGx5Qn0nRSwkCmhQ23r_daWW5tXoTKI/s760/rstudio_IbrnLFUJYX.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;520&quot; data-original-width=&quot;760&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnS7dSqPaRIpg2ltA1PjbnyYOgre09nsXOxwqtDrzpscBszuoFGiE-nwlknLd6Hpa6xtweTfDpSd0nSwxs2J8JPw6S1rfu0PO2a3LlMLtW02OHGIHpnUm7bF4GXLPhJG_eE2KzY-bsrjuA0cW7iOt_awm9eLGx5Qn0nRSwkCmhQ23r_daWW5tXoTKI/w400-h274/rstudio_IbrnLFUJYX.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dostajemy tu zbliżone wyniki do pierwszej definicji krzyża śmierci, z tym, że w tym przypadku prawdopodobieństwa spadków są wyższe niż poprzednio, bo aż 0,75.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;b) 2-miesięczne zwroty:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim2O2gk2JrcivNpq9IF7eN6Tirla6QKlYl-9vLVeLnJsTnEUDRSq-O33JFgfvjR8hlpKdlKZNvROUIluuAxz7qCKBog-Pno607HLglqy9Z-XNo13E9-donqTYnxb99f-q3bJlY9nAi3w0kFvZ-oxhjqJ3ko5r6C4DDofzbQZsPB3SAXPe60UHRxBQj/s750/rstudio_2NuYsbsmTy.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;514&quot; data-original-width=&quot;750&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim2O2gk2JrcivNpq9IF7eN6Tirla6QKlYl-9vLVeLnJsTnEUDRSq-O33JFgfvjR8hlpKdlKZNvROUIluuAxz7qCKBog-Pno607HLglqy9Z-XNo13E9-donqTYnxb99f-q3bJlY9nAi3w0kFvZ-oxhjqJ3ko5r6C4DDofzbQZsPB3SAXPe60UHRxBQj/w400-h274/rstudio_2NuYsbsmTy.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dominanta praktycznie nie istnieje. Można tylko powiedzieć, że zwroty przechylają się minimalnie&amp;nbsp;na plus.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;c) 3-miesięczne zwroty&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwDfVvhQhWQSz3jVJifYJl4kXcfECgnGo2FmF665UOKt9D9kwGa3imdKcNVPuiCgP919tmvBcmWesdEDotlidIRykPM3NuiGmpUSGH32GTlv3wmOtzJiULfjLuokJOqEhk5l7a1gIT6pV62Q50yTra-fijlbJZkGQCkX8mrOIoBBwXUvYReyCVxrc5/s754/rstudio_XP0QlY5dNK.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;517&quot; data-original-width=&quot;754&quot; height=&quot;274&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwDfVvhQhWQSz3jVJifYJl4kXcfECgnGo2FmF665UOKt9D9kwGa3imdKcNVPuiCgP919tmvBcmWesdEDotlidIRykPM3NuiGmpUSGH32GTlv3wmOtzJiULfjLuokJOqEhk5l7a1gIT6pV62Q50yTra-fijlbJZkGQCkX8mrOIoBBwXUvYReyCVxrc5/w400-h274/rstudio_XP0QlY5dNK.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Prawdopodobieństwo 3-miesięcznych wzrostów jest w tym wypadku obiektywnie większe niż spadków (chociaż okolice do -0% też nie jest takie małe).&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Porównując otrzymane statystyki ze wspomnianym na początku badaniem mogę powiedzieć, że się one pokrywają. Oni dostali średniomiesięcznie (medianę) -1%, ja dostałem dominantę -2,5%, a przy skumulowanym prawdopodobieństwie 0,57, a 0,57*2,5 = 1,43. Podobnie jak oni dostałem także dodatnią 3-miesięczną średnią.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Naturalne staje się na koniec pytanie, czy bieżący krzyż śmierci spełnia w ogóle określone definicje? Jeśli spełnia drugą, to oczywiście spełnia też pierwszą (bo druga jest mocniejsza), więc sprawdzamy najpierw drugą. Wszystkie sygnały są zapisane w zmiennej&amp;nbsp;unikalneDatySygnalow:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNTYACMBI4B ace_keyword&quot; style=&quot;color: blue; text-wrap-mode: nowrap; user-select: text;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;GNTYACMBH3B ace_keyword&quot; style=&quot;color: blue;&quot;&gt;unikalneDatySygnalow
&lt;/span&gt;&lt;span class=&quot;GNTYACMBB4B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt; [1] &quot;1953-05-11&quot; &quot;1957-09-26&quot; &quot;1960-02-15&quot; &quot;1962-05-08&quot; &quot;1965-07-22&quot; &quot;1968-02-27&quot; &quot;1969-06-23&quot;
 [8] &quot;1977-03-03&quot; &quot;1980-04-22&quot; &quot;1984-02-06&quot; &quot;1987-11-04&quot; &quot;1990-09-07&quot; &quot;1994-04-19&quot; &quot;2000-10-30&quot;
[15] &quot;2010-07-02&quot; &quot;2011-08-12&quot; &quot;2015-08-28&quot; &quot;2016-01-11&quot; &quot;2018-12-07&quot; &quot;2020-03-27&quot; &quot;2025-04-14&quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBB4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 16px; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBC4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;&lt;span class=&quot;GNTYACMBB4B&quot; style=&quot;border: none; margin: 0px; outline: none; user-select: text; word-break: break-all;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Ostatnia pozycja to właśnie ostatni sygnał z 14 kwietnia. Czyli druga definicja zostaje spełniona. Stąd wnioskujemy, że kolejne 21 sesji będzie spadkowych, z &quot;prawdopodobieństwem&quot; 0,75. To znaczy, że do połowy maja należy spodziewać się generalnie spadków. Kolejne 2 miesiące są niejednoznaczne, z lekkim przechyleniem na plus, a 3 miesiące &quot;powinny&quot; być dodatnie. Trudno mi uwierzyć w to ostatnie, ale wszystkiego trzeba się spodziewać przy takim rozedrganiu, z jakim mamy do czynienia.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/5145732599352304394/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/krzyz-smierci-na-s-czy-faktycznie-ma.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/5145732599352304394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/5145732599352304394'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/krzyz-smierci-na-s-czy-faktycznie-ma.html' title='Krzyż śmierci na S&amp;P500 - czy faktycznie ma znaczenie?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguZW_i__ETDn8x4jyCmTQQCyHQxi50W095RoD2OJMKPqKdU2HlThleDaA2hyphenhyphen7XrB3NMLbPwHwyivJ7qMJ-KxbawNFkkkOJaWaAQ_XIdfFPrSK0Srs6qe0OqpONjPt621p32JZ1lR2CXquzlxo2Xt4l9a3pmf9A5h6H_OsW3YWJ3TOx2XaCPbMLA_8E/s72-w400-h255-c/rstudio_mt9eY4b5ZF.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-919190117097727807</id><published>2025-04-09T13:19:00.020+02:00</published><updated>2025-04-10T19:32:04.788+02:00</updated><title type='text'>Co nam powie Equity Market Volatility Index?</title><content type='html'>&lt;p&gt;Oczywiście na giełdzie nie ma nic pewnego, ale prognozuję, że kwiecień będzie spadkowy. Spójrzmy na Indeks Zmienności Rynku Akcji USA (&lt;a href=&quot;https://policyuncertainty.com/EMV_monthly.html&quot; target=&quot;_blank&quot;&gt;US Equity Market Volatility Index&lt;/a&gt;) w porównaniu z S&amp;amp;P 500 (od stycznia 2005 do marca 2025):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqajTJRpcVmbXvfxqL4Qaya8GiWGTU_wxorqObAJXM-FcnFyyX2HYmvCV8Vy4wI4RLKTJQ9bamtarHYU6czzBDNHVgYu-ZYVE_H7AqtPEM8bqmDHBkmnCDm1eI4wEzZtjtqSLC8hP0y70dzVyQ_YstEBGh3x2jhMeoVwcg9Q3PxbigZHbl5pCQErp/s794/rstudio_PTVXIcaJzX.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;530&quot; data-original-width=&quot;794&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqajTJRpcVmbXvfxqL4Qaya8GiWGTU_wxorqObAJXM-FcnFyyX2HYmvCV8Vy4wI4RLKTJQ9bamtarHYU6czzBDNHVgYu-ZYVE_H7AqtPEM8bqmDHBkmnCDm1eI4wEzZtjtqSLC8hP0y70dzVyQ_YstEBGh3x2jhMeoVwcg9Q3PxbigZHbl5pCQErp/w400-h268/rstudio_PTVXIcaJzX.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Największe piki zmienności występowały w końcówce głębokich obsunięć. Mniejsze piki występowały również przy zakończeniu hossy. Wyjątkiem można nazwać rok 2022, ale też z perspektywy czasu nie były to jakieś gigantyczne spadki, co można tłumaczyć większym wpływem geopolityki niż gospodarki. Zupełnie inaczej sprawa się ma w przypadku roku 2020 - krótkie, ale duże załamanie, sztucznie wywołane przez przymusową izolację i zakazy handlu (tzw. lockdown). Pamiętam, jak nie mogłem uwierzyć, że rząd może sobie tak po prostu, z dnia na dzień niemal, zakazać prowadzić działalności gospodarczej. W sumie zobaczmy to z bliska:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZY6aGmDAeVcEkima1zte_42d6PiUHZq7t6zqeSiexmp27kK2gDiel29AgOdKqDokWnKIeI_AY_4cx7UjwV2bjDM7k-cUZCpwkMseAA1CnGPb-h0Ao_ETRKRRcdUix67PbSlaxsTh9E8MkzzrRKLEQX5Zm2t7TekI4fTmp50iL9sXwnj-km7-SK6H7/s794/rstudio_ja1PJ8aCjM.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;530&quot; data-original-width=&quot;794&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZY6aGmDAeVcEkima1zte_42d6PiUHZq7t6zqeSiexmp27kK2gDiel29AgOdKqDokWnKIeI_AY_4cx7UjwV2bjDM7k-cUZCpwkMseAA1CnGPb-h0Ao_ETRKRRcdUix67PbSlaxsTh9E8MkzzrRKLEQX5Zm2t7TekI4fTmp50iL9sXwnj-km7-SK6H7/w400-h268/rstudio_ja1PJ8aCjM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Cofnijmy się kolejne kilka lat:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Q0wtWOKTU7VvGkSiErzN_JccaH8tSlxT58Vu5VOdsmvXuqanJTHNBquYDxjPDil6PTw17V-txVpit7HA89rgniO4wlz2u9L9yMhJ7TDiMofAiXkNqmm8V2XcpBPucMJizZjbZ2qwx8oTpiUvrMLZEmknAf1757SpU6TVWhD7IahAZYWLlmzBQXKB/s795/rstudio_LM6j6CBs2Y.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;534&quot; data-original-width=&quot;795&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Q0wtWOKTU7VvGkSiErzN_JccaH8tSlxT58Vu5VOdsmvXuqanJTHNBquYDxjPDil6PTw17V-txVpit7HA89rgniO4wlz2u9L9yMhJ7TDiMofAiXkNqmm8V2XcpBPucMJizZjbZ2qwx8oTpiUvrMLZEmknAf1757SpU6TVWhD7IahAZYWLlmzBQXKB/w400-h269/rstudio_LM6j6CBs2Y.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Znowu chwilowy wstrząs w 2011 r. nie był całkowicie naturalny, bo dotyczył państw UE, które musiały poczuć na własnej skórze, do czego prowadzi socjalizm utrzymywany przez długie lata przez frywolne zadłużanie się. Unia w swojej &quot;dobroduszności&quot; postanowiła uratować je, czyli zrefinansować ich niespłacalne długi, tzn. jeszcze je dodłużyć. Koszty tej operacji były niewidoczne z dnia na dzień, dlatego wielu mogło uznać, że Grecji, Włochom czy Hiszpanii upiekło się. I w zasadzie mieli rację, chociaż mogli nie zauważyć, że cała UE od tej chwili zaczęła powoli upadać.&amp;nbsp; Nasza giełda jest tego świetnym przykładem.&lt;/p&gt;&lt;p&gt;Chociaż jak powiedziałem zmienność 2011 nie była całkiem naturalna, to jednak była skutkiem kryzysu finansowego parę lat wcześniej - a ten miał już duży wpływ na gospodarkę i przez to zmienność była naturalna:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPDOSmllNjKmOf-KsrQdSEBUwhL_qqjq1ErYGe4azOQAjO0ZNB6ZgFchsJt58OAoc_j5ZfqrzwIxQlJPeMoTWg2Ba53CXgFYaasACwnCOefVjYmA5R3oyhjlt-UR1cP6bBSl-cOA0KCIwT2x99yXfE7u-PnlgpdOas7LGbeCZjsYFj4Vfj_cfjZ6y/s789/rstudio_2FEmHt0Csh.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;531&quot; data-original-width=&quot;789&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPDOSmllNjKmOf-KsrQdSEBUwhL_qqjq1ErYGe4azOQAjO0ZNB6ZgFchsJt58OAoc_j5ZfqrzwIxQlJPeMoTWg2Ba53CXgFYaasACwnCOefVjYmA5R3oyhjlt-UR1cP6bBSl-cOA0KCIwT2x99yXfE7u-PnlgpdOas7LGbeCZjsYFj4Vfj_cfjZ6y/w400-h269/rstudio_2FEmHt0Csh.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Wróćmy do teraźniejszości, mamy:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvfU15leZm568PsO9zU4ORZoeZYDSIcAaFt6G7YNHlULtOyX2Ms-jE8qS1aYtx63CbI4aayU-BZ-nLwpI8N4yT150KnflZUkRMIBH2Mmomi5gjiy_JWKB-fhvRefnq6LHnowYHL8Fdx33d4Hk5oiYg0dDyBrJIZBE97Pu8mDsoH-Zm9OS8dLhuR9Lq/s793/rstudio_55s4cE5Oci.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;531&quot; data-original-width=&quot;793&quot; height=&quot;268&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvfU15leZm568PsO9zU4ORZoeZYDSIcAaFt6G7YNHlULtOyX2Ms-jE8qS1aYtx63CbI4aayU-BZ-nLwpI8N4yT150KnflZUkRMIBH2Mmomi5gjiy_JWKB-fhvRefnq6LHnowYHL8Fdx33d4Hk5oiYg0dDyBrJIZBE97Pu8mDsoH-Zm9OS8dLhuR9Lq/w400-h268/rstudio_55s4cE5Oci.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Wzrost niepewności, który tu obserwujemy, dopiero się zaczął. Jest pewne, że w kwietniu będzie dużo wyższy, ponieważ cła USA ogłosiły na początku kwietnia, a w kolejnych dniach zaczęły się pojawiać plotki, częściowo zdementowane, że cła będą zmniejszane w trakcie negocjacji. Takie biznesowe podejście, jakby się grało w pokera, zupełnie bez zwracania uwagi na otoczenie, to prawdziwy koszmar dla gospodarki. Światowej, ale w tym wypadku głównie USA, bo amerykańcy przedsiębiorcy nie mogą od niej uciec. A to właśnie zagraniczni inwestorzy będą uciekać z tak niestabilnego otoczenia (stąd dolar spada i będzie dalej spadał).&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Spadki muszą być potężne, bo nakładają dwa negatywne czynniki: cła oraz niepewność, czy za tydzień nie zostaną zniesione. &lt;/b&gt;Na efektywnym rynku, ale też czysto psychologicznie, nie będzie wiecznie reakcji na ewentualną zmianę decyzji Trumpa. Ta niepewność musi zostać zdyskontowana w postaci wyższej awersji do ryzyka. Psychologicznie natomiast powiemy, że ten sam bodziec będzie działał z czasem coraz słabiej.&lt;/p&gt;&lt;p&gt;Sama liniowa korelacja stopy zwrotu z EMV wynosi -33%, ale niewiele to mówi, bo ich zależność dużo lepiej pokazuje wykres punktowy:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZzqZ4jE2nPS1Da7BpHPT4Uk8Fyy9MA5Bt0wZBdQkFc1b6uLIC44x0GcjN3fVBfaWIlSAhUw5NIhbewds6Vkwj2CE57Tlibm4wUwZBrUvhMmv0SnMEH-JdvDuFx5GJUBpGe4d9NcLdqkwd2U89_sN0Lk2lmjf-oO8Rb7Szd4ZET-g-D3vAD8fhxp0x/s815/rstudio_X6I63IDDhS.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;429&quot; data-original-width=&quot;815&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZzqZ4jE2nPS1Da7BpHPT4Uk8Fyy9MA5Bt0wZBdQkFc1b6uLIC44x0GcjN3fVBfaWIlSAhUw5NIhbewds6Vkwj2CE57Tlibm4wUwZBrUvhMmv0SnMEH-JdvDuFx5GJUBpGe4d9NcLdqkwd2U89_sN0Lk2lmjf-oO8Rb7Szd4ZET-g-D3vAD8fhxp0x/w400-h210/rstudio_X6I63IDDhS.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Ta zależność jest ewidentnie nieliniowa i składa się z dwóch części. Pierwsza połowa zmienności to czyste ryzyko, które generuje albo zysk, albo stratę (zauważmy jak równo wyszło - ok. 11-12% na plus jak i na minus). Druga połowa zmienności jest ujemnie proporcjonalna do zmian procentowych. Dla EMV &amp;gt;= 40 dostajemy same ujemne stopy zwrotu i im większe EMV, tym mocniej ujemna jest zmiana indeksu. W sumie dostajemy wskaźnik mówiący, że jeśli dochodzi do poziomu 40 i przekracza go,&amp;nbsp; spadki są bardzo prawdopodobne.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ale właściwie co to jest ten EMV? Jego konstrukcja jest dość kontrowersyjna, ale wygląda na to, że poprawna. Otóż sam skrót ma dwa znaczenia. Pierwszy pochodzi od jego nazwy, czyli Equity Market Volatility. Drugi to akronim od&amp;nbsp;&lt;i&gt;economy&lt;/i&gt;, &lt;i&gt;market&lt;/i&gt;, &lt;i&gt;volatility&lt;/i&gt;. Każde z tych słów to hasła-skojarzenia,&amp;nbsp; stanowiące grupę różnych słów związanych z tym hasłem. Np. pod &quot;market&quot; jest m.in. equity, S&amp;amp;P, pod &quot;volatility&quot; jest risk, uncertainty itp. Te słowa-klucze szukane są następnie w prasie (gazetach) i zwyczajnie się je zlicza. Uzyskane liczby odpowiednio się skaluje i dostaje ten sposób wskaźnik dla każdego miesiąca. Ponieważ największe szczyty zmienności dostajemy blisko zakończenia bessy, to prawdopodobnie media napędzają wszechogarniający pesymizm &quot;ulicy&quot;, która pod wpływem psychicznej presji najmocniej pozbywa się aktywów blisko dołka.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Chociaż trudno w to uwierzyć, ale EMV - wskaźnik obliczony tylko w oparciu o zliczanie słów w prasie - ma korelację z &lt;a href=&quot;https://www.cboe.com/tradable_products/vix/&quot; target=&quot;_blank&quot;&gt;VIX&lt;/a&gt; ok. 70%. Bo to by znaczyło, że bez danych rynkowych można poprawnie oszacować bieżącą zmienność rynku. Nie jest to może szokujące, ale mocno zaskakujące.&lt;/p&gt;&lt;p&gt;Może się wydawać, że EMV nie jest tak przydatny jak VIX, który podawany jest z dzienną częstością, a nie miesięczną. Tylko zobaczmy jedną rzecz. Porównajmy oba wskaźniki w tym samym okresie po dopasowaniu VIX do miesięcznej częstości:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9aB-iQgR-C9A9jUFtIV5G1bgDrw4byqdZwd8Mh6i2fgZj_uOQtMaGeA592XbeLPk1ALGpnk0waQWdRYRMaei8kDAL5XTopX52hbqiDjqtBsonBLeIiBXKvzmhaRFlf7RwXOxsUlg5BKMLFT5e0FUOamFZNpgpGcH2KVYjvqKRB4EV9hUha2QNz08u/s796/rstudio_dZKBpviEXQ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;528&quot; data-original-width=&quot;796&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9aB-iQgR-C9A9jUFtIV5G1bgDrw4byqdZwd8Mh6i2fgZj_uOQtMaGeA592XbeLPk1ALGpnk0waQWdRYRMaei8kDAL5XTopX52hbqiDjqtBsonBLeIiBXKvzmhaRFlf7RwXOxsUlg5BKMLFT5e0FUOamFZNpgpGcH2KVYjvqKRB4EV9hUha2QNz08u/w400-h265/rstudio_dZKBpviEXQ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Zoom od 2019:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRerTHMq6P33Vtz_dT77NK1q2i16zxwzHVQfwbAjY9YxSd0ySIHpoDTz4FUAKP0LmXPtNvi2v1mrjD1KlDSmJbW_xKkUk6AmRNJHao5ywOei0-Bwnfkd0K6htkQRaIYrb0mk70K4CUkhGVfslRLRJZ-e9wsPT0EpI3UTWTvLHSXSC8V01ODRMpewkC/s786/rstudio_45C2tNCCkC.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;786&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRerTHMq6P33Vtz_dT77NK1q2i16zxwzHVQfwbAjY9YxSd0ySIHpoDTz4FUAKP0LmXPtNvi2v1mrjD1KlDSmJbW_xKkUk6AmRNJHao5ywOei0-Bwnfkd0K6htkQRaIYrb0mk70K4CUkhGVfslRLRJZ-e9wsPT0EpI3UTWTvLHSXSC8V01ODRMpewkC/w400-h269/rstudio_45C2tNCCkC.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;W przypadku okresu pandemicznego oba wskaźniki rosły i spadały równolegle, natomiast ostatni wstrząs polityki celnej Trumpa był poprzedzony tak samo szybkim wzrostem EMV, ale już nie VIX. Różnica jest taka, że pierwsze wydarzenie było całkowicie nieprzewidywalne, natomiast drugie było mocno nagłaśniane w mediach. Przypuszczam, że różnica leży w tym, że informacje o cłach były z jednej strony stopniowo odkrywane, a z drugiej ciągle powtarzane, co spowodowało, że rynek zachował się trochę jak powoli gotowana żaba. VIX zaczął gwałtownie rosnąć dopiero w kwietniu, którego tutaj siłą rzeczy nie można było umieścić. Bo dziennie jest skok:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4U_KlCDPWGoAiaZMcgOTWG0aOCYkdAVVhD94lSRbNH1gtRLli4MZlMwNZHPl0JJcZniPA8XSxD0wZq9DhNhQi28GId3WVR0JfDe7F0oY3EXc6iRVpFbndULGrYrfB_4UhTNqOF1jEKUZvW8KRR2wznkiMBaAgIKZ4qGM13LC2aLo1wKhTmj8IvmWa/s784/rstudio_Pgbj5NA7Zy.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;258&quot; data-original-width=&quot;784&quot; height=&quot;131&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4U_KlCDPWGoAiaZMcgOTWG0aOCYkdAVVhD94lSRbNH1gtRLli4MZlMwNZHPl0JJcZniPA8XSxD0wZq9DhNhQi28GId3WVR0JfDe7F0oY3EXc6iRVpFbndULGrYrfB_4UhTNqOF1jEKUZvW8KRR2wznkiMBaAgIKZ4qGM13LC2aLo1wKhTmj8IvmWa/w400-h131/rstudio_Pgbj5NA7Zy.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Wygląda więc na to, że EMV przewidział z miesięcznym wyprzedzeniem spadki amerykańskiej giełdy (ponieważ w marcu przekroczył poziom 40), podczas gdy VIX po prostu je odzwierciedla. Spójrzmy też na oba wskaźniki przy zakończeniu hossy 2007:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpVIPcMITK-s6ATUKYRivlzIWGYB_iieKYTNFf5Ae1nL9_N08D0yL6PHKTNlhOT8t_zy-A_XpgzUqhiNXP3Twq5Kpy14RoC8B_uqaMQ0IYYPVi1qOqzvISp_g6RNsSGTMWsM9a2W_2m1v0en8pHUVInJD8eKRdbmrGCa_45L1Ulj27mBAC2CQUbFEV/s783/rstudio_XyYHfvYKeI.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;525&quot; data-original-width=&quot;783&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpVIPcMITK-s6ATUKYRivlzIWGYB_iieKYTNFf5Ae1nL9_N08D0yL6PHKTNlhOT8t_zy-A_XpgzUqhiNXP3Twq5Kpy14RoC8B_uqaMQ0IYYPVi1qOqzvISp_g6RNsSGTMWsM9a2W_2m1v0en8pHUVInJD8eKRdbmrGCa_45L1Ulj27mBAC2CQUbFEV/w400-h269/rstudio_XyYHfvYKeI.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;EMV praktycznie wskazał szczyt S&amp;amp;P500, który korespondował ze szczytem EMV (wartością min. 40). Tego nie można powiedzieć o VIX. Z kolei przy zakończeniu bessy taka rozbieżność nie występuje.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/919190117097727807/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/co-nam-powie-equity-market-volatility.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/919190117097727807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/919190117097727807'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/co-nam-powie-equity-market-volatility.html' title='Co nam powie Equity Market Volatility Index?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioqajTJRpcVmbXvfxqL4Qaya8GiWGTU_wxorqObAJXM-FcnFyyX2HYmvCV8Vy4wI4RLKTJQ9bamtarHYU6czzBDNHVgYu-ZYVE_H7AqtPEM8bqmDHBkmnCDm1eI4wEzZtjtqSLC8hP0y70dzVyQ_YstEBGh3x2jhMeoVwcg9Q3PxbigZHbl5pCQErp/s72-w400-h268-c/rstudio_PTVXIcaJzX.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-6390843739927409424</id><published>2025-04-03T15:12:00.003+02:00</published><updated>2025-04-03T15:14:57.374+02:00</updated><title type='text'>Arabica też zleci?</title><content type='html'>&lt;p&gt;Kiedy kawa arabica rosła jak szalona w styczniu i lutym, &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/01/kawa-psychologiczna-czy-ekonomiczna.html&quot; target=&quot;_blank&quot;&gt;dowodziłem&lt;/a&gt;, że wzrost jest bardziej psychologiczny czy spekulacyjny niż fundamentalny. Kiedy media jak mantrę powtarzały, że jest to m.in. skutek strachu przed zapowiadanymi cłami z USA, twierdziłem, że&amp;nbsp;&lt;i&gt;oczywiste, że Trump nie nałoży ceł na kawę, bo jest to produkt deficytowy&lt;/i&gt;.&amp;nbsp;Wczoraj Trump ogłosił nowe cła na kraje z całego świata, w tym na Brazylię. W&amp;nbsp;&lt;a href=&quot;https://www.whitehouse.gov/presidential-actions/2025/04/regulating-imports-with-a-reciprocal-tariff-to-rectify-trade-practices-that-contribute-to-large-and-persistent-annual-united-states-goods-trade-deficits/&quot; target=&quot;_blank&quot;&gt;tym dokumencie dotyczącym tych opłat&lt;/a&gt;&amp;nbsp;(z 02.04.2025)&amp;nbsp;Brazylia rzeczywiście została nawet wymieniona, ale to tylko ogólniki. Po wczytaniu się w szczegóły okaże się, że normalna kawa nie jest objęta cłem. Kluczowy jest fragment:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;(b)&amp;nbsp; The following goods as set forth in Annex II to this order, consistent with law, shall not be subject to the ad valorem rates of duty under this order:&amp;nbsp; (...) (v) all articles from a trading partner subject to the rates set forth in Column 2 of the Harmonized Tariff Schedule of the United States (HTSUS)&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;To znaczy szukamy tego&amp;nbsp;&lt;a href=&quot;https://hts.usitc.gov/&quot;&gt;Harmonized Tariff Schedule&lt;/a&gt;&amp;nbsp;, znajdziemy tam rozdział 9 &quot;Coffee, tea, maté and spices&quot; i otwieramy:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd-a4txxQll0-57Kblvoo0sglyY9pDghNurg2YtaiUe74XxZAJdz5uOr-i6WvDeUanVFEjGdhqjJWInokqcNTGwWH7xfp4rlnMLVeshe92k_KjYwEq0cXT3Igp3BkJM83lfz2EFgdYhU1EcPNOlxoVE52RX7IvwoRB58anWizIj66daBRg1ChU8iR4/s1130/msedge_RaMG0rKsdh.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1130&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd-a4txxQll0-57Kblvoo0sglyY9pDghNurg2YtaiUe74XxZAJdz5uOr-i6WvDeUanVFEjGdhqjJWInokqcNTGwWH7xfp4rlnMLVeshe92k_KjYwEq0cXT3Igp3BkJM83lfz2EFgdYhU1EcPNOlxoVE52RX7IvwoRB58anWizIj66daBRg1ChU8iR4/w400-h280/msedge_RaMG0rKsdh.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Miały być stawki z kolumny 2, czyli pewnie te od prawej - zaznaczonej cyframi 1 i 2. Wszystkie podstawowe typy kawy bez ceł. Dziękuję, do widzenia.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Widzimy jak na dłoni, że starają się potężnie manipulować decyzjami inwestorów i trzeba mieć krytyczny stosunek do wszelkich opinii.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_cA-48PrfLjkmSUbnOgTnDjChghjpUoTw9cmUYYz36U10MXhUK-WXWdJTZeWSP0nbf8Hmj9iKLqJgWcmIgIDQ1t92zvPRzVA8NGjZ_Xg_9fD5yiFs7jpxG61guDv7KYehyphenhyphenRi0KJqVQ6ZSXOsNUT59VD97nsQ44TrutZQQPLO7vj6ExXkR85MSXrrC/s878/chrome_94S1IrRXpI.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;553&quot; data-original-width=&quot;878&quot; height=&quot;253&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_cA-48PrfLjkmSUbnOgTnDjChghjpUoTw9cmUYYz36U10MXhUK-WXWdJTZeWSP0nbf8Hmj9iKLqJgWcmIgIDQ1t92zvPRzVA8NGjZ_Xg_9fD5yiFs7jpxG61guDv7KYehyphenhyphenRi0KJqVQ6ZSXOsNUT59VD97nsQ44TrutZQQPLO7vj6ExXkR85MSXrrC/w400-h253/chrome_94S1IrRXpI.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/6390843739927409424/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/arabica-tez-zleci.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/6390843739927409424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/6390843739927409424'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/04/arabica-tez-zleci.html' title='Arabica też zleci?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd-a4txxQll0-57Kblvoo0sglyY9pDghNurg2YtaiUe74XxZAJdz5uOr-i6WvDeUanVFEjGdhqjJWInokqcNTGwWH7xfp4rlnMLVeshe92k_KjYwEq0cXT3Igp3BkJM83lfz2EFgdYhU1EcPNOlxoVE52RX7IvwoRB58anWizIj66daBRg1ChU8iR4/s72-w400-h280-c/msedge_RaMG0rKsdh.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7717697416198995208</id><published>2025-03-31T17:03:00.008+02:00</published><updated>2025-03-31T22:27:50.202+02:00</updated><title type='text'>Jaka piękna katastrofa</title><content type='html'>&lt;p&gt;&amp;nbsp;Aż muszę uważać, żeby za bardzo się nie cieszyć z tego co się dzieje. Stało się tak jak mówiłem - jedynie z lekkim opóźnieniem (zob.&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/11/lepiej-zeby-trump-wygra.html&quot; target=&quot;_blank&quot;&gt;Lepiej żeby Trump wygrał?&lt;/a&gt;). Zagrożenie bessą sygnalizowałem zresztą dużo wcześniej (&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/09/czeka-nas-kryzys.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;, &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/05/kolejne-wykresy-jako-ostrzezenie.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Polska giełda zrobiła niespodziankę i mocno odbiła, jednak też da się to wytłumaczyć (zob.&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/02/ca-trumpa-nie-beda-miay-wiekszego-wpywu.html&quot; target=&quot;_blank&quot;&gt;Cła Trumpa nie będą miały większego wpływu na UE, w tym Polskę&lt;/a&gt;). Ta gorsza, od dłuższego czasu, korelacja z USA&amp;nbsp; każe stawiać pytania o trend:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtyhVuZnp3Q4FolrJ_MO7P-4KpqOA5dcmhMimZYXEs-QERxPiLA4O6vmHbG6E3jigNXRHalRu7oU6UVsY_25qcGG9ftgiAsnz4ZBzAgTb77Kq_7cNjpaKuzRjZ2b8BuzKzJvHKK8tPooRUJljXL5R5_rsvrFSVBRrcr5nSIgSsFsrIaE7WH5jqgJZ2/s875/chrome_5TerAPHGAu.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;559&quot; data-original-width=&quot;875&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtyhVuZnp3Q4FolrJ_MO7P-4KpqOA5dcmhMimZYXEs-QERxPiLA4O6vmHbG6E3jigNXRHalRu7oU6UVsY_25qcGG9ftgiAsnz4ZBzAgTb77Kq_7cNjpaKuzRjZ2b8BuzKzJvHKK8tPooRUJljXL5R5_rsvrFSVBRrcr5nSIgSsFsrIaE7WH5jqgJZ2/w400-h255/chrome_5TerAPHGAu.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Otóż odpowiedź wcale nie jest szczególnie trudna, bo możemy nawet pominąć w analizie USA. Spójrzmy na C/WK WIG20:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6hiLdO3EJDdW9LcO4Il-vI48RmPvZHO7w4vjDrH0GMmiuMqj_3-UX2ImwySHmxkeS5jYgKqiV4PkxHN4E8tjpbxa5ku_ZpgWpFztfDFw773m-lkN_wOjX8TPsqZvonZFjmg8sV-0NQ7AeXK3e9EBBODRpw4s85v7VXZ1CN0Kl7Bi9IFfktLk1YY8W/s810/rstudio_2SfRFzPNnQ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;525&quot; data-original-width=&quot;810&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6hiLdO3EJDdW9LcO4Il-vI48RmPvZHO7w4vjDrH0GMmiuMqj_3-UX2ImwySHmxkeS5jYgKqiV4PkxHN4E8tjpbxa5ku_ZpgWpFztfDFw773m-lkN_wOjX8TPsqZvonZFjmg8sV-0NQ7AeXK3e9EBBODRpw4s85v7VXZ1CN0Kl7Bi9IFfktLk1YY8W/w400-h259/rstudio_2SfRFzPNnQ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Teraz na na C/Z WIG20:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7UxZIUANhuAdB0rLtzaPB_6OwKmvNY_vSI6jfzV3v6XRi-eTh8YWpN40DNS-53z4Tm0vuPkjMQE7bu0m8QUTgIUA2EuJ8-ICB_KacyO6zCAYMa06KkKd6o6WWM8HHmpDMN4Hl9SyioicW6svzP9h2bUsRQE3s6XaR9pqGuJ9dyug4AWoVON1EF8LT/s798/rstudio_DMNiRQlT3O.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;522&quot; data-original-width=&quot;798&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7UxZIUANhuAdB0rLtzaPB_6OwKmvNY_vSI6jfzV3v6XRi-eTh8YWpN40DNS-53z4Tm0vuPkjMQE7bu0m8QUTgIUA2EuJ8-ICB_KacyO6zCAYMa06KkKd6o6WWM8HHmpDMN4Hl9SyioicW6svzP9h2bUsRQE3s6XaR9pqGuJ9dyug4AWoVON1EF8LT/w400-h261/rstudio_DMNiRQlT3O.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Podzielmy C/WK przez C/Z, aby dostać ROE:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIozzOnkIv11oAgplQquoWQrPI-utQY7Kwe2lazFl5IorpV_OFF2TMTEoFKMmvyCJB__1cQ4S6ZeYGsPYQ1mswUQ_548QrV1Z7IlnEIRn9bna3ABaYLzVCyWB-M17fp7zAaFABXdBfKYZjCfIekp4xfX-uJ9AhNgc6SD3jdHa9QRSJz4VGVWxs5WvW/s815/rstudio_DcndzG0dsi.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;525&quot; data-original-width=&quot;815&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIozzOnkIv11oAgplQquoWQrPI-utQY7Kwe2lazFl5IorpV_OFF2TMTEoFKMmvyCJB__1cQ4S6ZeYGsPYQ1mswUQ_548QrV1Z7IlnEIRn9bna3ABaYLzVCyWB-M17fp7zAaFABXdBfKYZjCfIekp4xfX-uJ9AhNgc6SD3jdHa9QRSJz4VGVWxs5WvW/w400-h258/rstudio_DcndzG0dsi.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Następnie spójrzmy na EPS. Wprawdzie stooq.pl nie oferuje bezpośrednio tych danych, ale bez problemu je wyłuskamy, dzieląc kurs WIG20 przez C/Z:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDGxwS3WOum7QVeERLs2F_Rjl3saG9Mo6U24yNsbHE1rJlqKPdILFlumr7Y6K_DUhLA8jwEvshsfoukYh50m1f08jWbXMvYMbLqcIMRmlmlul74G4g9rtlX1YWoMluQRdSC3vf1rHSbzD-QP4BGcqqdkk-qrNr8wzFZOj1az4mnHdU1mfd9tvZI83X/s805/rstudio_4hjcLRMAhg.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;526&quot; data-original-width=&quot;805&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDGxwS3WOum7QVeERLs2F_Rjl3saG9Mo6U24yNsbHE1rJlqKPdILFlumr7Y6K_DUhLA8jwEvshsfoukYh50m1f08jWbXMvYMbLqcIMRmlmlul74G4g9rtlX1YWoMluQRdSC3vf1rHSbzD-QP4BGcqqdkk-qrNr8wzFZOj1az4mnHdU1mfd9tvZI83X/w400-h261/rstudio_4hjcLRMAhg.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To nie pomyłka: obecny EPS WIG20 jest obecnie na tym samym poziomie co w 2007 r. A trzeba dodać choćby inflację, żeby zrozumieć, że jest to kompletna zapaść. Nie ma możliwości, żeby indeks był wyżej niż w 2007 r:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTVA5g17F2c2tp4tJz8eAYxsE7Hm5cmsLeJGvgcRj1KEjmZtjgQ46mFeT7RVSLMuz8_-nuQnGCp3lgKCVIZv4AmTludemU4Bfe4oalW2msQ6m-fejdgpHhmJazXfqP-8M7RRyHrqmU7wpggqXOYJ4WFIW3s5Cdi_3RZ_SgoyL7KIi_1iMB54_vQVV_/s819/rstudio_yZMnhcCoRX.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;819&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTVA5g17F2c2tp4tJz8eAYxsE7Hm5cmsLeJGvgcRj1KEjmZtjgQ46mFeT7RVSLMuz8_-nuQnGCp3lgKCVIZv4AmTludemU4Bfe4oalW2msQ6m-fejdgpHhmJazXfqP-8M7RRyHrqmU7wpggqXOYJ4WFIW3s5Cdi_3RZ_SgoyL7KIi_1iMB54_vQVV_/w400-h258/rstudio_yZMnhcCoRX.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Dlaczego wobec tego WIG20 ma obecnie tak wysokie C/WK (2,75)? Z powodu niskiej WK. Skąd to wiem? Bo zobaczmy, że chociaż nastąpił skok ROE, to EPS, jak zauważyłem, nie zmienił się. Zatem WK spadła. Możemy to sprawdzić dzieląc WIG20 przez C/WK:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bKUFyRHeN4LiQk0SEcOqfzXy-Hdmh5QKmCohdqsKQM08AJV19FgYbJCbAb3QNthXN5uLLOHFzFcT3t3Vcz6boDuU_AYHFwLa2ro5SIur0UCpxPg5lRK1KDhYuLeLpaqzM9bC4NotujnDTyVnoNmCRz-unEr6gtvYgAc14TlMqUq2LD4R_H9RGjYV/s823/rstudio_S4g8iEccvE.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;523&quot; data-original-width=&quot;823&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5bKUFyRHeN4LiQk0SEcOqfzXy-Hdmh5QKmCohdqsKQM08AJV19FgYbJCbAb3QNthXN5uLLOHFzFcT3t3Vcz6boDuU_AYHFwLa2ro5SIur0UCpxPg5lRK1KDhYuLeLpaqzM9bC4NotujnDTyVnoNmCRz-unEr6gtvYgAc14TlMqUq2LD4R_H9RGjYV/w400-h254/rstudio_S4g8iEccvE.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Oczywiście spadła m.in. z powodu odcięcia dywidend, ale przecież spółki nie wypłacają 100% zysku, czyli po prostu wyniki miały słabe.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Widzimy, że średnia ROE od 2007 do dziś mieści się w przedziale 10-12%, czyli na poziomie kosztu kapitału własnego. Czy gdyby przyjąć, że ROE spadnie do tego poziomu, to WIG20 powinien zlecieć aż do... 1000? Nie. Za chwilę pokażę dlaczego.&lt;/p&gt;&lt;p&gt;Obecny EPS = 175. Teraz załóżmy optymistycznie, że będzie średnio rósł 3,6%. To znaczy, że zakładamy, że 2/3 zysku przeznaczamy na dywidendy: ROE = 11%, k = 1/3 =&amp;gt; g = 11*1/3 = 3,6. Przy r = 11% wycena będzie równa:&lt;/p&gt;&lt;p&gt;P = 175*2/3/(0.11-0.036) = 1577.&lt;/p&gt;&lt;p&gt;Czyli dużo powyżej WK = 1000. Dlaczego nie równa się WK, skoro r = ROE? ROE = EPS / WK = 175 / 1000 = 0,17. A przecież miało być 0,11. Bieżące ROE wynika z bieżących danych, ale w wycenie trzeba umieścić przyszłe (oczekiwane) dane. A 175 jest bieżące, nie przyszłe. Od teraźniejszości jednak zaczynamy, stąd taka wycena w pewnym sensie uwzględnia spadek ROE w przyszłych okresach.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Nawet gdyby uwzględnić fakt, że EPS dotyczy kolejnego roku i może wzrosnąć np. o 10%, to i tak okaże się, że obecnie (powyżej 2600)&amp;nbsp;&lt;b&gt;WIG20 jest przewartościowany&lt;/b&gt;, bo dostalibyśmy wartość ledwo 1740.&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7717697416198995208/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/03/jaka-piekna-katastrofa.html#comment-form' title='Komentarze (14)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7717697416198995208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7717697416198995208'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/03/jaka-piekna-katastrofa.html' title='Jaka piękna katastrofa'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtyhVuZnp3Q4FolrJ_MO7P-4KpqOA5dcmhMimZYXEs-QERxPiLA4O6vmHbG6E3jigNXRHalRu7oU6UVsY_25qcGG9ftgiAsnz4ZBzAgTb77Kq_7cNjpaKuzRjZ2b8BuzKzJvHKK8tPooRUJljXL5R5_rsvrFSVBRrcr5nSIgSsFsrIaE7WH5jqgJZ2/s72-w400-h255-c/chrome_5TerAPHGAu.png" height="72" width="72"/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-8049462183949591559</id><published>2025-02-23T01:55:00.012+01:00</published><updated>2025-03-02T13:05:33.630+01:00</updated><title type='text'>Cicha zmowa maszyn</title><content type='html'>&lt;p&gt; W teorii wartości towarów, którą &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/02/moja-teoria-wartosci-towarow.html&quot; target=&quot;_blank&quot;&gt;ostatnio&lt;/a&gt; przedstawiłem, założyłem, że istnieją dwie grupy trejderów: &quot;uczciwi&quot; i &quot;nieuczciwi&quot;. Nieuczciwi zmawiają się ze sobą, kupując i sprzedając od siebie nawzajem, wykorzystując uczciwych - nieświadomych tego procederu. Krytycy tej teorii mogą jednak przekonywać, że takie praktyki są nielegalne i podlegają sankcjom (np. grzywny, więzienie - zob. &lt;a href=&quot;https://federal-criminal.com/white-collar/legal-penalties-for-collusion-in-commodity-exchanges/&quot; target=&quot;_blank&quot;&gt;więcej&lt;/a&gt;), a więc jeśli nawet są stosowane, to w sposób ostrożny i dyskretny.&lt;/p&gt;&lt;p&gt;Zmowa cenowa może być jednak niekooperacyjna, a nawet nieświadoma - a przez to legalna. Dokładniej rzecz biorąc, może być:&lt;/p&gt;&lt;p&gt;1) kooperacyjna i świadoma,&lt;/p&gt;&lt;p&gt;2) niekooperacyjna i świadoma,&lt;/p&gt;&lt;p&gt;3) niekooperacyjna i nieświadoma.&lt;/p&gt;&lt;p&gt;Najbardziej oczywisty jest przypadek nr (1), którego przykładem są ci nieuczciwi trejderzy. Ale przypadek nr (2) jest także dobrze znany w teorii gier. Dotyczy to gier powtarzanych, z wieloma rundami. Każda runda to kolejny odcinek czasu i gracze muszą brać pod uwagę różne scenariusze w przyszłości, tak aby zmaksymalizować zdyskontowaną wartość bieżącą dochodu. Klasycznym przykładem są oligopole, które formalnie nie muszą wchodzić w koalicję, ale obserwując rynek stawiają diagnozy i snują przypuszczenia. Jeśli firma A wie, że takich jak ona jest mało, to znaczy, że każda ma wpływ na cenę rynkową, a więc i ona sama. Jeśli A zauważy zmiany w cenie, to musi jakoś zareagować. Jeśli firma B obniży cenę, a zewnętrznych przyczyn nie widać, to znaczy, że chce przyciągnąć większy popyt&amp;nbsp; i więcej zarobić (zwiększa swój udział w rynku). Wtedy firma A też obniży cenę, aby dopasować się do nowych warunków i w ten sposób udział sprzedaży wraca do punktu wyjścia. Chociaż popyt wzrośnie dzięki niższej cenie, a firmy będą mogły zrekompensować częściowo &quot;stratę&quot; przez większą sprzedaż (produkcję), to nie na tyle, aby zysk został zachowany. Wojna cenowa obniży zysk wszystkich, ponieważ przybliża ich do konkurencji doskonałej. Stąd oligopolom powinno zależeć na utrzymaniu wzajemnej równowagi i niezmienianiu warunków, tak aby maksymalizować zysk. To jest koalicja niekooperacyjna (cicha zmowa).&lt;/p&gt;&lt;p&gt;&amp;nbsp;Przypadek (3) należy do nowej kategorii w teorii gier, w której to maszyny podejmują decyzje na podstawie rozpoznanych wzorców. Jeżeli wielu trejderów wysługuje się sztuczną inteligencją do podjęcia decyzji, to wydawałoby się, że po prostu będą tak samo ze sobą konkurować jak ludzie. Ale maszyny, AI, nie rozumują jak ludzie - uczą się na ślepo wzorców i jeśli dostrzegają, że ich ruch przyniósł parę razy zysk, to traktują to jak wzorzec do powtarzania. Jeśli więc wytrenowane AI zauważą - oczywiście każda z osobna, niezależnie od siebie - że strategia udająca zmowę (taką jak opisałem w poprzednim artykule) przynosi korzyści, to będą ją podtrzymywać. Mechanizm ten został opisany m.in. w [1], [2]. Autorzy [1] stwierdzają, że cicha zmowa AI może powstać w dwóch przeciwnych okolicznościach: zarówno gdy jest mała płynność rynku, jak i gdy jest duża liczba noise-traderów, tj. występuje ryzyko szumu handlowego. W obu przypadkach cena może łatwo wypaść z równowagi i aktywo będzie nieefektywnie wyceniane. A zatem niezależnie od płynności, algorytmy AI zamiast konkurować ze sobą, mogą się wzajemnie nakręcać. Z punktu widzenia mojego modelu będziemy mieć przypadek dużej płynności, w której grupa &quot;uczciwych&quot; to noise-traderzy, a grupa &quot;nieuczciwych&quot; to maszyny. Maszyny więc na początku kupują dużą ilość towaru pod wpływem informacji, sprzedają sobie nawzajem po coraz wyższej cenie, ale żeby ilość pieniędzy pozostała stała, zmniejszają kupowaną ilość towaru. Wtedy do gry wchodzą noise-traderzy, którzy wykupują pozostałą część. Stopniowo maszyny pozbywają się towaru i zarabiają ponadprzeciętnie, czyli bez dodatkowego ryzyka, a noise-traderzy będą już między sobą normalnie konkurować. Można przypuszczać, że cena spadnie, aby cena zrównała się z wartością fundamentalną. Odwrotna sytuacja zajdzie w przypadku informacji negatywnej dla ceny. W ten sposób można racjonalnie wyjaśnić krótkoterminowy trend rosnący (bańkę) i spadkowy (krach).&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Literatura:&lt;/p&gt;&lt;p&gt;[1]&amp;nbsp; Dou, W. W., I. Goldstein, and Y. Ji (2023). “AI-Powered Trading, Algorithmic Collusion, and Price Efficiency”. SSRN 4452704;&lt;/p&gt;&lt;p&gt;[2] Klein, T. (2021). Autonomous algorithmic collusion: Q-learning under sequential pricing. The RAND Journal of Economics 52(3), 538–558.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/8049462183949591559/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/cicha-zmowa-maszyn.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8049462183949591559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8049462183949591559'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/cicha-zmowa-maszyn.html' title='Cicha zmowa maszyn'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-2957417526124453738</id><published>2025-02-06T16:30:00.017+01:00</published><updated>2025-02-10T18:51:31.767+01:00</updated><title type='text'>Moja teoria wartości towarów</title><content type='html'>&lt;p&gt;Wymyśliłem teorię wartości towaru. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/02/prosta-wycena-towarow.html&quot; target=&quot;_blank&quot;&gt;Poprzednio&lt;/a&gt; zaproponowałem wzór na wycenę towarów, ale wychodził on z założenia ad hoc, że wymagana stopa zwrotu dla towaru równa jest 1 / (1 + zmiana podaży) - 1. Stąd dostałem:&lt;/p&gt;&lt;p&gt;(1)&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUj2MEqaoIVP0i0L_EFkMtOZw0vEYa32ScIpZoyb7CAeC4fEMiQKMX8HS8_rDEvXRG686DAZ_4gdWroqbbxDpXh-5ihbk9vM1r2GHRuQyRBtOeSpLFW8ghUDBGLb-IqW7aB72h-FKZxSm1F8xyIw2vho9g-AT9_lHTmNqiEvvTt3CYWMYrN47MXa8R/s87/msedge_1EYHnun2hS.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;87&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUj2MEqaoIVP0i0L_EFkMtOZw0vEYa32ScIpZoyb7CAeC4fEMiQKMX8HS8_rDEvXRG686DAZ_4gdWroqbbxDpXh-5ihbk9vM1r2GHRuQyRBtOeSpLFW8ghUDBGLb-IqW7aB72h-FKZxSm1F8xyIw2vho9g-AT9_lHTmNqiEvvTt3CYWMYrN47MXa8R/s1600/msedge_1EYHnun2hS.png&quot; width=&quot;87&quot; /&gt;&lt;/a&gt;&lt;/div&gt;gdzie P - cena towaru, P0 - początkowa cena towaru, Q - podaż towaru, Q0 - początkowa podaż towaru.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Taki sam wzór dostaniemy, jeśli wykorzystamy równanie wymiany:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(2)&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghUhzTiyxav_foZAk7XLQIJqcvYmNnC2PKQVa1yeISPTDLsmGgLAqomAxPXhWiVbJKIgbqawnGQuViWN1zofmtH8uz5YoEXt8xTJMjFTPKX2I-UeK0esHiDRUPFi8Qlq208wMJ0IjR0X-lUKqFylUftEJYh159Ik3fo2PHiaISGrF164iH3Q11ISo8/s106/msedge_CeL7gD1ty2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;39&quot; data-original-width=&quot;106&quot; height=&quot;39&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghUhzTiyxav_foZAk7XLQIJqcvYmNnC2PKQVa1yeISPTDLsmGgLAqomAxPXhWiVbJKIgbqawnGQuViWN1zofmtH8uz5YoEXt8xTJMjFTPKX2I-UeK0esHiDRUPFi8Qlq208wMJ0IjR0X-lUKqFylUftEJYh159Ik3fo2PHiaISGrF164iH3Q11ISo8/s1600/msedge_CeL7gD1ty2.png&quot; width=&quot;106&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;gdzie: M - podaż pieniądza, V - szybkość obiegu pieniądza.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Równanie wymiany jest tożsamością, które wyprowadziłem i omawiałem &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2018/02/rownanie-wymiany-fishera-czyli.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;W równaniu wymiany dobro jest wymieniane na pieniądz. W przypadku wyceny towaru jest tak samo, tylko dotyczy to jednego towaru. Czyli M oznacza tu masę pieniądza przeznaczoną na kupienie tylko jednego dobra.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Teraz przyjmę założenie, że M będzie stałe. Ponieważ rozpatrujemy tylko część całkowitej podaży pieniądza w gospodarce, to założenie może nie być prawdziwe nawet w krótkim okresie. Na przykład, jeśli zainteresowanie danym towarem wzrasta, podaż pieniądza wzrośnie. Jednak w tym modelu zakładamy, że rynek tworzą dwie grupy spekulantów: pierwsza nieuczciwa oraz druga uczciwa. W pierwszej trejderzy zmawiają się ze sobą, aby kupować i sprzedawać sobie nawzajem, po to aby wywindować cenę. Druga grupa przygotowuje w tym czasie zlecenia kupna/sprzedaży. Podaż pieniądza pozostanie stała, ponieważ trejderzy z pierwszej grupy będą kupować i sprzedawać od siebie coraz mniejszą ilość towaru, ale za to coraz większą ilość grupie drugiej. Całkowita ilość pieniądza pozostanie stała: grupa druga odda swoje pieniądze pierwszej grupie.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Doszedłem do wniosku, że skoro M jest stałe i mamy tylko jeden towar, to znaczy, że M = P0*Q0. W okresie 0 za M jest kupowany towar w ilości Q0 po cenie P0. Stąd równanie wymiany przyjmuje postać:&lt;/p&gt;&lt;p&gt;P0*Q0*V = P*Q&lt;/p&gt;&lt;p&gt;Powiedzmy teraz, że przychodzi informacja, że Q wkrótce spadnie (np. z powodu złych warunków pogodowych). Powoduje to wzrost ceny z P0 do P. Ponieważ jednak M jest stałe, to Q musi spaść. Czyli Q spada z Q0 do Q. Wynika z tego, że M = P0*Q0 = P*Q. Ale to znaczy, że V = 1:&lt;/p&gt;&lt;p&gt;M = P0*Q0 = P*Q&lt;/p&gt;&lt;p&gt;P0*Q0*V = P*Q&lt;/p&gt;&lt;p&gt;V = 1.&lt;/p&gt;&lt;p&gt;Ma to sens, ponieważ V - jako szybkość obiegu pieniądza - stanowi jednocześnie liczbę transakcji sprzedaży danego towaru w krótkim czasie. Oczywiście transakcji będzie więcej niż jedna, ale Q będzie podzielone na wiele transakcji, a dodatkowo P stanowi średnią z tych transakcji. Inwestorzy mając M pieniędzy, kupują więc Q towarów po średniej cenie P. Na samym początku wszystko odbywa się uczciwie: spekulanci z grupy 1 wykupują z rynku cały towar (podbijając cenę), a sprzedający wycofują się z handlu.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;W ten sposób dostajemy to samo co równanie (1) na początku:&lt;/p&gt;&lt;p&gt;&lt;b&gt;P = P0*Q0 / Q&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Jeżeli towar jest dobrze wyceniony, to działa ta formuła. Zmienia się P, bo zmienia się Q.&lt;/p&gt;&lt;p&gt;Powiedzmy jednak, że w krótkim okresie spekulanci z grupy 1 po pierwszym wykupie, zmawiają się ze sobą, sprzedając i odkupując sobie nawzajem towar po coraz wyższej cenie pod pretekstem spadkowej podaży. Oznacza to, że V &amp;gt; 1 i wtedy wzór przyjmuje postać:&lt;/p&gt;&lt;p&gt;&lt;b&gt;P = P0*Q0*V / Q&lt;/b&gt;&lt;/p&gt;&lt;p&gt;lub inaczej:&lt;/p&gt;&lt;p&gt;(3)&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3LJJuKeR877i9QdNBW2m-DrB2xblgwSNXsY1K5Kul0PUxylRzjuLdXJSuGkMZY6wxrWwj7MUQbGZk3q6DUVGSMqs75VTBqm8lKn-cLnEl9K3kDSDC2S6FCtENuiRT1iZ2LFbSDvPQydJjI6PRiJluHbibAXuRXQpK0sBQ1OHglQiKcrZ1HSFc1GmX/s112/msedge_YdrAUmDYzd.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;85&quot; data-original-width=&quot;112&quot; height=&quot;85&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3LJJuKeR877i9QdNBW2m-DrB2xblgwSNXsY1K5Kul0PUxylRzjuLdXJSuGkMZY6wxrWwj7MUQbGZk3q6DUVGSMqs75VTBqm8lKn-cLnEl9K3kDSDC2S6FCtENuiRT1iZ2LFbSDvPQydJjI6PRiJluHbibAXuRXQpK0sBQ1OHglQiKcrZ1HSFc1GmX/s1600/msedge_YdrAUmDYzd.png&quot; width=&quot;112&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;W pewnym momencie wchodzi druga grupa spekulantów, która chce od tamtych wykupić. Pierwsza grupa może stopniowo opuszczać rynek z zyskiem, a druga już walczy sama ze sobą, wprowadzając losowość do rynku.&lt;/p&gt;&lt;p&gt;W drugą stronę, jeśli spekulanci z grupy 1 zdecydują się na kupowanie i sprzedawanie od siebie za pomocą krótkiej sprzedaży czy kontraktów terminowych na sprzedaż, wtedy cena nabiera rozpędu w kierunku południowym. Pretekstem może być tym razem wzrost podaży. Trejderzy z grupy 1 na początku mają duże pozycje sprzedażowe, ale zmniejszają się one z czasem (są zamykane), a grupa 2&amp;nbsp;przejmuje je.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ponieważ spekulacja niejako ma na celu wyjść poza wartość fundamentalną, to znaczy, że teraz zmienia się tylko P, a Q pozostaje stałe. Jeżeli po zmianie fundamentalnej Q = Q1, to mamy:&lt;/p&gt;&lt;p&gt;&amp;nbsp;V = P*Q1 / M = P*Q1 / (P0*Q0).&lt;/p&gt;&lt;p&gt;Wiemy też z wcześniejszej analizy, że M jest stałe, więc po zmianie fundamentalnej z P0 na P1 i z Q0 na Q1, musi zajść równość M = P0*Q0 = P1*Q1. I wtedy:&lt;/p&gt;&lt;p&gt;&amp;nbsp;P*Q1 / (P0*Q0) =&amp;nbsp; P*Q1 / (P1*Q1) = P / P1.&lt;/p&gt;&lt;p&gt;Jeżeli P = P1, to V = 1. Wtedy towar jest dobrze wyceniony.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jeżeli P &amp;gt; P1, to V &amp;gt; 1. Wtedy mamy do czynienia z przewartościowaniem towaru.&lt;/p&gt;&lt;p&gt;Jeżeli P &amp;lt; P1, to V &amp;lt; 1. Wtedy mamy do czynienia z niedowartościowaniem towaru.&lt;/p&gt;&lt;p&gt;Czyli V może służyć do oceny przewartościowania / niedowartościowania.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Może się początkowo mylić P, P1 i P0, więc uporządkujmy te wielkości:&lt;/p&gt;&lt;p&gt;- P0 to cena początkowa towaru, którą sami ustalamy na podstawie historii. Zawsze ma przypisaną podaż Q0.&amp;nbsp; Moment 0 jest dowolny z przeszłości.&lt;/p&gt;&lt;p&gt;- P1 to wartość fundamentalna towaru, który wyceniamy po zmianie podaży, a właściwie po informacji, że zmieni się niedługo podaż z Q0 na Q1.&lt;/p&gt;&lt;p&gt;- P to cena towaru w ogólnym sensie, tzn. wzór (3). Jeżeli V równa się 1, to dostajemy wartość fundamentalną, w przeciwnym wypadku wartość spekulacyjną.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;Przykład. Wycena kawy arabica&lt;/u&gt;&lt;/p&gt;&lt;p&gt;Poprzednio wyceniłem arabikę średnio na 320-333 albo w zakresie 307-348. Jednakże obecna cena to już ponad 400. Podstawmy te same dane (P0 = 250, Q1 / Q0 = 0.75):&lt;/p&gt;&lt;p&gt;P1 =&amp;nbsp;250 / 0,75 = 333&lt;/p&gt;&lt;p&gt;Przy obecnej cenie 400:&lt;/p&gt;&lt;p&gt;400 = V*250 / 0,75 =&amp;gt; V = 1,2.&lt;/p&gt;&lt;p&gt;Zgodnie z modelem obecna cena arabiki jest przewartościowana o 20%.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;P. S. W sumie taka analiza pozwala odróżnić inwestycję od spekulacji. Trzeba tu jednak zaznaczyć, że nie znaczy to, że inwestycja jest pozbawiona ryzyka. Po pierwsze nie wiadomo po jakim czasie towar wróci do równowagi. Po drugie mogą pojawić się w tym czasie informacje zaburzające poprzednią wycenę.&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/2957417526124453738/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/moja-teoria-wartosci-towarow.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2957417526124453738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2957417526124453738'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/moja-teoria-wartosci-towarow.html' title='Moja teoria wartości towarów'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUj2MEqaoIVP0i0L_EFkMtOZw0vEYa32ScIpZoyb7CAeC4fEMiQKMX8HS8_rDEvXRG686DAZ_4gdWroqbbxDpXh-5ihbk9vM1r2GHRuQyRBtOeSpLFW8ghUDBGLb-IqW7aB72h-FKZxSm1F8xyIw2vho9g-AT9_lHTmNqiEvvTt3CYWMYrN47MXa8R/s72-c/msedge_1EYHnun2hS.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7810725559944163230</id><published>2025-02-04T18:35:00.020+01:00</published><updated>2025-02-05T09:37:54.408+01:00</updated><title type='text'>Prosta wycena towarów</title><content type='html'>&lt;p&gt;W &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2025/01/kawa-psychologiczna-czy-ekonomiczna.html&quot; target=&quot;_blank&quot;&gt;niedawnym wpisie&lt;/a&gt; zaproponowałem wzór na procentową zmianę ceny kawy, gdy zmienia się jej podaż:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Zmiana ceny = [1 / (1 + zmiana podaży) - 1] * 100%&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Oczywiście można to uogólnić na każdy towar. Mamy więc formułę:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFv89kEWWhgxcLsYQ7vhKJP66TtkDBDWCB7_sLZ7k0lXqo41YinZEBIlXaQ6exje7cYX27utwJW7pQmltqxZZnwHizi6AeX9ccPCKqeFPVbwkoruxQoSdU60GtQ5d-ervn-ApSqouRwdrg1ZHYrp4xAOH-an4hPIlXvO-1WDDK1Ktl0O13uEFCJ-E/s174/msedge_7JxuuAKC2Y.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;89&quot; data-original-width=&quot;174&quot; height=&quot;89&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFv89kEWWhgxcLsYQ7vhKJP66TtkDBDWCB7_sLZ7k0lXqo41YinZEBIlXaQ6exje7cYX27utwJW7pQmltqxZZnwHizi6AeX9ccPCKqeFPVbwkoruxQoSdU60GtQ5d-ervn-ApSqouRwdrg1ZHYrp4xAOH-an4hPIlXvO-1WDDK1Ktl0O13uEFCJ-E/s1600/msedge_7JxuuAKC2Y.png&quot; width=&quot;174&quot; /&gt;&lt;/a&gt;&lt;/div&gt;gdzie P - cena, Q - podaż.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Chociaż ułożyłem to na szybko, &quot;pi razy oko&quot;, bo ładnie pasowało, to sprawdzę co wyjdzie, jeśli z tego wzoru wyprowadzę cenę.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przekształcamy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT-BPZESmr-ODL3oEo3XhEUQR1rkUcJ88O3oHb4KZBZaIuVrJv3ZPgVv70ncf4t-DS_NeTVLqJ32UFCJBcyErz0NkDpdoUz0UpxeD1DoyjfZ2hTwu-QGqsgfRqYqBpIk_O5_6lUf9GR6I1h-dhOjlmRc5PmSBidXjpODqeAac5UV0MjiZbgnYHGLup/s650/msedge_FLZ6CCGnor.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;97&quot; data-original-width=&quot;650&quot; height=&quot;60&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT-BPZESmr-ODL3oEo3XhEUQR1rkUcJ88O3oHb4KZBZaIuVrJv3ZPgVv70ncf4t-DS_NeTVLqJ32UFCJBcyErz0NkDpdoUz0UpxeD1DoyjfZ2hTwu-QGqsgfRqYqBpIk_O5_6lUf9GR6I1h-dhOjlmRc5PmSBidXjpODqeAac5UV0MjiZbgnYHGLup/w400-h60/msedge_FLZ6CCGnor.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Teraz całkujemy obie strony, ponieważ chcemy dostać sumę tych zmian:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbT6P9bnpyHW36OZ0scKWC9ZD3HvqVc5P2T8Bi-in-hZfOdWmrXwk_DhNGebNmJaCA9GcffQDsS9YXzey-rmXEWT8Yp9NmlsQ9HXdLJ1thJJ3AAYPspzRC9PxTIomS4MamNiNeDzXj-6Pqdfy4L7UKWtBP1gxjAVxhUf-UZzuoCc6VkKDdwiQiqLMw/s233/msedge_8j4HmBfrcW.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;75&quot; data-original-width=&quot;233&quot; height=&quot;75&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbT6P9bnpyHW36OZ0scKWC9ZD3HvqVc5P2T8Bi-in-hZfOdWmrXwk_DhNGebNmJaCA9GcffQDsS9YXzey-rmXEWT8Yp9NmlsQ9HXdLJ1thJJ3AAYPspzRC9PxTIomS4MamNiNeDzXj-6Pqdfy4L7UKWtBP1gxjAVxhUf-UZzuoCc6VkKDdwiQiqLMw/s1600/msedge_8j4HmBfrcW.png&quot; width=&quot;233&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Lewa strona będzie równa lnP + stała,&amp;nbsp;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmRlGVAg2LMgQGKu95qpUbkQNKDKrStO2H20OtcTTKROCutSyd8Z_S3N-cwyz-Vc4VdKw9W-P301I4fvqJYF4A-udWc6bHkmfB6WrsqTG6ps1HZXHqt4goNmwSI6k8sUcXVQvyQh75PgjicIOTCNOCYfmEU6zLW-sC5sFgLDbZRKz_pgW-wDyg0rC/s166/msedge_q0lpvLjhsO.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;66&quot; data-original-width=&quot;166&quot; height=&quot;66&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmRlGVAg2LMgQGKu95qpUbkQNKDKrStO2H20OtcTTKROCutSyd8Z_S3N-cwyz-Vc4VdKw9W-P301I4fvqJYF4A-udWc6bHkmfB6WrsqTG6ps1HZXHqt4goNmwSI6k8sUcXVQvyQh75PgjicIOTCNOCYfmEU6zLW-sC5sFgLDbZRKz_pgW-wDyg0rC/s1600/msedge_q0lpvLjhsO.png&quot; width=&quot;166&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;a prawa:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrMhd36OyLrNS3JwTrPpYSn53gkFt5_xdjvMmyrL2tvT_pK89dmO-9U-3iJ3-A_2KUptnPizPJH-ERS92g00fYA_RxgR__waTsVNiCJylF2wXQGlFhdwC2AzK7nLtztAANASERgmctDChOnuVJSnEn7QwXLHPGKkGjYVKrMNWeFlGb01Gk98PxKKi3/s243/msedge_e3BK4VIvG9.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;69&quot; data-original-width=&quot;243&quot; height=&quot;69&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrMhd36OyLrNS3JwTrPpYSn53gkFt5_xdjvMmyrL2tvT_pK89dmO-9U-3iJ3-A_2KUptnPizPJH-ERS92g00fYA_RxgR__waTsVNiCJylF2wXQGlFhdwC2AzK7nLtztAANASERgmctDChOnuVJSnEn7QwXLHPGKkGjYVKrMNWeFlGb01Gk98PxKKi3/s1600/msedge_e3BK4VIvG9.png&quot; width=&quot;243&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;gdzie u = Q + dQ, a wtedy zmiana du = dQ.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wracamy do Q + dQ zamiast u, więc mamy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9FhTHtFBaFQ60tI99zQzqOHcqHBIx_1Hm4Frf2s1CxBt1vq_9WO93yYGKKVt9DLyatKg0RszHJ9zcw26Dt-rQRgPKF1Oc7T3fWX2e21m_npepuCgXvEgdmMn00vxaYeD_ngnIZDniPkG7FPcfl0Rc1E8NUw7pg-MZG0IfBW0H-XOnnObHHmKq04J/s298/msedge_ay3gkQFbag.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;43&quot; data-original-width=&quot;298&quot; height=&quot;43&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9FhTHtFBaFQ60tI99zQzqOHcqHBIx_1Hm4Frf2s1CxBt1vq_9WO93yYGKKVt9DLyatKg0RszHJ9zcw26Dt-rQRgPKF1Oc7T3fWX2e21m_npepuCgXvEgdmMn00vxaYeD_ngnIZDniPkG7FPcfl0Rc1E8NUw7pg-MZG0IfBW0H-XOnnObHHmKq04J/s1600/msedge_ay3gkQFbag.png&quot; width=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W sumie:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzzC5GMiq84D6Mu4wmlKR8JS4OFcWYDir93XY0ijEeZlbz1PUP8-BidwQ_JmQzEhCjGFast1wSz2KRzjF0ixyr2VpegozV5UKkR2wbsMrajm22WV0_IwhTFp_UKOi8m9VwSmkZtZSBO67_wEQwPuJ93BpyWeK7NtryEOZXPI8FrUyzJpv0edQvi6fJ/s244/msedge_yF1KL9ukrF.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;36&quot; data-original-width=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzzC5GMiq84D6Mu4wmlKR8JS4OFcWYDir93XY0ijEeZlbz1PUP8-BidwQ_JmQzEhCjGFast1wSz2KRzjF0ixyr2VpegozV5UKkR2wbsMrajm22WV0_IwhTFp_UKOi8m9VwSmkZtZSBO67_wEQwPuJ93BpyWeK7NtryEOZXPI8FrUyzJpv0edQvi6fJ/s16000/msedge_yF1KL9ukrF.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;gdzie C = C1 + C2.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Obustronnie stosujemy funkcję wykładniczą, exp(), pozbywając się logarytmów i dostajemy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDh90m1B7SswJi9ynleFYyPprwam78za05nepYJd3atcOoGQFWzsFUqhYkye97Dl2eFFsXh6Cf1NCWGnuqI7RKN9WIOnY2hcsk4y8b8ep3AlcVD-XlmAUYrF8D6qWbChGe9NcaQpQiXNB1ytx_ki-GyCBMPeirKEmHLAzpMwBAVocp5fxI6OEXNz8z/s207/msedge_pYFNbPkTAV.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;110&quot; data-original-width=&quot;207&quot; height=&quot;110&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDh90m1B7SswJi9ynleFYyPprwam78za05nepYJd3atcOoGQFWzsFUqhYkye97Dl2eFFsXh6Cf1NCWGnuqI7RKN9WIOnY2hcsk4y8b8ep3AlcVD-XlmAUYrF8D6qWbChGe9NcaQpQiXNB1ytx_ki-GyCBMPeirKEmHLAzpMwBAVocp5fxI6OEXNz8z/s1600/msedge_pYFNbPkTAV.png&quot; width=&quot;207&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Oznaczając A = e^C:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia8tgrOLukJISpKT2WkEsoEBq0UBA9Sh3ZgatozSq2vjul0VTLXJxmKOMLi9N9g50wPFqmNzt10F_yukjMVhDc0ETBoYNUmkThEVbpit7znvRqO92ePvsA1UqByX2NK-Jk8C0-vsnhOaysTzjfeqCOVl2XjO0OfOpUEIL6AdVRz3Tg8HChsw4S83nP/s133/msedge_1ppnCbvjRI.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;62&quot; data-original-width=&quot;133&quot; height=&quot;62&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia8tgrOLukJISpKT2WkEsoEBq0UBA9Sh3ZgatozSq2vjul0VTLXJxmKOMLi9N9g50wPFqmNzt10F_yukjMVhDc0ETBoYNUmkThEVbpit7znvRqO92ePvsA1UqByX2NK-Jk8C0-vsnhOaysTzjfeqCOVl2XjO0OfOpUEIL6AdVRz3Tg8HChsw4S83nP/s1600/msedge_1ppnCbvjRI.png&quot; width=&quot;133&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Przy całkowaniu dostaliśmy sumę wszystkich zmian cen procentowych, aby dostać pewnego rodzaju krzywą podaży, ale krzywa ta nie jest zawieszona w próżni - cena logarytmiczna jest na osi pionowej i ma pewną wartość początkową C1, a logarytmiczna podaż jest na osi poziomej i jej wartość początkowa jest stałą C2, dlatego dodajemy te stałe przy całkowaniu. Samo C sumą obydwu stałych, czyli połączeniem logarytmów ceny i podaży.&amp;nbsp;Funkcja wykładnicza z C daje e^C, którą oznaczyliśmy jako&amp;nbsp; A. Załóżmy, że mamy jakąś cenę początkową P0, której odpowiada podaż Q0. W krótkim okresie czasu podaż się nie zmienia, a my chcemy wyznaczyć cenę na dany moment. Wynika z tego, że dQ = 0.&amp;nbsp;&lt;/div&gt;&lt;div&gt;W takim momencie&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiR9qPR5mVPBoK1LNK2hI8QO3U-iejvfOJO7TpEJruL7Jkc1IUPozXEqMjIbOE7P55JkIC1epseW5dOiWnOL4yLz6i4t7_4_myUkpzs5Whx1cFU7Ns_hRGSUBk0NTuAJjNSTYBI1gpzUecCvYIXvsCm-KsuotSl4ETAf_oCFSzhOSQ-Dp4ys701-s/s98/msedge_D1UIDGR2m7.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;67&quot; data-original-width=&quot;98&quot; height=&quot;67&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiiR9qPR5mVPBoK1LNK2hI8QO3U-iejvfOJO7TpEJruL7Jkc1IUPozXEqMjIbOE7P55JkIC1epseW5dOiWnOL4yLz6i4t7_4_myUkpzs5Whx1cFU7Ns_hRGSUBk0NTuAJjNSTYBI1gpzUecCvYIXvsCm-KsuotSl4ETAf_oCFSzhOSQ-Dp4ys701-s/s1600/msedge_D1UIDGR2m7.png&quot; width=&quot;98&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Czyli&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGrT1QOS5vIzGDpgn1mdUZ5UHBJPRzsfcOTO3OJ-I-bLgTbZhKTCSg-CEOoZgWQ_p0cnVARRqh9e8SZP4E6umqlECsYIfm6lMNEHrZ1W2knxMx2BGu8PT00WMvaS35fW7Vu07SIwrDZ2j-xA45-wDi-Gs0Jwk1NsAoCJCTmLAUFYP52TVT_oIUSSN-/s116/msedge_VzkqniPVdq.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;43&quot; data-original-width=&quot;116&quot; height=&quot;43&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGrT1QOS5vIzGDpgn1mdUZ5UHBJPRzsfcOTO3OJ-I-bLgTbZhKTCSg-CEOoZgWQ_p0cnVARRqh9e8SZP4E6umqlECsYIfm6lMNEHrZ1W2knxMx2BGu8PT00WMvaS35fW7Vu07SIwrDZ2j-xA45-wDi-Gs0Jwk1NsAoCJCTmLAUFYP52TVT_oIUSSN-/s1600/msedge_VzkqniPVdq.png&quot; width=&quot;116&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ogólny wzór na cenę byłby wtedy następujący:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIk4g_PkQlQ5JLhBfEenYaU41wOBy7fNe8iFaUotwI42OeOn12icTWypEREL_KPda57DiKfBifO_VCfdBMJK7DvvnNfhrMaydo44Y2Lda5dWGlGGChNmjJf8_7TesYyGHFx-DkUgWlZ1xceAOUR5GxlZ8ouejl4SMHStNA3GN_rkuzE4qpwcEjwnj8/s128/msedge_PJhl8X3LOL.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;68&quot; data-original-width=&quot;128&quot; height=&quot;68&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIk4g_PkQlQ5JLhBfEenYaU41wOBy7fNe8iFaUotwI42OeOn12icTWypEREL_KPda57DiKfBifO_VCfdBMJK7DvvnNfhrMaydo44Y2Lda5dWGlGGChNmjJf8_7TesYyGHFx-DkUgWlZ1xceAOUR5GxlZ8ouejl4SMHStNA3GN_rkuzE4qpwcEjwnj8/s1600/msedge_PJhl8X3LOL.png&quot; width=&quot;128&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;lub inaczej:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1hWgMDh3D_ykvMH7p97oJPqd6L-BNoK71DgMbN6yCGnKEa5934aSlw_6OQzKD-An0DN-0vQZDF_tUJP0kITYFapwjdqJXPg1cGbzh0BRSJM1adYo5n-A8cZz8AHfji6esOLc_iBrHHWcu3PckhjLOGMHolVUqp7ljxVLnlEQ7bZPIe4QkFwfJpIIM/s130/msedge_7fizTL8PZG.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;92&quot; data-original-width=&quot;130&quot; height=&quot;92&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1hWgMDh3D_ykvMH7p97oJPqd6L-BNoK71DgMbN6yCGnKEa5934aSlw_6OQzKD-An0DN-0vQZDF_tUJP0kITYFapwjdqJXPg1cGbzh0BRSJM1adYo5n-A8cZz8AHfji6esOLc_iBrHHWcu3PckhjLOGMHolVUqp7ljxVLnlEQ7bZPIe4QkFwfJpIIM/s1600/msedge_7fizTL8PZG.png&quot; width=&quot;130&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Ten drugi wzór pozwala posługiwać się jedynie zmianami podaży w stosunku do wybranego punktu początkowego 0.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Uzyskany wzór możemy użyć w dwóch wersjach.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Wersja 1)&lt;/div&gt;&lt;div&gt;Pierwsza zakłada, że ponieważ cena P dotyczy zawsze momentu, a nie okresu, to dQ = 0, co dałoby:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZqnaq7qngwmmcPBTnMLajhgKAleS3nVMqkBNiFFE_NJInDpyl__ODLKw2-kCm-xBf7Ru8liBKV-sZSDaaFYW-8Yx4_7FAKB279EuTxAISaTh0zdgYsmjggyK0i-M2Nn9hZdCmOHOFkfFpSSZlqUlkQOmtdoo2GMGMi2eCQ6StROXHsIaanFHn4NE/s87/msedge_1EYHnun2hS.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;87&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZqnaq7qngwmmcPBTnMLajhgKAleS3nVMqkBNiFFE_NJInDpyl__ODLKw2-kCm-xBf7Ru8liBKV-sZSDaaFYW-8Yx4_7FAKB279EuTxAISaTh0zdgYsmjggyK0i-M2Nn9hZdCmOHOFkfFpSSZlqUlkQOmtdoo2GMGMi2eCQ6StROXHsIaanFHn4NE/s1600/msedge_1EYHnun2hS.png&quot; width=&quot;87&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Wersja 2)&lt;/div&gt;&lt;div&gt;Druga przyjmuje faktyczną podaż na chwilę obecną (Q), ale antycypuje już zmianę w niedalekiej przyszłości:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVtrtRw6sYItGTw0qkrEzuBOsP9CoCxsj9R_bAvfAZoklHtoyL7gan8C39jasIXTt1Ts-7DrGyyjRWbe_ImwM8qZc4bnOR7nyDdZzz3y4vnVPjDuZeYaLUmnn0c3mLOuzr-et2s86Ozr2NqYT_hd3YwEKM3vHwT1rRmW9cBag4Cdv40LBfmldh5RI5/s114/msedge_86GJ7lNPDf.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;114&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVtrtRw6sYItGTw0qkrEzuBOsP9CoCxsj9R_bAvfAZoklHtoyL7gan8C39jasIXTt1Ts-7DrGyyjRWbe_ImwM8qZc4bnOR7nyDdZzz3y4vnVPjDuZeYaLUmnn0c3mLOuzr-et2s86Ozr2NqYT_hd3YwEKM3vHwT1rRmW9cBag4Cdv40LBfmldh5RI5/s1600/msedge_86GJ7lNPDf.png&quot; width=&quot;114&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Obie wersje tak naprawdę powinny dawać te same wyniki. Różnica jest tylko taka, że w pierwszej wersji za Q przyjmujemy podaż, która jest oczekiwana przez rynek / inwestora. Z kolei druga wersja przyjmuje faktyczną podaż (Q) na dziś, która jednak już się zmienia lub za chwilę się zmieni. W tej wersji mamy dwie zmiany: z Q0 na Q oraz dQ. Często możemy przyjąć, że Q = Q0, jeżeli Q0 dotyczy niedalekiej przeszłości.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ważną sprawą jest zrozumienie, że ta analiza zakłada, że w każdym punkcie popyt = podaż, dlatego zmiany w podaży są jednocześnie zmianami popytu. Jednocześnie krzywa popytu się nie zmienia - po prostu przesuwamy się po jej punktach, gdy podaż się ciągle zmienia. Stąd funkcja P = Q0*P0 / Q może być interpretowana jako funkcja zagregowanego popytu i będzie ją reprezentować krzywa:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6We-bKSjSKNb7BvoJwyRE2AejL6Q3kF9wNv6Ifju9GOfD3GpD8Z-GehsrUipNp3CPAJ2aTS89hdsuMMsFGkLxMlVSmIF80Y6Td6h4a_7-LUXAV7znm9ISB0YthdNc9DOJEnSUOsSUQGnJCYwmfc_mKhE_16Ak3wJ3ETupwKcrwgVF4b_pFT-QE0IT/s244/chrome_NkgtHuZhjM.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;172&quot; data-original-width=&quot;244&quot; height=&quot;172&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6We-bKSjSKNb7BvoJwyRE2AejL6Q3kF9wNv6Ifju9GOfD3GpD8Z-GehsrUipNp3CPAJ2aTS89hdsuMMsFGkLxMlVSmIF80Y6Td6h4a_7-LUXAV7znm9ISB0YthdNc9DOJEnSUOsSUQGnJCYwmfc_mKhE_16Ak3wJ3ETupwKcrwgVF4b_pFT-QE0IT/s1600/chrome_NkgtHuZhjM.png&quot; width=&quot;244&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Trzeba pamiętać, że ten model pokazuje jedynie sytuację, gdy zmienia się podaż, popyt się do niej dostosowuje, ale już nie wpływają na niego inne czynniki.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Przykład. Wycena kawy arabica.&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podaż kawy w 2025 ma spaść w stosunku do 2024 o 25%. Dotyczy to sezonu 2026/25. Jednak podaż za sezon 2025/24 praktycznie się nie zmienia w stosunku do poprzedniego. Powiedzmy, że nasza cena startowa P0 to średnia w roku 2024 - wyniosła ona ok. 230 (z tygodniowych danych). Tak jak pisałem, obecna podaż nie zmieniła się, tzn. Q = Q0. Jednak w kolejnym roku nastąpi spadek o 25%. mamy więc:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;P = P0 / (Q0 / Q0 + zmiana Q) = 230 / (1 - 0,25) = 307.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W Brazylii inflacja jest, jak w Polsce, dość wysoka i wynosi 4,5-5%. Dodajmy więc 5% inflacji:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;307*1,05 = &lt;b&gt;322&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sama tygodniowa stopa zwrotu ma odchylenie st. 4,4%, więc taką wartość można by umieścić w zakresie &lt;b&gt;307 - 336&lt;/b&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Powiedzmy jednak, że punktem odniesienia jest 250, ponieważ od tego punktu dyskontowano informacje o spadku podaży. Mielibyśmy wtedy&amp;nbsp;250 / (1 - 0,25) = &lt;b&gt;333.&lt;/b&gt; Ponieważ to był listopad 2024 nie będziemy już dodawać inflacji, ale dodamy odchylenie 4,4%. Dostaniemy przedział &lt;b&gt;319 - 348&lt;/b&gt;. Obecna cena kawy wynosi ponad 380 $, więc z punktu widzenia tego modelu jest mocno przewartościowana.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Oczywiście nie jest powiedziane, że model jest prawidłowy. O tym się przekonamy, jeśli cena spadnie w te rejony.&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7810725559944163230/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/prosta-wycena-towarow.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7810725559944163230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7810725559944163230'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/prosta-wycena-towarow.html' title='Prosta wycena towarów'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFFv89kEWWhgxcLsYQ7vhKJP66TtkDBDWCB7_sLZ7k0lXqo41YinZEBIlXaQ6exje7cYX27utwJW7pQmltqxZZnwHizi6AeX9ccPCKqeFPVbwkoruxQoSdU60GtQ5d-ervn-ApSqouRwdrg1ZHYrp4xAOH-an4hPIlXvO-1WDDK1Ktl0O13uEFCJ-E/s72-c/msedge_7JxuuAKC2Y.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-2176863091859059158</id><published>2025-02-03T12:48:00.006+01:00</published><updated>2025-02-03T14:53:32.244+01:00</updated><title type='text'>Cła Trumpa nie będą miały większego wpływu na UE, w tym Polskę</title><content type='html'>&lt;p&gt;Media i tzw. eksperci straszą negatywnymi skutkami ceł nakładanych na UE przez USA. I tak niedawno w money.pl dowiadujemy się, że cła wpłyną na Polskę przez to, że... &lt;a href=&quot;https://www.money.pl/gospodarka/trump-straszy-ue-clami-eksperci-wskazuja-konsekwencje-dla-polski-7117018734779168a.html&quot; target=&quot;_blank&quot;&gt;Niemcy dostaną po kieszeni, bo one eksportują dużo do USA&lt;/a&gt;. Teraz oczywiście Onet za D. Hubner &lt;a href=&quot;https://www.onet.pl/informacje/onetwiadomosci/donald-trump-wprowadzi-cla-na-towary-z-ue-skutki-beda-odczuwalne-takze-dla-polski/hhz9ygq,79cfc278&quot; target=&quot;_blank&quot;&gt;wrzuca tego typu nagłówki&lt;/a&gt;&amp;nbsp;o &quot;potencjalnych&quot; skutkach dla Polski&amp;nbsp;(jeszcze chcą żebym płacił za to). Ja dziękuję, jeśli tacy &quot;eksperci&quot; mają wpływ na politykę gospodarczą, to nie można się dziwić stagnacji w Europie.&lt;/p&gt;&lt;p&gt;Trump za pierwszej kadencji także nakładał cła, w tym na UE. Rzetelność nakazałaby przyjrzeć się więc najpierw temu, jaki mogły mieć wtedy wpływ. To wcale nie jest takie proste, bo gospodarka to złożony system, w którym jedno ma wpływ na drugie. Gunnella i Quaglietti [1] w pracy z 2019 r. oszacowali, że wpływ ceł na samochody w 2018 r. na realny PKB był następujący:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdAL3LZr36byHthP4dmxsRScC7GkU9CZzS9mIUeR0fxCcrN0sCm9VCOkuRqKQewZ1BDYBwg_9_gDmaxZ67RmU8dXaz5Va33IH_UNK3xEKcpdYhn3IFxjIiH9DsNDlguVdUeRVzlberi67TD3mz5aMiaECwurQCkyq2sVoyCx2CvXm9zJPcugML0TTc/s875/msedge_IAmnFSfbDd.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;517&quot; data-original-width=&quot;875&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdAL3LZr36byHthP4dmxsRScC7GkU9CZzS9mIUeR0fxCcrN0sCm9VCOkuRqKQewZ1BDYBwg_9_gDmaxZ67RmU8dXaz5Va33IH_UNK3xEKcpdYhn3IFxjIiH9DsNDlguVdUeRVzlberi67TD3mz5aMiaECwurQCkyq2sVoyCx2CvXm9zJPcugML0TTc/w400-h236/msedge_IAmnFSfbDd.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Żółte słupki oznaczają realny dochód. GVCs jest skrótem od&amp;nbsp;&lt;i&gt;global value chains&lt;/i&gt;, tj. globalne łańcuchy wartości. Niebieskie słupki zawierają wpływ tych łańcuchów na dobrobyt. Cła, jak zaznaczyłem, są nałożone na samochody, czyli produkty końcowe. Powodują one wzrost cen aut, który przełoży się na spadek ich sprzedaży, a w konsekwencji na niższe dochody w gospodarce. Oczywiście spadek dochodów wpłynie na spadek w pozostałych sektorach. Do tego momentu wystarczą żółte słupki. Jednak proces produkowania samochodu składa się z wielu pośrednich etapów, których wynikiem są dobra pośrednie. Wiele z tych dóbr jest także eksportowanych z jednego kraju do drugiego, gdzie następują dalsze etapy produkcji. Dodatkowo zakładamy, że kraje, które muszą płacić cła, odpowiadają symetrycznie, czyli nakładają cła na USA. Jeżeli firma jedynie produkuje jakieś części samochodowe, które eksportuje do USA, to być może nie są one objęte cłami, ale pośrednio firma zostanie poszkodowana, jeśli samochody wyprodukowane w USA będą następnie eksportowane do innych krajów, jak Chiny, czy z powrotem do UE, które ukarały USA symetrycznymi cłami. Należy więc uwzględnić te efekty pośrednie globalnych łańcuchów wartości.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jak widać oszacowany wpływ na UE wynosił poniżej 0,05% na minus realnego dochodu. Kalkulacja obejmowała jedynie przemysł samochodowy, dlatego np. Chiny wychodzą praktycznie na zero. Z kolei USA traci 0,15%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jeśli chodzi o bieżącą kadencję Trumpa, wg [2], pracy z 2024 r. utrata PKB wyniesie w przypadku:&lt;/p&gt;&lt;p&gt;-&amp;nbsp; USA 0,64%&lt;/p&gt;&lt;p&gt;- Chin 0,68%&lt;/p&gt;&lt;p&gt;- Unii Europejskiej 0,11% (w Niemczech 0,23%, we Francji 0,15%, we Włoszech ok. 0%, w Polsce zakładam, że podobnie 0%).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Poniższy obrazek zawiera te dane z podziałem na sytuację, gdy kraj/obszar przyjmuje cła USA bez odwetu oraz z odwetem (gdy odpowiada symetrycznie własnymi cłami):&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZAXkt5IsbTX1hiRD6obHkSGj85KEOAHr_Nh1YNMZ5U29zs06srluiE70ssgNe15QIzGfNYacYP4Mienrx0gv4Tn1eGMXJVBnbqvBxKQc_Hs2FRw7euOn8G3bEsrEXTJnHWwOtim2h9gF8WkXtFG2bhuYT1XCBSbSOYrK4oHxpW9sgiBQPKmyW8Oj/s1035/msedge_g08uSVqzJU.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;636&quot; data-original-width=&quot;1035&quot; height=&quot;246&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFZAXkt5IsbTX1hiRD6obHkSGj85KEOAHr_Nh1YNMZ5U29zs06srluiE70ssgNe15QIzGfNYacYP4Mienrx0gv4Tn1eGMXJVBnbqvBxKQc_Hs2FRw7euOn8G3bEsrEXTJnHWwOtim2h9gF8WkXtFG2bhuYT1XCBSbSOYrK4oHxpW9sgiBQPKmyW8Oj/w400-h246/msedge_g08uSVqzJU.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Tak mały spadek w Europie wynika z tego, że po pierwsze wiele krajów prawie w ogóle nie eksportuje do USA (np. Polska) i główny ciężar ponoszą Niemcy, Francja i Wielka Brytania, po drugie producenci przerzucą cła na konsumentów, a po trzecie import częściowo będzie przekierowany do krajów bez ceł lub o niższych ich stawkach.&lt;/p&gt;&lt;p&gt;Wzrost gosp. w UE wynosi 1,4-1,5% rocznie w ostatnich 15 latach (zob. dane Banku Światowego), więc te -0,1% nie ma żadnego znaczenia i w ogóle tego nie zauważymy.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Literatura:&lt;/p&gt;&lt;p&gt;[1] &lt;a href=&quot;https://www.ecb.europa.eu/press/economic-bulletin/articles/2019/html/ecb.ebart201903_01%7Ee589a502e5.en.html&quot; target=&quot;_blank&quot;&gt;Gunnella V and Quaglietti L (2019) The economic implications of rising protectionism: a euro area and global perspective. European Central Bank. Economic Bulletin Articles, 3&lt;/a&gt;;&lt;/p&gt;&lt;p&gt;[2] Saussay A (2024)&amp;nbsp;&lt;i&gt;The economic impacts of Trump’s tariff proposals on Europe&lt;/i&gt;. London: Grantham Research Institute on Climate Change and the Environment, London School of Economics and Political Science.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/2176863091859059158/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/ca-trumpa-nie-beda-miay-wiekszego-wpywu.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2176863091859059158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/2176863091859059158'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/02/ca-trumpa-nie-beda-miay-wiekszego-wpywu.html' title='Cła Trumpa nie będą miały większego wpływu na UE, w tym Polskę'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdAL3LZr36byHthP4dmxsRScC7GkU9CZzS9mIUeR0fxCcrN0sCm9VCOkuRqKQewZ1BDYBwg_9_gDmaxZ67RmU8dXaz5Va33IH_UNK3xEKcpdYhn3IFxjIiH9DsNDlguVdUeRVzlberi67TD3mz5aMiaECwurQCkyq2sVoyCx2CvXm9zJPcugML0TTc/s72-w400-h236-c/msedge_IAmnFSfbDd.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-495759728906994007</id><published>2025-01-31T11:23:00.016+01:00</published><updated>2025-02-01T14:45:46.459+01:00</updated><title type='text'>Kawa psychologiczna czy ekonomiczna?</title><content type='html'>&lt;p&gt;&amp;nbsp; Na własne oczy możemy się przekonać, jak psychologia rządzi krótkoterminowo giełdą. Ceny kawy osiągają nowe szczyty, już ponad 376 $ za kontrakt:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja8ZwunHE_n97Q5botVsCB0k9_NwWt33uGqC6lw1Jz8QR-0zLrA7unaXVpf4xA_ailDaDR2gmKO76_WSMEVF01cKU89OsU1NCyE_82b7Sal3ej4-fslgpWVmtUsNOr9wEZUS0eyI2IyUdJAJkRsWnbO_M9LjdxCsY03X_LHtaMT1mMCRkW8smz6vxq/s1237/chrome_nzLBi4nFub.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;672&quot; data-original-width=&quot;1237&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja8ZwunHE_n97Q5botVsCB0k9_NwWt33uGqC6lw1Jz8QR-0zLrA7unaXVpf4xA_ailDaDR2gmKO76_WSMEVF01cKU89OsU1NCyE_82b7Sal3ej4-fslgpWVmtUsNOr9wEZUS0eyI2IyUdJAJkRsWnbO_M9LjdxCsY03X_LHtaMT1mMCRkW8smz6vxq/w400-h217/chrome_nzLBi4nFub.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Wybicie z trójkąta sugeruje dalszy trend. Dobrze jednak, żeby były pod to jakieś fundamenty. W listopadzie była to susza w różnych rejonach świata. A co jest teraz?&amp;nbsp;&lt;a href=&quot;https://www.bnnbloomberg.ca/investing/commodities/2025/01/27/coffee-prices-swing-after-hitting-record-on-trump-tariff-threat/&quot; target=&quot;_blank&quot;&gt;Czytam, że jest to skutek zagrożenia przez Trumpa nałożenia ceł na Kolumbię, ale też inne kraje&lt;/a&gt;.&amp;nbsp;Problem polega na tym, że jest logiczne i &lt;b&gt;oczywiste, że Trump nie nałoży ceł na kawę, bo jest to produkt deficytowy.&lt;/b&gt;&amp;nbsp;USA, tak jak Europa, musi ją ściągać z Ameryki Południowej i tak samo jak Europa musi mierzyć się z dużymi podwyżkami cen w ostatnim roku. Poza tym Trump chce nakładać cła na te produkty / surowce, które USA może samo produkować, ponieważ chce w ten sposób wzmocnić krajowy biznes. Polityka ta nie przyniesie pożądanych rezultatów, a głównie wzrost inflacji, ale to inny temat.&lt;/p&gt;&lt;p&gt;Dziś nie wiedzą, jaki pretekst znaleźć dla kolejnych wzrostów, więc...&amp;nbsp;&lt;a href=&quot;https://uk.finance.yahoo.com/news/coffee-prices-hit-record-high-083000203.html&quot; target=&quot;_blank&quot;&gt;powtarzają tę samą bzdurę&lt;/a&gt;. A może to rodzaj samospełniającej się przepowiedni: trzeba odpowiednio komunikat wzmocnić, żeby traderzy uwierzyli, że to prawda?&lt;/p&gt;&lt;p&gt;Jeszcze znajdują inny powód:&amp;nbsp;&lt;a href=&quot;https://www.barchart.com/story/news/30649000/arabica-coffee-posts-another-record-high-on-global-supply-concerns&quot; target=&quot;_blank&quot;&gt;prognozy słabych zbiorów&lt;/a&gt;. Ale to też nie może być przesłanką do wzrostu, bo to było już wiadomo w grudniu (przetłumaczone z Google Translator):&lt;/p&gt;&lt;p&gt;&lt;i&gt;17 grudnia Volcafe obniżyło swoje szacunki dotyczące produkcji kawy arabica w Brazylii w 2025/26 r. do 34,4 mln worków, co stanowi spadek o około 11 mln worków w stosunku do szacunków z września po tym, jak objazd upraw ujawnił dotkliwość przedłużającej się suszy w Brazylii.&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Spadek o 24% (11 / (34,4+11) = 0,24).&amp;nbsp;&lt;/p&gt;&lt;p&gt;Można by pomyśleć, że od tego czasu kawa powinna wzrosnąć o ok. 25%, ale faktycznie będzie to więcej. Zauważmy, że gdyby podaż spadła o 100%, to cena nie mogłaby wzrosnąć o 100%, jeśli na dobro byłby taki sam popyt. Musiałaby wzrosnąć do nieskończoności - teoretycznie.&lt;/p&gt;&lt;p&gt;Pierwszy pomysł, który przychodzi do głowy to wzór, pi razy oko:&lt;/p&gt;&lt;p&gt;wzrost ceny = 1 / (100% - x%) - 1,&lt;/p&gt;&lt;p&gt;gdzie x% to zmiana podaży.&lt;/p&gt;&lt;p&gt;Jeśli x% = 100%, wtedy faktycznie cena skoczy w nieskończoność. Jeśli x% = 0%, to cena nie zmieni się. Jeśli x = 25%, to spadek wyniesie 1 / 0,75 - 1 = 33%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Powstaje pytanie od którego momentu należy podnieść cenę o 33%? Gdy Volcafe obniżyło prognozy, cena już nie reagowała, oscylowała w granicach 320-340, &lt;b&gt;średnio 330&lt;/b&gt;. Tak było jeszcze w styczniu. Oznacza to, że +33% było w cenie, a więc musimy zdyskontować 330:&lt;/p&gt;&lt;p&gt;330 / 1.33 = 248.&lt;/p&gt;&lt;p&gt;No i niespodzianka. Te 248 to był początek listopada. Co to znaczy? Że cały wzrost na sezon 2025 / 26 był dyskontowany już od listopada 2024.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Skąd wiem, że nie chodziło ciągle o sezon 2024-25? Bo w&amp;nbsp;&lt;a href=&quot;https://www.stonex.com/en/market-intelligence/coffee/202411211244/usda-reduces-brazilian-coffee-production-estimate-for-202425/&quot; target=&quot;_blank&quot;&gt;listopadzie nastąpiło obniżenie prognozy o 1,3%&lt;/a&gt;, z 45,3 na 44,7 mln worków. Nawet gdyby potem zaktualizowano to jeszcze do -2 czy -3%, to niczego to nie zmienia. Inaczej mówiąc dyskonto dotyczyło już następnego sezonu, jak zauważyłem wcześniej.&lt;/p&gt;&lt;p&gt;A może jednak to jest racjonalne i np. wpływ ma kurs walutowy USD / BRL? Popatrzmy najpierw na obrazek kawy z szerszej perspektywy:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO-K9w_LlHqKmgc8bnVxMfg5bXGY7gSyYKibjyjwrTKw1yETSjBb47WBfelXWJhzZtHBWMYk7BWdEX9YT5m3oFQHazjQV7M29uWav5TR0-kg-OkLFUQYwL6EI78qw3dWU6c0RR0Ni2AH0kCe-UGchTqeM6sHTx1VqXxLQFYUDVyci7k11aejBXuIwh/s1232/chrome_CKsJVNQSEc.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;582&quot; data-original-width=&quot;1232&quot; height=&quot;189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO-K9w_LlHqKmgc8bnVxMfg5bXGY7gSyYKibjyjwrTKw1yETSjBb47WBfelXWJhzZtHBWMYk7BWdEX9YT5m3oFQHazjQV7M29uWav5TR0-kg-OkLFUQYwL6EI78qw3dWU6c0RR0Ni2AH0kCe-UGchTqeM6sHTx1VqXxLQFYUDVyci7k11aejBXuIwh/w400-h189/chrome_CKsJVNQSEc.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cena 190-200 była osiągnięta już w 2014, a jej powrót nastąpił dopiero przez inflację lockdownową z czasów pandemii. Kiedy spojrzymy na tabelę stosunku podaży do popytu na kawę z&amp;nbsp;&lt;a href=&quot;https://ico.org/specialized-reports/&quot; target=&quot;_blank&quot;&gt;raportów ICO&lt;/a&gt;:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUtBSDCeI3gbEy_R67MVh-16trpxVHpn8Ty3YeVzttvnBTRbFsnU3uyVeYhB__PoNgBYuecsEcm_ZKGvLbXYHntiPuqCUOdd9dbQQ_rsgVadS6Y9d_5QqD4qS1WZeGgqIuRYkvB_0x7IIN8n0C93DZjUimfEXUvqjTZvLVh9IhyMY9ggDBYPcfAOAc/s1135/chrome_ew1l6wRFpP.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;654&quot; data-original-width=&quot;1135&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUtBSDCeI3gbEy_R67MVh-16trpxVHpn8Ty3YeVzttvnBTRbFsnU3uyVeYhB__PoNgBYuecsEcm_ZKGvLbXYHntiPuqCUOdd9dbQQ_rsgVadS6Y9d_5QqD4qS1WZeGgqIuRYkvB_0x7IIN8n0C93DZjUimfEXUvqjTZvLVh9IhyMY9ggDBYPcfAOAc/w400-h230/chrome_ew1l6wRFpP.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;zauważymy, że w 2018-2020 podaż arabiki była mniej więcej wyrównana z popytem. Można stwierdzić, że 190-200 to była cena &quot;normalna&quot;, która zależy od koniunktury gosp., inflacji i kursu walutowego. Na przykład kurs walutowy od 2015 wzrósł:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRjUbvkqwQQ_QS2Dn1QVGsCv3bOaswc0bJoR11BAh-hQKcY28X_Rs5A0WNGUqWWUx48MHmjqFXfYRK8wSBW24jF1JncNGr8P4WYM44bQPKeeJbazxwsGN-P3yJIF8r7slXln6kouyE0lN6km1safyYDH9XPYzJ9y_TbtoZEhcH0su84TSJef9GofJd/s1233/chrome_4x7ZqR36tJ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;584&quot; data-original-width=&quot;1233&quot; height=&quot;190&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRjUbvkqwQQ_QS2Dn1QVGsCv3bOaswc0bJoR11BAh-hQKcY28X_Rs5A0WNGUqWWUx48MHmjqFXfYRK8wSBW24jF1JncNGr8P4WYM44bQPKeeJbazxwsGN-P3yJIF8r7slXln6kouyE0lN6km1safyYDH9XPYzJ9y_TbtoZEhcH0su84TSJef9GofJd/w400-h190/chrome_4x7ZqR36tJ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;co spowodowało spadek ceny właśnie między rokiem 2015 a 2020.&lt;/p&gt;&lt;p&gt;Korelacja między miesięcznymi zmianami KC.F a USDBRL wynosi ok. -0.34. Silniejszy dolar, tj. jego wyższa cena, powoduje, że farmerzy po zamianie na swojego reala brazylijskiego, dostają więcej pieniędzy ze sprzedaży. To zachęca ich do większej podaży, a większa podaż obniża cenę kawy (bo popyt się nie zmienia zakładając amerykańskiego importera). Tak będzie się działo, gdy kawa będzie kupowana w dolarach. Gdyby importer musiał kupować kawę w realach, za jednego dolara mógłby kupić więcej reali, czyli też więcej kawy. Wzrósłby popyt, a podaż by się nie zmieniła (ponieważ dla farmerów sytuacja byłaby taka sama), czyli cena kawy by wzrosła. I wtedy korelacja byłaby dodatnia. Dopóki sprzedawana jest w dolarach, korelacja będzie ujemna.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Widzimy, że w ostatnim roku dolar się wzmocnił do reala, co miało negatywny wpływ na cenę. A więc mamy dowód, że cena nie mogła wzrosnąć (tym bardziej tak mocno) na skutek zmiany kursu walutowego.&lt;/p&gt;&lt;p&gt;W końcu, TradingEconomics prognozuje cenę kontraktu na koniec marca na poziomie 330:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqpMbNIlK_BVkOXY9K5tHnxGF0VL5rwxzsTjmCAE6s1RDl4uRAgA5a4qmFsVE9z72HLZ4u4co3MH82WAy_soOSaBKrishZF-MgrZ08N2ryjgZcuO6_JI0vUtNgMENPIg_-4Royy6GOtM_0jMd9FonxlzHwiL-mMyOBrhiHk2AYr6BCte-mvGdICtAb/s1073/chrome_FIVBPXdk8r.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;535&quot; data-original-width=&quot;1073&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqpMbNIlK_BVkOXY9K5tHnxGF0VL5rwxzsTjmCAE6s1RDl4uRAgA5a4qmFsVE9z72HLZ4u4co3MH82WAy_soOSaBKrishZF-MgrZ08N2ryjgZcuO6_JI0vUtNgMENPIg_-4Royy6GOtM_0jMd9FonxlzHwiL-mMyOBrhiHk2AYr6BCte-mvGdICtAb/w400-h200/chrome_FIVBPXdk8r.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;co odpowiada tej z końca listopada i grudnia. Wynika z tego, że szacują oni &quot;wartość fundamentalną&quot; kawy, bo te 330 wychodziło wyżej z analizy. I dopiero na koniec 2025 ok. 356. Ale te dalsze prognozy mogą się jeszcze znacznie zmienić.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/495759728906994007/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/kawa-psychologiczna-czy-ekonomiczna.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/495759728906994007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/495759728906994007'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/kawa-psychologiczna-czy-ekonomiczna.html' title='Kawa psychologiczna czy ekonomiczna?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja8ZwunHE_n97Q5botVsCB0k9_NwWt33uGqC6lw1Jz8QR-0zLrA7unaXVpf4xA_ailDaDR2gmKO76_WSMEVF01cKU89OsU1NCyE_82b7Sal3ej4-fslgpWVmtUsNOr9wEZUS0eyI2IyUdJAJkRsWnbO_M9LjdxCsY03X_LHtaMT1mMCRkW8smz6vxq/s72-w400-h217-c/chrome_nzLBi4nFub.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7637093399778299902</id><published>2025-01-22T14:59:00.017+01:00</published><updated>2025-01-23T14:38:50.822+01:00</updated><title type='text'>Potrzebne odbicie na Orlenie</title><content type='html'>&lt;p&gt;&amp;nbsp;Pomimo bessy jedna rzecz mnie zastanawiała od dawna. Orlen już pół roku temu był wyceniany nisko, bo nieco poniżej C/WK 0,5. Gdyby miał spaść o kolejne 40%, a wartość księgowa nie spadłaby, to wskaźnik musiałby spaść do 0,3 - poziomu bankrutów. Żeby nie było - wycena 60 zł była racjonalna, nawet poniżej. Swego czasu szacowałem ją w granicach&amp;nbsp; 57-67 (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/07/poprawka-do-wyceny-orlenu-spadnie.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). W kolejnych miesiącach pojawiły się kolejne negatywne informacje, które musiały wywołać niepewność co do utrzymania polityki dywidendowej.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ta niepewność została jednak przerwana parę dni temu, gdy spółka ogłosiła nową strategię, w tym politykę dywidendy. W 2025 r. wypłata dla akcjonariuszy ma wynieść 4,5 zł na akcję, czyli więcej niż wynikająca z wcześniejszych deklaracji 4,3 zł - jako minimum. W kolejnych latach ma rosnąć o 15 gr do 2035 r. Maksymalna dywidenda ma wynieść 25% przepływów z działalności operacyjnej w danym roku pomniejszonych o koszty finansowania (&lt;a href=&quot;https://www.orlen.pl/pl/relacje-inwestorskie/raporty-i-publikacje/raporty-biezace/2025/01/Raport-biezacy-nr-1-2025&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Jedynie co brakuje do poprawy wyceny to stopa dyskontowa. Poprzednio oszacowałem ją na poziomie 11,44%, ale moje podejście było wtedy raczej eksperymentem myślowym. Tym razem posłużę się &lt;a href=&quot;https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datacurrent.html&quot; target=&quot;_blank&quot;&gt;wynikami Damodarana&lt;/a&gt;. Pokażę jak można szybko uzyskać z jego strony oczekiwaną stopę zwrotu dla danego sektora. Zwracam tylko uwagę, że jest to sposób uproszczony - i to na dwóch płaszczyznach. Po pierwsze uwzględnia jedynie ryzyko rynkowe bez dodatkowych czynników jak niepewność co do stałości ryzyka czy zmienność stóp procentowych. Po drugie dotyczy całej branży, a więc przypomina wycenę porównawczą. Na poziomie indywidualnym spółki się różnią poziomem zadłużenia, który wpływa na stopę dyskontową.&lt;/p&gt;&lt;p&gt;1. Po wejściu na &lt;a href=&quot;https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datacurrent.html&quot; target=&quot;_blank&quot;&gt;stronę&lt;/a&gt;, szukamy&amp;nbsp;Discount Rate Estimation -&amp;gt;&amp;nbsp;Costs of Capital by Industry Sector -&amp;gt;&amp;nbsp;Europe (plik waccEurope.xls). Koszt kapitału składa się z części kosztu kapitału własnego (cost of equity) i części kosztu długu (cost of debt).&lt;/p&gt;&lt;p&gt;2. Szukamy pola &quot;Long Term Treasury bond rate&quot; - w żółtym polu obok wpisujemy bieżącą rentowność 10-letnich&amp;nbsp; obligacji skarbowych; w tym przypadku 6,55%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;3. W polu niżej są dwie wielkości do wpisania: &quot;Risk Premium to Use for Equity&quot; oraz &quot;Global Default Spread to add to cost of debt&quot;. Wpisane wartości dotyczą Europy i możemy je tak pozostawić, ale dla większej precyzji znajdziemy odpowiedniki dla Polski. Wchodzimy więc na&amp;nbsp;&lt;a href=&quot;https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/ctryprem.html&quot; target=&quot;_blank&quot;&gt;tę stronę Damodarana&lt;/a&gt;&amp;nbsp;z premiami za ryzyko dla każdego kraju.&lt;/p&gt;&lt;p&gt;4. &amp;nbsp;Szukamy naszego kraju, czyli Poland i dwie pierwsze kolumny obok to potrzebne wartości, tylko w odwrotnej kolejności (5,46% i 0,84%). Obecnie, gdy porównamy je z tymi dla Europy w pliku, zauważymy, że są niemal identyczne. Dlatego tak jak mówiłem, to jedynie zwiększa precyzję, ale w tym wypadku nie ma większego znaczenia. Możemy je wpisać w odpowiednie pola w pliku.&lt;/p&gt;&lt;p&gt;5. Pola są gotowe (inflację zostawiamy, nie jest to nam potrzebne). Teraz szukamy właściwego sektora. Jeśli wiemy, jakiego sektora dotyczy nasza spółka albo chcemy mieć koszt kapitału własnego dla całego sektora, to sprawa się kończy - bierzemy liczbę z kolumny Cost of Equity. Jeżeli nie wiemy lub nie mamy pewności, przechodzimy do następnego punktu.&lt;/p&gt;&lt;p&gt;6. Idziemy w pliku na samą górę i szukamy pola &quot;Companies in each industry&quot;. Klikamy w link obok. Powinno się pojawić okno z pytaniem o pobranie pliku, więc pobieramy go i otwieramy.&lt;/p&gt;&lt;p&gt;7. Plik jest spory, bo jest to lista spółek z całego świata; nie rozumiem dlaczego autor stworzył 4 arkusze, gdzie są te same firmy, bo wystarczył jeden arkusz z odpowiednimi opcjami sortowania. Nieważne. Szukamy spółki - w tym przypadku Orlen. W kolumnie C jest &quot;Oilfield Svcs/Equip.&quot; to jest to czego szukaliśmy. Możemy zamknąć plik.&lt;/p&gt;&lt;p&gt;8. Wracamy do poprzedniego pliku i szukamy sektora Oilfield Svcs/Equip, któremu przyporządkowany jest Cost of Equity = 13,31%.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;W porównaniu z podobnymi sektorami, jak Oil/Gas, otrzymana wartość jest dziwnie wysoka. Przyjrzyjmy się krótko czym jest Oilfield Svcs/Equip. Damodoran stosuje &lt;a href=&quot;https://www.msci.com/our-solutions/indexes/gics&quot; target=&quot;_blank&quot;&gt;podział na sektory wg GICS&lt;/a&gt;&amp;nbsp;i zgodnie z tą metodologią chodzi o&amp;nbsp;&amp;nbsp;Oil &amp;amp; Gas Equipment &amp;amp; Services. Oto jego definicja (Guiding Principles and Methodology for GICS, str. 20, przetłumaczone z deepL):&lt;/p&gt;&lt;p&gt;&lt;i&gt;Producenci sprzętu, w tym urządzeń wiertniczych i wyposażenia, a także dostawcy materiałów eksploatacyjnych, takich jak krzemionka szczelinująca, oraz usług dla firm zajmujących się wierceniem, oceną i wykańczaniem odwiertów naftowych i gazowych. Podbranża ta obejmuje spółki, które świadczą usługi w zakresie informacji i danych, takie jak gromadzenie danych sejsmicznych, głównie dla przemysłu naftowo-gazowego oraz dystrybutorów sprzętu naftowo-gazowego. Podbranża ta nie obejmuje firm świadczących usługi związane z wyciekami ropy naftowej, sklasyfikowanych w podbranży usług związanych z ochroną środowiska i obiektów.&lt;/i&gt;&lt;/p&gt;&lt;div&gt;To zupełnie nie pasuje do działalności Orlenu - poniżej skopiowane wprost ze sprawozdania:&lt;/div&gt;&lt;div&gt;&lt;i&gt;Podstawowym przedmiotem działalności Grupy ORLEN jest przerób ropy naftowej oraz produkcja paliw, wyrobów petrochemicznych i chemicznych, jak również sprzedaż hurtowa i detaliczna produktów oraz wytwarzanie, dystrybucja i obrót energią elektryczną i cieplną, w tym z odnawialnych źródeł. Grupa ORLEN prowadzi także poszukiwania, rozpoznawanie i wydobycie węglowodorów. Ponadto działalność Grupy ORLEN obejmuje również poszukiwanie i wydobycie gazu ziemnego, import gazu ziemnego, a także, magazynowanie, sprzedaż i dystrybucję paliw gazowych i płynnych. Przedmiotem działalności spółek Grupy ORLEN jest również działalność usługowa dotycząca głównie: magazynowania ropy naftowej i paliw, usług transportowych, usług konserwacyjno-remontowych, laboratoryjnych, ochrony, projektowych administracyjnych, kurierskich, oraz ubezpieczeniowych i finansowych.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Znacznie bardziej pasuje tu Integrated Oil &amp;amp; Gas:&lt;/p&gt;&lt;p&gt;&lt;i&gt;Zintegrowane spółki naftowe zajmujące się poszukiwaniem i produkcją ropy naftowej i gazu, a także co najmniej jedną inną znaczącą działalnością w zakresie rafinacji, marketingu i transportu, lub chemikaliów.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;W dodatku Orlen się zdywersyfikował i zajmuje się też produkcją i sprzedażą energii elektrycznej i cieplnej. W GICS jest taka działalność, która nazywa się&amp;nbsp;Multi-Utilities:&lt;/p&gt;&lt;p&gt;&lt;i&gt;Spółki użyteczności publicznej o znacznie zdywersyfikowanej&amp;nbsp; działalności oprócz podstawowej działalności w zakresie&amp;nbsp; gazowych i/lub wodociągowych.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Wygląda na to, że Damodaran kompletnie pomylił grupy. Porównując pozostałe sektory w jego pliku doszedłem do wniosku, że spółce najlepiej odpowiada&amp;nbsp; Oil/Gas (Integrated) oraz&amp;nbsp;Utility (General). Dlatego wyciągnę średnią z obydwu, otrzymując cost of equity &lt;b&gt;11,2%&lt;/b&gt; (10,83 + 11,64 = 11,24).&lt;/p&gt;&lt;div&gt;Dopiero, kiedy dostałem ten wynik, uświadomiłem sobie, że to nie do końca jest to, co chciałem dostać. Oczywiście 11,2% jest niemal identyczne co poprzednie 11,4%, ale obie wielkości reprezentują co innego. Moje 11,4% było minimalną stopą dyskontową, po to, aby móc wpisać minimalne dywidendy. A uzyskane teraz 11,2% to zwykła stopa dyskontowa, czyli uwzględniająca potencjalnie &quot;nadwyżkowy&quot; wzrost zysku. Z czego wynika ta dysproporcja? No właśnie kłania się tu to uproszczenie, o którym pisałem. Obliczony koszt kapitału własnego przez Damodarana może być poprawny dla modelu rezydualnego, a nie uwzględniającego zmienność stóp procentowych. Szacunki Damodarana są parametrami na chwilę obecną i nie uwzględniają tego, że same mogą się za chwilę zmienić.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Problem rozwiążę w ten sposób, że przyjmę model pseudo-rezydualny dla wszystkich okresów: w każdym okresie stopa wolna od ryzyka będzie stała i równa obecnej.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Możemy podstawiać do modelu. Link do obliczeń &lt;a href=&quot;https://docs.google.com/spreadsheets/d/1Yxw1FWwmlwb25KvrYgP6eqU4OxbGsZIx/edit?usp=sharing&amp;amp;ouid=101616793251620038886&amp;amp;rtpof=true&amp;amp;sd=true&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;. Wartość wewnętrzna dla krótkoterminowego inwestora wyniesie 56,2:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDvoc79MBvI4_N4ZrEcZNsiQWC7JavNsZvi39dPZayF5v7nI3e-XbDvzepF2SeTr7B9GrzfMU4IUJ16Jhk3aTuelGdyKTrVKXsKm67Li4tO4HR2bYXHDPh989vNIp4mJ5lHnrbvPk_v46hLfoRJ_1B6Wgrz0sdMWv8z0Rf-je0GH1168Af2S3TDL0/s1031/EXCEL_lMZldlZe9V.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;401&quot; data-original-width=&quot;1031&quot; height=&quot;155&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDvoc79MBvI4_N4ZrEcZNsiQWC7JavNsZvi39dPZayF5v7nI3e-XbDvzepF2SeTr7B9GrzfMU4IUJ16Jhk3aTuelGdyKTrVKXsKm67Li4tO4HR2bYXHDPh989vNIp4mJ5lHnrbvPk_v46hLfoRJ_1B6Wgrz0sdMWv8z0Rf-je0GH1168Af2S3TDL0/w400-h155/EXCEL_lMZldlZe9V.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dla średnioterminowego 57,75:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOVqSCedk-GqQgEak3nkG0jRhYymFciDxEvm_nZlUi0lR87O-aq4LL07seJMM55BvDxpN7Yg7U2qIlkferiMJ_LgLSsO4Oyf3z7XX6xQsZIjmmGUq12y0UEjqZ8ubmOM1Ge9icO0HOyGbU_Kr694YQTDcAvfR3zar76QsR0Yygir1GiI2dOnJqrr0c/s1024/EXCEL_QMy4KUe6AW.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;407&quot; data-original-width=&quot;1024&quot; height=&quot;159&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOVqSCedk-GqQgEak3nkG0jRhYymFciDxEvm_nZlUi0lR87O-aq4LL07seJMM55BvDxpN7Yg7U2qIlkferiMJ_LgLSsO4Oyf3z7XX6xQsZIjmmGUq12y0UEjqZ8ubmOM1Ge9icO0HOyGbU_Kr694YQTDcAvfR3zar76QsR0Yygir1GiI2dOnJqrr0c/w400-h159/EXCEL_QMy4KUe6AW.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dla długoterminowego 59,3:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPo_AVvu-O0atwGkF4VCeMhibFUEhZ7cNW86EGluiS7s2qYxe3mywL0nXlVR6rF0C_Ak2tweX6GEAypJsWfxtIRGWMMMRQaLBIujtrstN__mXKwZThYE8SqyxDqx0gFr6AMsJG8zzaFv6NOU26Z5ekLGnvedDcUzCUBXocHl29sZgwpsAK_mFYpaWq/s1028/EXCEL_qqYFutZqiB.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;402&quot; data-original-width=&quot;1028&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPo_AVvu-O0atwGkF4VCeMhibFUEhZ7cNW86EGluiS7s2qYxe3mywL0nXlVR6rF0C_Ak2tweX6GEAypJsWfxtIRGWMMMRQaLBIujtrstN__mXKwZThYE8SqyxDqx0gFr6AMsJG8zzaFv6NOU26Z5ekLGnvedDcUzCUBXocHl29sZgwpsAK_mFYpaWq/w400-h156/EXCEL_qqYFutZqiB.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Obecna cena na poziomie ok. 53 zł jest trochę za niska i spodziewam się wzrostu do 56-59 zł. To ma sens, bo musi mieć z czego spadać, jeśli mamy mieć rynek niedźwiedzia.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7637093399778299902/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/potrzebne-odbicie-na-orlenie.html#comment-form' title='Komentarze (6)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7637093399778299902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7637093399778299902'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/potrzebne-odbicie-na-orlenie.html' title='Potrzebne odbicie na Orlenie'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDvoc79MBvI4_N4ZrEcZNsiQWC7JavNsZvi39dPZayF5v7nI3e-XbDvzepF2SeTr7B9GrzfMU4IUJ16Jhk3aTuelGdyKTrVKXsKm67Li4tO4HR2bYXHDPh989vNIp4mJ5lHnrbvPk_v46hLfoRJ_1B6Wgrz0sdMWv8z0Rf-je0GH1168Af2S3TDL0/s72-w400-h155-c/EXCEL_lMZldlZe9V.png" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-7773068770455351138</id><published>2025-01-10T20:18:00.015+01:00</published><updated>2025-01-11T23:09:16.302+01:00</updated><title type='text'>Jak polityka wpływa na obligacje skarbowe?</title><content type='html'>&lt;p&gt;Czy&amp;nbsp;skarbówki będą jeszcze spadać? To pytanie, które ostatnio przychodzi mi do głowy, bo zastanawiam się czy nie kupić ETF na TBSP. TBSP.Index (Treasury BondSpot Poland Index) jest to indeks obligacji skarbowych o stałym oprocentowaniu oraz zerokuponowych o terminie zapadalności co najmniej 6 miesięcy (&lt;a href=&quot;https://www.gpwbenchmark.pl/dokumentacja-indeksow-gieldowych&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). W obliczu bessy, w jakiej znalazł się WIG, może zastanawiać fakt, że od pół roku zachowują się jeszcze gorzej:&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pUY9oR2-7EQMN4OOgDj4lBegdAEJtC9DP9P2SS81Q7mPIDAMshvrIGwsLB82O9L-BncCVwh18RkfkpHhzUvDwf8V8k90UX2NhPXjhAH8Mhineor2ATYFkjayO-KYfPFJclv2BeOwIPF1j4Wex6sFb9w6nR_C2V4Nkyr1BCO4MD_vUZhOVOeeSyK9/s875/chrome_fI8Iotoqvd.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;561&quot; data-original-width=&quot;875&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pUY9oR2-7EQMN4OOgDj4lBegdAEJtC9DP9P2SS81Q7mPIDAMshvrIGwsLB82O9L-BncCVwh18RkfkpHhzUvDwf8V8k90UX2NhPXjhAH8Mhineor2ATYFkjayO-KYfPFJclv2BeOwIPF1j4Wex6sFb9w6nR_C2V4Nkyr1BCO4MD_vUZhOVOeeSyK9/w400-h256/chrome_fI8Iotoqvd.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Jest to o tyle zaskakujące, że WIBOR6M w tym czasie spadł:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlfLH2jaDuZIusdEC0kKeQ0RIe1WEXxcPkklESTR7mdzEpUldJOKbe-Ny9dGWoZwPZc1PpvO0HfiTCCbZY7t4LbqTxrR8PdhX9Pb1d7p8KK1rDj6VLSSPTBCFMUpgGl-17leDZGVIS_eR_gx_qJM_dZGS2GgClmVodwY0Tpl4IJ0LHGyiK66zsPifb/s881/chrome_PP7h9ClrcW.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;559&quot; data-original-width=&quot;881&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlfLH2jaDuZIusdEC0kKeQ0RIe1WEXxcPkklESTR7mdzEpUldJOKbe-Ny9dGWoZwPZc1PpvO0HfiTCCbZY7t4LbqTxrR8PdhX9Pb1d7p8KK1rDj6VLSSPTBCFMUpgGl-17leDZGVIS_eR_gx_qJM_dZGS2GgClmVodwY0Tpl4IJ0LHGyiK66zsPifb/w400-h254/chrome_PP7h9ClrcW.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;W dłuższej perspektywie widać, że korelują przeciwnie:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNBywI2nyf8v3-YH8D7-E9gJ2Wyypqv8T9THHpwstZ5A0Ir5nKxe_YD92SmI_VdlYWNV3UFx6FJMnYe2rj6o844r6MQD92gle1f7FnbbwIBbxQyZnWDaN3-FXmwCgYtN15WomnmTKILHQ4Pi-k6zmRARh5CqooaeNW5uqfhElcqdt5zbrTFpVLURQm/s879/chrome_fT6pDiw2QD.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;560&quot; data-original-width=&quot;879&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNBywI2nyf8v3-YH8D7-E9gJ2Wyypqv8T9THHpwstZ5A0Ir5nKxe_YD92SmI_VdlYWNV3UFx6FJMnYe2rj6o844r6MQD92gle1f7FnbbwIBbxQyZnWDaN3-FXmwCgYtN15WomnmTKILHQ4Pi-k6zmRARh5CqooaeNW5uqfhElcqdt5zbrTFpVLURQm/w400-h255/chrome_fT6pDiw2QD.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Co więc się stało?&lt;/p&gt;&lt;p&gt;Są możliwe dwa powody: niestabilność polityczna oraz duży deficyt. Pierwszy z nich nie musi automatycznie oznaczać wzrostu obiektywnego ryzyka niewypłacalności, ale mogą działać czynniki pośrednie. Większe napięcia wewnętrzne w kraju odstraszają inwestorów w nowe przedsięwzięcia, co zagraża PKB. Natomiast dług publiczny jest spłacany z podatków powstałych dzięki PKB. W ten sposób wzrasta awersja do ryzyka. Giełda zawsze mocniej angażuje psychologię niż gospodarka i dlatego jej zmienność jest większa niż zmiany gospodarcze. Oczywiście trzeba pamiętać, że działa tu wiele różnych czynników jednocześnie. Ucieczka zagranicznego kapitału obniża cenę danej waluty, ale gdy kurs walutowy np. USD/PLN wzrośnie, to innych może to zachęcić do kupowania obligacji.&lt;/p&gt;&lt;p&gt;Eichler, S. i Plaga [1] zbadali wpływ poziomu stabilności politycznej na portfele inwestorów USA trzymających obligacje skarbowe w innych krajach - w latach 2003-2013. Próba objęła 60 krajów z całego świata, w tym Polskę (a także wiele innych krajów z Europy). Poziom stabilności politycznej oceniono przez pryzmat takich czynników jak:&amp;nbsp;&lt;/p&gt;&lt;p&gt;- liczba podmiotów blokujących zmiany (im większa, tym mniejsza stabilność),&amp;nbsp;&lt;/p&gt;&lt;p&gt;- kontrola rządu nad izbami parlamentu (pełna zwiększa stabilność, niepełna zmniejsza),&amp;nbsp;&lt;/p&gt;&lt;p&gt;- polaryzacja między partią rządową a pozostałymi.&amp;nbsp;&lt;/p&gt;&lt;p&gt;W uproszczeniu można założyć, że w Polsce obecnie jedynie pierwszy oraz ostatni czynnik ma znaczenie. Ich poziom rzeczywiście jest podwyższony, dlatego możemy mówić o niestabilności politycznej. Nie wiem czy można mówić o kryzysie politycznym, ale jest blisko.&lt;/p&gt;&lt;p&gt;Z badania wynika, że każdy z tych czynników wpływa na popyt na obligacje skarbowe - głównie w krajach silnie demokratycznych. Pierwszy i ostatni czynnik wpływają negatywnie na poziom utrzymywania skarbówek w portfelach, a drugi pozytywnie.&lt;/p&gt;&lt;p&gt;Do podobnych wniosków doszli Gaasbeck i Marchelle [2], którzy zbadali rentowności obligacji rządowych dla 15 krajów rozwijających się w latach 2007-2017. Większa stabilność polityczna obniżała dochodowość tych obligacji. Czyli większa niestabilność zwiększała ją, a zatem obniżała ceny tych walorów.&lt;/p&gt;&lt;p&gt;Ale z [1] płynie jeszcze jedna ciekawa obserwacja. Okazuje się, że w roku wyborczym i przedwyborczym inwestorzy zmniejszają zaangażowanie w skarbówki. Teoria politycznego cyklu koniunkturalnego sugeruje, że przeprowadzenie wyborów skłania rząd do przesadnych wydatków publicznych, aby uzyskać reelekcję, co może zaszkodzić powyborczej stabilności fiskalnej. Teorię tę potwierdza fakt, że wzrost ryzyka kredytowego danego kraju wpływa istotnie na spadek portfela skarbówek tylko w modelu z rokiem wyborczym; w modelach bez tego czynnika wpływ pozostaje ujemny, ale nieistotny.&lt;/p&gt;&lt;p&gt;Chociaż przed nami wybory prezydenckie, to wiemy, że obecna ekipa doprowadziła do największego deficytu w historii, a dług do PKB testować ma dopuszczalną granicę blisko 60% (&lt;a href=&quot;https://biznes.interia.pl/gospodarka/news-budzet-na-2025-rok-zapadla-decyzja-sejmu,nId,7888532&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Inwestorzy odczuwają więc niepewność co do przyszłych zmian i wstrzymują się przed kupnem obligacji.&lt;/p&gt;&lt;p&gt;Poniższa tabela przedstawia szczegółowo wpływ wymienionych czynników na wielkość portfela obligacji skarbowych, z podziałem na kraje wysoko demokratyczne i nisko demokratyczne:&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEEAWoLpufXyIocRdzjGp5gS_DThm7idRqWsHj-VcPg3FJwmBzjRJeq-pIWwa81peTCtGnViEsyJHoaKAtT_7E1e2_4-M1jPFkSA8lJdCKRb_areL3z6yQBERnGmFihu3TfNKPexxMnnjz6r8UrNQwpc68jGEhYJRDKSD9Mr78P-wRFQACBmLnw6K/s1132/msedge_GKNqp8B5yq.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;636&quot; data-original-width=&quot;1132&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDEEAWoLpufXyIocRdzjGp5gS_DThm7idRqWsHj-VcPg3FJwmBzjRJeq-pIWwa81peTCtGnViEsyJHoaKAtT_7E1e2_4-M1jPFkSA8lJdCKRb_areL3z6yQBERnGmFihu3TfNKPexxMnnjz6r8UrNQwpc68jGEhYJRDKSD9Mr78P-wRFQACBmLnw6K/w400-h225/msedge_GKNqp8B5yq.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; Źródło: [1]&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Podkreśliłem na czerwono 4 czynniki: liczba podmiotów blokujących (&lt;i&gt;Checks&lt;/i&gt;), kontrola rządu nad izbami (&lt;i&gt;Control of all houses&lt;/i&gt;), polaryzacja (&lt;i&gt;Polarization&lt;/i&gt;) i rok wyborczy (&lt;i&gt;Election year&lt;/i&gt;).&amp;nbsp;Jeśli chodzi o angielski termin Checks, który może być niejasny, wspomnę, że ma on wiele znaczeń w tym języku. Może być rozumiany nie tylko jako kontrole (np.&amp;nbsp;&lt;i&gt;checks and balance&lt;/i&gt; - kontrola i rownowaga), ale też jako zatrzymywanie lub hamowanie (tu w znaczeniu blokowanie zmian).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Widzimy, że nie tylko niestabilność polityczna obniża popyt na obligacje skarbowe, ale też okres wyborczy. Z tego powodu wydaje się, że obecnie ich kupowanie nie jest najlepszym pomysłem, mimo że już sporo spadły.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Z drugiej strony z tego samego badania wynika, że stopa zwrotu z akcji jest skorelowana ujemnie z tym popytem. To nie znaczy, że akcje są ujemnie skorelowane z obligacjami. Popyt na obligacje jest rozumiany jako wartość rynkowa obligacji na koniec roku. Czyli jest to moment, a nie okres. Wcześniej powiedziałem, że wzrost ryzyka kredytowego obniża popyt na skarbówki. Ale jednocześnie wzrost ten będzie podwyższał rentowność obligacji. Czyli przyszłe stopy stopy zwrotu będą wyższe, bo cena bieżąca spada. Ale skoro spada, to na koniec roku też będzie niższa, jeżeli termin wykupu będzie dużo później (np. dla 10-latek dyskonto będzie najsilniejsze w pierwszych latach, a najsłabsze w ostatnich). Stąd logiczne, że zaobserwowano ujemną korelację z akcjami. Oczekiwana stopa zwrotu z akcji powinna być sumą rentowności obligacji skarbowych i czynników ryzyka, a więc teoretycznie akcje i skarbówki powinny być dodatnio skorelowane. Ale tylko, gdy mierzymy zmiany w tym samym okresie. Gdy mamy zaś zmianę wyceny z powodu zmiany stopy dyskontowej, to oczywiste, że cena będzie ujemnie skorelowana, bo gdy mianownik rośnie (tzn. stopa dyskontowa), to cena maleje, a gdy mianownik spada, cena rośnie. Ta relacja musi dotyczyć nie tylko wartości bieżącej, ale też przyszłej, jeśli dyskontujemy wiele okresów - tak jak wyżej napisałem.&amp;nbsp;&lt;/div&gt;&lt;div&gt;W przypadku WIGu korelacja w sensie zmian jest lekko dodatnia:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZVZfuOPdQChZm-IP__IG6UvCnobTD1pw_juuBA1h5qTM1QFKCJyY7bUcR2R9JqdFBE7lsqlfItix72qi3LIiWOiRLbw41WvvviE7yrgHSTdjAje5C4OJTXoMUgFKH9axwUyiL_8QnJ7c-eDXRoD_RkhVsCRTTrmey_euNad0isM7bemce1ezOjSH4/s788/rstudio_5gvdpdsw97.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;530&quot; data-original-width=&quot;788&quot; height=&quot;269&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZVZfuOPdQChZm-IP__IG6UvCnobTD1pw_juuBA1h5qTM1QFKCJyY7bUcR2R9JqdFBE7lsqlfItix72qi3LIiWOiRLbw41WvvviE7yrgHSTdjAje5C4OJTXoMUgFKH9axwUyiL_8QnJ7c-eDXRoD_RkhVsCRTTrmey_euNad0isM7bemce1ezOjSH4/w400-h269/rstudio_5gvdpdsw97.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;W całym okresie korelacja Spearmana wynosi 0,13. Stąd nie spodziewałbym się, żeby do wyborów skarbówki spadały, a WIG rósł. Razem powinny spadać.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Literatura:&lt;/div&gt;&lt;div&gt;&lt;div&gt;[1] Eichler, S., Plaga, T. (2017). The political determinants of government bond holdings. Journal of International Money and Finance, 73, 1–21;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;[2]&amp;nbsp;Van Gaasbeck, K. A., Marchelle, T. (2020). The effects of political stability in local currency bond markets. Journal of Applied Business and Economics, 22(4).&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/7773068770455351138/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/jak-polityka-wpywa-na-obligacje-skarbowe.html#comment-form' title='Komentarze (11)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7773068770455351138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/7773068770455351138'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/jak-polityka-wpywa-na-obligacje-skarbowe.html' title='Jak polityka wpływa na obligacje skarbowe?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2pUY9oR2-7EQMN4OOgDj4lBegdAEJtC9DP9P2SS81Q7mPIDAMshvrIGwsLB82O9L-BncCVwh18RkfkpHhzUvDwf8V8k90UX2NhPXjhAH8Mhineor2ATYFkjayO-KYfPFJclv2BeOwIPF1j4Wex6sFb9w6nR_C2V4Nkyr1BCO4MD_vUZhOVOeeSyK9/s72-w400-h256-c/chrome_fI8Iotoqvd.png" height="72" width="72"/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-8765962878249254701</id><published>2025-01-01T13:55:00.015+01:00</published><updated>2025-01-09T11:16:00.313+01:00</updated><title type='text'>Jak giełda powinna reagować na praworządność w Polsce?</title><content type='html'>&lt;div&gt;Od wyborów parlamentarnych w 2015 do kolejnych w 2023 r. WIG urósł zaledwie 31%. W tym samym czasie nominalny PKB wzrósł o 88% (&lt;a href=&quot;https://fred.stlouisfed.org/series/NGDPXDCPLA&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Realny PKB wzrósł o 33% (&lt;a href=&quot;https://fred.stlouisfed.org/series/NGDPRXDCPLA&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Wynika z tego, że ceny wzrosły w sumie o 55%. Inwestowanie w nasze spółki było zatem przez 8 lat rządów PISu nieopłacalne. Pomyślmy czysto logicznie: skoro PKB w sumie wzrósł prawie 3 razy więcej niż główny indeks, który w jakimś stopniu powinien odzwierciedlać stan gospodarki, to znaczy, że cały koszt, że tak powiem, musiał pochodzić od innych czynników niż gospodarka. Takim czynnikiem może być strach przed wojną z Rosją, który eksplodował w 2022 r. Byłby to dobry argument w rękach obrońców PISu, gdyby nie to, że można łatwo udowodnić, że wojna była jedynie pretekstem do przeceny. Jak bowiem wyjaśnić, że Litwa, która teoretycznie jest w gorszej pozycji niż Polska - chociażby dlatego, że stoi na przeszkodzie Rosji do połączenia z obwodem królewieckim (oczywiście upraszczam, bo jeszcze jest Białoruś, ale trudno nazwać ją przeszkodą) - praktycznie nie spadła w 2022? Łotwa niewiele gorzej od Litwy, za to w całym okresie PISu urosła mocniej. Popatrzmy na indeksy w skali logarytmicznej:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5vIsuHVgeiFp-mheUAPh85XzBxVeyyVLsQO3AY6Y9cTRdXSJRZFmhm_q0ughKIQeJVINQs-oLdPu9kSHr3IC1pceiyga1wP1jJQT9VeSvqRCm6K_oZqmlzWgDqm-TBo8uojsFDUyQsqMX3Vuj1dVT9MbG9djukv3crNLX49ujldUNQ62NEmcnLdgS/s788/rstudio_XC8EYmIxv0.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;524&quot; data-original-width=&quot;788&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5vIsuHVgeiFp-mheUAPh85XzBxVeyyVLsQO3AY6Y9cTRdXSJRZFmhm_q0ughKIQeJVINQs-oLdPu9kSHr3IC1pceiyga1wP1jJQT9VeSvqRCm6K_oZqmlzWgDqm-TBo8uojsFDUyQsqMX3Vuj1dVT9MbG9djukv3crNLX49ujldUNQ62NEmcnLdgS/w400-h266/rstudio_XC8EYmIxv0.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Litwa w całym okresie poszła w górę o 94%, a Łotwa 134% (w skali liniowej).&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Skoro wojna nie może być odpowiedzią na słabe zachowanie polskiej giełdy, to trzeba szukać w innych obszarach. Takimi obszarami są praworządność, stopień demokratyczności oraz poziom populizmu. Wszystkie one prawdopodobnie miały pewien wpływ, ponieważ ostatnie rządy PISu powszechnie uważa się za populistyczne i mało demokratyczne (tzn. dążące do centralizacji władzy), a przez większość prawników także za łamiące prawo (&lt;a href=&quot;https://www.rp.pl/sady-i-trybunaly/art10755681-prawnicy-o-kryzysie-trybunalu-wyniki-ankiety&quot; target=&quot;_blank&quot;&gt;źródło&lt;/a&gt;). Kwestię populizmu w kontekście wpływu na gospodarkę omawiałem &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/09/czeka-nas-kryzys.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;, praworządności / demokratyczności na rynek akcji&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/01/lepsza-praworzadnosc-to-lepsze-zyski.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2023/10/demokracja-stopy-zwrotu-z-akcji.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;, i na gospodarkę&amp;nbsp;&lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2017/07/czy-pis-rozwali-gospodarke.html&quot; target=&quot;_blank&quot;&gt;tutaj&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kiedy władzę przejęła znowu PO, od początku byłem wstrzemięźliwy co do dalszej przyszłości naszego rynku, bo widziałem, że politycy z tego obozu przejęli populistyczny język PISu. Szczególnie narażone stały się spółki skarbu państwa, a te jak wiadomo dużo ważą w indeksie.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okazało się, że to dopiero początek. Rok temu pisałem o bezprawnym, siłowym przejęciu TVP i PR, nawet zrobiłem analizę prawną (zob. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2023/12/wojny-domowej-nie-bedzie-ale-sygnay.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). Był to pewien szok, ale giełda przyjęła tę akcję bardzo spokojnie, można by pomyśleć, że nie będzie miała na nią wpływu. Nie takie rzeczy giełda przełykała - pamiętam Smoleńsk, miałem obawy, że będzie tąpnięcie w poniedziałek, ale reakcja była słaba i chwilowa. Jest jednak różnica między tymi zdarzeniami. Smoleńsk był zdarzeniem przypadkowym, a przejęcie mediów publicznych było zaplanowane z założeniem, że cel uświęca środki.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ktoś mógłby powiedzieć, że przecież już wcześniej złamali Konstytucję, powołując 2 sędziów TK na zapas w 2015 r. Tylko że wtedy szybko się wycofali pod wpływem bezpiecznika, jakim był TK. Dziś tego bezpiecznika praktycznie nie ma. Wtedy PIS sprytnie wykorzystał tę zagrywkę jako pretekst do wprowadzenia swoich dodatkowych sędziów, nazywanych potem &quot;dublerami&quot;, rozpoczynając tym samym kryzys TK.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I teraz dochodzimy do meritum. PIS wykorzystał nielegalność przejęcia mediów publicznych do uznania wszystkich innych kontrowersyjnych działań rządu za nielegalne. Co więcej, udało im się narzucić narrację, że w Polsce narasta chaos prawny, tak że obywatel nie może mieć pewności czy wydany wyrok w jego sprawie jest wiążący. Dla przedsiębiorców czy inwestorów to duży problem, bo 3 razy się zastanowią, czy podjąć jakieś decyzje. Jest to zachęta do nieuczciwych praktyk czy nawet oszustw, bo oszust wiedząc, że sprawa przez lata nie zostanie rozwiązana, chętniej podejmie ryzyko.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Z drugiej strony PIS już raz ośmieszył się ze sprawą Kamińskiego i Wąsika. Dla każdego normalnie myślącego człowieka jest jasne, że nie można ułaskawić kogoś, kto nie został uznany prawomocnie za winnego. Ośmieszyli się także dlatego, że Sąd Najwyższy rozstrzygnął ten spór ostatecznie (zob. &lt;a href=&quot;https://www.sn.pl/sites/orzecznictwo/OrzeczeniaHTML/i%20kzp%204-17.docx.html&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;). Pytanie czy dalej się ośmieszają? W zasadzie odpowiedziałem - udało im się narzucić narrację, więc nie ośmieszyli się w tym wypadku. Ale nie dlatego, że się poprawili, tylko dlatego, że sprawa jest bardziej skomplikowana prawnie, a przez to łatwiej nią manipulować.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Weźmy tylko dwa przykłady z brzegu. Mamy postanowienie SN (zob.&amp;nbsp;&lt;a href=&quot;https://www.sn.pl/sites/orzecznictwo/OrzeczeniaHTML/ii%20cskp%20556-22-1.docx.html&quot; target=&quot;_blank&quot;&gt;II CSKP 556/22&lt;/a&gt;) potwierdzające, że orzeczenia tzw. neosędziów należy uznać za nieistniejące, ponieważ sędziowie je wydający byli wadliwie obsadzeni. Żeby nie było - art. 187 p. 1 Konstytucji zawiera lukę, którą PIS wykorzystał. Chodzi o zdanie:&amp;nbsp; &lt;i&gt;Krajowa Rada Sądownictwa składa się z: (...) piętnastu członków wybranych spośród sędziów Sądu Najwyższego, sądów powszechnych, sądów administracyjnych i sądów wojskowych&lt;/i&gt;. Nie ma w tym zdaniu nic o tym, kto wybiera tych sędziów. A ponieważ nie ma, to - wydawałoby się słusznie - powinna to precyzować jakaś ustawa (a tę PIS bez żadnych problemów uchwalił i wprowadził w życie). Dopóki tej interpretacji nie podważył SN, krzyki o nielegalność KRS były jedynie opiniami prawnymi mieszającymi się z opiniami politycznymi. SN wyszedł od spostrzeżenia, że skoro zgodnie z art. 186 Konstytucji KRS stoi na straży niezależności sądów i niezawisłości sędziów, to sama musi być niezależna od władzy ustawodawczej i wykonawczej. A zatem jej członkowie nie mogą być wybierani przez którąś z tych władz. Wprawdzie są wyjątki od tej reguły (w art. 187 też jest o nich mowa), ale wyjątki są właśnie wyjątkami, gdy nie są rozszerzane na regułę. Podobnie jest z sędziami TK, którzy nawet w całości są wybierani przez sejm, bo taki właśnie wyjątek wprowadzono. Ustawa nie może sama narzucać tego wyjątku. Niemniej, można spotkać głosy, podważające stanowisko SN i zapytać, dlaczego z góry należy zakładać, że sędzia wybierany przez sejm czy senat będzie nieobiektywny, skoro sędzia zasadniczo jest nieusuwalny? Stąd, powtarzam, mógłbym przyjąć interpretację PISu za prawidłową i wiążącą, gdyby nie wyrok SN, a także TSUE i ETPC (trzeba więc też brać pod uwagę prawo międzynarodowe), które uchwała SN zresztą przywołuje. Po to właśnie są sądy, aby ograniczać możliwości władzy ustawodawczej i wykonawczej.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Drugi przykład jest bardziej zagmatwany. Chodzi o sprawę prokuratora krajowego, który wg PISu zasiada obecnie bezprawnie. Mamy tu dwie warstwy. Pierwsza to pozbycie się prokuratora krajowego od Ziobry, a druga to powołanie nowego. PIS próbuje narzucić narrację, że ich prokurator krajowy był nielegalnie odwołany, a nowy nielegalnie powołany. Strona rządowa natomiast twierdzi, że ten pierwszy został wcześniej (za PISu) wadliwie powołany, a więc nie mógł być też później odwołany. Dokładniej, politycy wygłaszają taką oto formułkę, żeby przeciętny Kowalski mógł zrozumieć: prokurator krajowy nie został w ogóle przywrócony ze stanu spoczynku, bo zastosowano błędne przepisy. Niestety, diabeł tkwi w szczegółach. Bo to zdanie jest tak proste, że wydawałoby się, że PIS czegoś nie zauważył i popełnił oczywisty błąd. W rzeczywistości, żeby do takiej konkluzji dojść, trzeba przeprowadzić skomplikowaną analizę prawną. Ministerstwo Sprawiedliwości zamówiło 3 opinie prawne (zob. &lt;a href=&quot;https://www.gov.pl/web/sprawiedliwosc/opinie-prawne-dot-zmiany-na-stanowisku-prokuratora-krajowego&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;) i warto przeczytać choćby opinię prof. G. Kucy, żeby zrozumieć z czym mamy do czynienia. Z ustawy o prokuraturze nie wynika wcale, że PIS powołał nieprawidłowo prokuratora krajowego. Wynika to ze szczegółowej analizy prawno-logicznej. Ale ta analiza została poddana krytyce przez Izbę Karną Sądu Najwyższego (zob. &lt;a href=&quot;https://www.sn.pl/aktualnosci/SitePages/Komunikaty_o_sprawach.aspx?ItemSID=671-b6b3e804-2752-4c7d-bcb4-7586782a1315&amp;amp;ListName=Komunikaty_o_sprawach&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;), która przyjęła uchwałę, zgodnie z którą PISowski prokurator krajowy został przywrócony do służby skutecznie. Normalnie rząd znalazłby się w ogromnych kłopotach po tym orzeczeniu, ale w pewnym sensie uratował go sam PIS. Art. 179 Konstytucji stwierdza, że to KRS wybiera sędziów do SN. I tu wracamy do przykładu pierwszego - to neo-sędziowie z KRS wskazali sędziów do tejże Izby Karnej SN. Tym samym - logicznie biorąc - sami sędziowie wybrani do tej Izby byli wadliwie wybrani i odziedziczyli z automatu status neo-sędziów. Tak więc PO ma mocny pretekst do podważania ich orzeczeń i wyroków, niezależnie od tego czy mają oni rację czy nie.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No ale jest jeszcze druga warstwa. PIS stawia sprawę jasno - POwski prokurator krajowy nie jest żadnym prokuratorem krajowym, bo jego powołania wymaga opinia prezydenta. Rzeczywiście, art. 14 par. 1 ustawy o prokuraturze brzmi:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;b&gt;Prokuratora Krajowego (...) powołuje spośród prokuratorów Prokuratury Krajowej i odwołuje z pełnienia tych funkcji Prezes Rady Ministrów na wniosek Prokuratora Generalnego. Prokuratora Krajowego oraz pozostałych zastępców Prokuratora Generalnego &lt;u&gt;powołuje się po uzyskaniu opinii Prezydenta Rzeczypospolitej Polskiej&lt;/u&gt;, a odwołuje za jego pisemną zgodą.&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Zwróćmy jednak uwagę, że artykuł nie mówi o pisemnej opinii. Oznacza to, że dowolna opinia prezydenta&amp;nbsp; na ten temat może posłużyć za podkładkę do powołania prokuratora. W dodatku nawet gdybyśmy przyjęli, że opinia musi być formalna, to również w tej kwestii SN się wypowiedział (zob. &lt;a href=&quot;https://www.gov.pl/web/prokuratura-krajowa/informacja-o-pisemnym-uzasadnieniu-postanowien-sadu-najwyzszego-w-sprawach-o-sygn-i-kzp-624-i-i-kzp-724&quot; target=&quot;_blank&quot;&gt;tu&lt;/a&gt;) i zauważył, że po zwróceniu się przez premiera o opinię ws. D. Korneluka na stanowisko prokuratora krajowego, prezydent odpowiedział 14 dni później, że Korneluk nie został skutecznie powołany na to stanowisko z uwagi na brak jego opinii. Można więc to czytać jako opinię negatywną, która jednak nie ma żadnego znaczenia oprócz formalnego. Jest to biurokratyczna bzdura, żeby uzyskanie opinii było obligatoryjne, ale nie miało żadnego znaczenia dla decyzji premiera. A to prowadzi do prostego jej ominięcia - cokolwiek A. Duda odpisze, będzie traktowane jako opinia. Co więcej, SN doszedł do wniosku, że nawet gdyby Duda nic nie odpisał, to też należy to traktować jako opinię. Ważne, że została wysłana prośba o nią od premiera. I trzeba przyznać, że ma to sens - skoro mamy do czynienia z biurokratyczną bzdurą, to należy ją traktować jak na to zasługuje.&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sporów jest więcej, ale te dwa przykłady są chyba najważniejsze i dowodzą, że to strona rządowa ma przewagę w argumentacji. Cały problem leży w komunikacji. Ma on dwojaką naturę. Z jednej strony wydaje się, że politycy koalicji rządzącej nie potrafią narzucić swojej narracji w sposób przekonywający dla ogółu. Częściowo wynika to z faktycznie bezprawnego przejęcia mediów publicznych, które opozycja wykorzystuje do rozszerzenia na pozostałe działania. Polityk PO nie może przecież powiedzieć: przyznaję, że to akurat było nielegalne, ale cała reszta już zgodna z prawem. Z drugiej strony mediom komercyjnym zależy na podsycaniu konfliktu, bo to zawsze będzie oglądane. To prowadzi zazwyczaj do politycznej jatki zamiast merytorycznej dyskusji. Ponadto z jakiegoś powodu brakuje (chyba, bo może nie mam o tym wiedzy) dyskusji między ekspertami prawnymi o odmiennych poglądach. Jeśli coś takiego jest, to raczej są to niepogłębione, krótkie wywiady, w których nie daje się szansy na pełną odpowiedź na krytykę. Takie dyskusje powinny być organizowane przez media publiczne właśnie, ale wydaje się to niemożliwe, gdy są one pod pełną kontrolą jednej strony politycznej.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W sumie, subiektywnie praworządność w Polsce może się wydawać nadal łamana, ale obiektywnie biorąc na dziś mamy do czynienia z jej poprawą w stosunku do tego co było rok temu i wcześniej. Potwierdzają to &lt;a href=&quot;https://worldjusticeproject.org/rule-of-law-index/country/2024/Poland&quot; target=&quot;_blank&quot;&gt;statystyki opracowane przez World Justice Project&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2iCJIeOx7Jot-zmp5Zb-zp-tVUArwzO292A1A1j01IntwNJhJVqV9rq5XwBrE-1ZToRhpGzCcrawu8B4z29Lm2eKNhqGtJCt0APznnYgEMYoIrA0sQstyiRGuhedLz4WmzbG_u2SuUqDNRIEl89GJr5ZO_QEUrqAPejheDa-Z4sNCFAcFcRydg0e1/s1283/chrome_ssDKT9CswS.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;342&quot; data-original-width=&quot;1283&quot; height=&quot;106&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2iCJIeOx7Jot-zmp5Zb-zp-tVUArwzO292A1A1j01IntwNJhJVqV9rq5XwBrE-1ZToRhpGzCcrawu8B4z29Lm2eKNhqGtJCt0APznnYgEMYoIrA0sQstyiRGuhedLz4WmzbG_u2SuUqDNRIEl89GJr5ZO_QEUrqAPejheDa-Z4sNCFAcFcRydg0e1/w400-h106/chrome_ssDKT9CswS.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Między 2021 a 2023 byliśmy na 36 miejscu, w 2024 skoczyliśmy na 33.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Miejsce 33 to ciągle daleko za Litwą (18) i Łotwą (21). Co chwilę też wybuchają nowe spory prawne. Pewne jest jedno - dopóki sprawa neo-sędziów i TK nie zostanie w pełni uregulowana (rozwiązana), dopóty nie można mówić o przywróceniu praworządności.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jak to wpłynie na giełdę? Może być tak, że negatywne czynniki instytucjonalne zostaną zastąpione przez negatywne czynniki gospodarcze. Zakładając, że działa tu psychologia, czyli subiektywizm, możemy mieć do czynienia z przesadnymi spadkami w kolejnych miesiącach, a gdy inwestorzy zauważą, że chaos prawny jest sztucznie wykreowany w mediach, nastąpi ożywienie.&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/8765962878249254701/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/jak-gieda-powinna-reagowac-na.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8765962878249254701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/8765962878249254701'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2025/01/jak-gieda-powinna-reagowac-na.html' title='Jak giełda powinna reagować na praworządność w Polsce?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5vIsuHVgeiFp-mheUAPh85XzBxVeyyVLsQO3AY6Y9cTRdXSJRZFmhm_q0ughKIQeJVINQs-oLdPu9kSHr3IC1pceiyga1wP1jJQT9VeSvqRCm6K_oZqmlzWgDqm-TBo8uojsFDUyQsqMX3Vuj1dVT9MbG9djukv3crNLX49ujldUNQ62NEmcnLdgS/s72-w400-h266-c/rstudio_XC8EYmIxv0.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3931049513337747406.post-4193902594747141268</id><published>2024-12-08T23:14:00.021+01:00</published><updated>2024-12-15T17:40:54.233+01:00</updated><title type='text'>Prognoza krocząca z ruchomym oknem w rugarch (język R)</title><content type='html'>&lt;p&gt;&amp;nbsp;Tytuł brzmi koślawo, bo słowo &quot;krocząca&quot; jest synonimem do &quot;ruchomej&quot; i np. średnia krocząca i średnia ruchoma oznaczają to samo. Z tym że ta średnia oznacza średnią z ostatnich x okresów, a prognoza jest zawsze do przodu. W ogóle określenie prognoza krocząca nie jest najlepsze i powinno się raczej mówić o prognozie nawijanej (rolującej) lub rekurencyjnej. W języku angielskim mówi się o &lt;i&gt;recursive forecast&lt;/i&gt;. Natomiast&amp;nbsp;&lt;i&gt;rolling forecast&lt;/i&gt;&amp;nbsp;zwykło się nazywać prognozę kroczącą z ruchomym oknem będącą analogią do średniej ruchomej. Tym przypadkiem zajmę się obecnie.&lt;/p&gt;&lt;p&gt;Krótko na temat samej funkcji w rugarch. Interesuje nas postać:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;ugarchroll(spec, data, forecast.length = 500, n.start = NULL, refit.every = 25, refit.window = c(&quot;recursive&quot;, &quot;moving&quot;), window.size = NULL, solver = &quot;hybrid&quot;, cluster = NULL)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;gdzie:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;spec - teoretyczny model GARCH,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;data - dane najlepiej w xts,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;forecast.length - długość prognozy dla próby testowej (tj. out-of-sample), która liczona jest do końca całej próby,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;n.start - można użyć zamiast forecast.length, zamiast liczyć od końca można po prostu określić punkt startowy dla prognozy,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;refit.every - określa, co którą obserwację w próbie testowej ponownie estymować; jeśli więc chcemy aby dla każdej następnej obserwacji reestymować, wpisujemy 1,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;refit.window - wybór czy reestymować od początku próby do ostatniej dostępnej obserwacji (&quot;recursive&quot;), tzn. wybieramy tu prognozę nawijaną na kolejny okres, czy też reestymować w oknie o stałej liczebności, czyli tak jak np. średnia 30-okresowa (&quot;moving&quot;),&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;window.size - jeżeli wybraliśmy refit.window = &quot;moving&quot;, wtedy ustawiamy tu długość okna, w którym estymowane są parametry; w przeciwnym wypadku dajemy NULL,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;solver - zazwyczaj wybieram &quot;hybrid&quot;, bo jest najbardziej wszechstronny,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;cluster - również tu stosujemy przetwarzanie równoległe, aby przyspieszyć obliczenia (na podstawie pakietu parallel).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;W tym badaniu ustawiam forecast.length = 30, refit.every = 3, refit.window = &quot;moving&quot;, window.size = 300.&lt;/p&gt;&lt;p&gt;Temat ogólnie stanowi kontynuację prognozy za pomocą pakietu rugarch. &lt;a href=&quot;https://gieldowyracjonalista.blogspot.com/2024/10/za-maa-proba-czy-zy-model.html&quot; target=&quot;_blank&quot;&gt;Stanęło na tym&lt;/a&gt;, że modelowanie na dużej próbie jest utrudnione z uwagi na niestabilność parametrów wariancji warunkowej - przynajmniej dla tygodniowych stóp zwrotu. Wychwycił to specjalny test na proces TV-GARCH. Od teraz zawsze będę stosował ten test w pierwszej kolejności.&lt;/p&gt;&lt;p&gt;W końcu udało mi się znaleźć w miarę optymalną próbę - nie za małą i nie za dużą dla GARCH - jest to próba między 300 a 350 tygodniowych stóp zwrotu. Wybrałem 330, z czego ostatnie 30 będą out-of-sample.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Tym razem będę modelował WIG zamiast WIG20, a potem S&amp;amp;P 500 (źródło stooq.pl). Wszystkie potrzebne pakiety:&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;tidyverse&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;tidyverse&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;dplyr&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;xts&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;xts&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;xts&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;rugarch&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;rugarch&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;rugarch&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;foreach&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;foreach&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;foreach&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;doParallel&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;doParallel&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;doParallel&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;if (require(&quot;tvgarch&quot;)==FALSE) {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; install.packages(&quot;tvgarch&quot;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;library(&quot;tvgarch&quot;)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;WIG&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;#Przygotowanie danych:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;nazwaPliku = &quot;wig_d.csv&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;Obs &amp;lt;- 331&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;plik &amp;lt;- read.csv(nazwaPliku)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;plik$Data &amp;lt;- as.Date(plik$Data)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;tabela &amp;lt;- tail(to.weekly(as.xts(plik), indexAt=&quot;endof&quot;, OHLC=FALSE), Obs)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;cena &amp;lt;- tabela$Zamkniecie&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;stopaZwrotu &amp;lt;- diff.xts(log(cena))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;tabela$stopaZwrotu &amp;lt;- stopaZwrotu&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;tabela &amp;lt;- na.omit(tabela)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;stopaZwrotu &amp;lt;- tabela$stopaZwrotu&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Tak jak powiedziałem, zaczynam od testowania TV-GARCH. Testuję ostatnie 330 stóp zwrotu WIG (zmienna stopaZwrotu):&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Sprawdzamy TV-GARCH&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;tvGarchTest &amp;lt;- tvgarchTest(y = as.numeric(stopaZwrotu))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;tvGarchTest&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBA4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 1.2; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBB4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Testing GARCH(1,1), i.e., the model under H0, against 
  TV-GARCH(1,1), i.e., the model under H1: 

Estimation results for model under H0:
Model: GARCH(1,1) 

            intercept.h  arch1  garch1
Estimate:     0.0002362 0.2062 0.51256
Std. Error:   0.0003463 0.1080 0.03947
                     
Log-likelihood: 723.2


Transition variable in TV-GARCH(1,1): time 

Results from the Non-Robust TR^2 Test: 

                 NonRobTR2 p-value
H0:B3=B2=B1=0       2.4250  0.4890
H03:B3=0            1.4251  0.2326
H02:B2=0|B3=0       0.7273  0.3938
H01:B1=0|B3=B2=0    0.2775  0.5984

Results from the Robust TR^2 Test: 

                 RobTR2 p-value
H0:B3=B2=B1=0     3.749  0.2898
H03:B3=0          1.122  0.2895
H02:B2=0|B3=0     2.245  0.1340
H01:B1=0|B3=B2=0  1.370  0.2419

                                Single
No. of locations (alpha = 0.05)      0&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Żaden test nie sugeruje nawet, że może wystąpić niestabilność.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jeśli chodzi o ogólną postać modelu wariancji, to przyjmuję EGARCH(1, 1), która okazywała się dotychczas najlepszą pod względem dopasowania. Kłopot zaczyna się dla części ARMA(p, q). Gdybym wiedział od początku jaką postać powinienem przyjąć, wtedy stosuję dwie funkcje:&amp;nbsp;ugarchspec() oraz&amp;nbsp;ugarchroll(). Nie jest już potrzebna&amp;nbsp;ugarchfit(), którą częściowo zastępuje ugarchroll(). A nie jest potrzebna, bo normalnie służy nie tylko do utworzenia modelu empirycznego, ale i też do diagnostyki modelu. A skoro uznajemy, że prawidłową postać modelu znam od początku, to nie jest konieczna diagnostyka. Ale nawet jeżeli nie znam modelu, a interesuje mnie jedynie prognoza out-of-sample, to diagnostyka także jest zbędna. Może inaczej - nie jest niezbędna. Można jej użyć, ale tylko żeby się dowiedzieć, czy model jest dobrze dopasowany do próby in-sample.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Funkcja ugarchfit() przyda się jednak do prognozowania naprawdę przyszłych, czyli nieistniejących jeszcze danych. To znaczy do samej prognozy użyję ugarchforecast(), której argumentem jest ugarchfit().&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W sumie, tak jak poprzednio, ugarchroll() posłuży do testowania prognozy out-of-sample, a ugarchfit() + ugarchforecast() do prognozy na kolejne okresy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Kryterium wyboru najlepszego modelu będzie się tym razem opierać wyłącznie na out-of-sample: kierunkowej dokładności (ang. &lt;i&gt;directional accuracy criterion&lt;/i&gt;&amp;nbsp;- DAC) oraz na sumie odchyleń (SO) od średniej prognozy. DAC musi być jak największe, SO jak najmniejsze. Zwrócę uwagę, że nie będę korygował tych miar o liczbę współczynników modelu, jak to robią AIC, BIC i HQIC, dlatego należy traktować to badanie ad hoc.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ostatnia sprawa to rozkład reszt. Tym razem dla przyspieszenia obliczeń przyjmę rozkład normalny, chociaż zdaję sobie sprawę, że mogę dostać przez to niedopasowaną wariancję warunkową. Jednak będzie to punkt wyjścia do dalszych analiz.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;rozklad &amp;lt;- &quot;norm&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;hqc &amp;lt;- list()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;model_Garch &amp;lt;- &quot;eGARCH&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;submodel_Garch &amp;lt;- NULL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;wyrzuc &amp;lt;- 30&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;q &amp;lt;- 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;p &amp;lt;- 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Ustawienie równoległego backendu do użycia wielu procesorów&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;ileRdzeni &amp;lt;- detectCores() - 1&amp;nbsp; # Użyj jednego mniej niż całkowita liczba rdzeni&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;klaster &amp;lt;- makeCluster(ileRdzeni)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;clusterExport(klaster, varlist = c(&quot;stopaZwrotu&quot;, &quot;rozklad&quot;, &quot;model_Garch&quot;, &quot;submodel_Garch&quot;, &quot;q&quot;, &quot;p&quot;, &quot;wyrzuc&quot;))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;clusterEvalQ(klaster, library(rugarch))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Utworzenie siatki parametrów dla pętli&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;siatka_parametrow &amp;lt;- expand.grid(k = 0:1, i = 0:20, j = 0:20)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Iteracja po siatce parametrów bez foreach&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;wyniki &amp;lt;- lapply(1:nrow(siatka_parametrow), function(param) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; k &amp;lt;- siatka_parametrow$k[param]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; i &amp;lt;- siatka_parametrow$i[param]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; j &amp;lt;- siatka_parametrow$j[param]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; rzad_modelu &amp;lt;- sprintf(&quot;ARMA(%d, %d)%s&quot;, i, j, ifelse(k == 1, &quot;-ARCH_In_Mean&quot;, &quot;&quot;))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; tryCatch({&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; prognoza &amp;lt;- NULL&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Define the GARCH specification&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; mojGarch &amp;lt;- ugarchspec(variance.model = list(model = model_Garch, submodel = submodel_Garch,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;garchOrder = c(q, p)),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;mean.model = list(armaOrder = c(i, j), archm = as.logical(k)),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;distribution.model = rozklad)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Try ugarchroll and handle potential errors by attempting to use resume()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; prognoza &amp;lt;- try(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ugarchroll(spec = mojGarch, data = stopaZwrotu, forecast.length = wyrzuc,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n.start = NULL, refit.every = 3, refit.window = &quot;moving&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;window.size = 300, solver = &quot;hybrid&quot;, calculate.VaR = TRUE,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VaR.alpha = c(0.01, 0.05),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cluster = klaster),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; silent = TRUE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Check if ugarchroll returned an error&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; if (inherits(prognoza, &quot;try-error&quot;)) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; message(&quot;Błąd w ugarchroll, przechodzę do resume(): &quot;, attr(prognoza, &quot;condition&quot;)$message)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; return(list(error = attr(prognoza, &quot;condition&quot;)$message, rzad_modelu = rzad_modelu))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Use resume() if no error occurred&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; prognoza &amp;lt;- resume(prognoza)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Extract forecasts and calculate metrics&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; prognozaSrednia &amp;lt;- prognoza@forecast$density$Mu # średnia prognoza&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; prognozaSigma &amp;lt;- prognoza@forecast$density$Sigma # warunkowe odchylenie st&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; stopaZwrotuZgodna &amp;lt;- prognoza@forecast$density$Realized # faktyczne stopy zwrotu&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; odchylenie &amp;lt;- sum((prognozaSrednia - stopaZwrotuZgodna)^2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Initialize DAC value&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; dac_wartosc &amp;lt;- NA&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Skip DACTest for ARMA(0, 0) with k = 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; if (i + j + k &amp;gt; 0) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; dac_wartosc &amp;lt;- DACTest(forecast = as.numeric(prognozaSrednia),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;actual = as.numeric(stopaZwrotuZgodna),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test = &quot;PT&quot;)$DirAcc&amp;nbsp; # Liczenie DAC dla prognozy&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; return(list(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; rzad_modelu = rzad_modelu,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; dac = dac_wartosc,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; odchylenie = odchylenie&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; ))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; }, error = function(e) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; # Catch block for unexpected errors&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; message(&quot;Błąd w ARMA(&quot;, i, &quot;, &quot;, j, &quot;) z k = &quot;, k, &quot;: &quot;, conditionMessage(e))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; return(list(error = conditionMessage(e), rzad_modelu = rzad_modelu))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; })&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;})&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Zatrzymaj klaster po przetwarzaniu&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;stopCluster(klaster)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;dac &amp;lt;- list()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;odchylenie &amp;lt;- list()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Przetwórz wyniki i przechowaj je w oryginalnych listach&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;for (wynik in wyniki) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; if (!is.null(wynik)) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; for (nazwa_modelu in names(wynik)) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; dac[[wynik$rzad_modelu]] &amp;lt;- wynik$dac&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; odchylenie[[wynik$rzad_modelu]] &amp;lt;- wynik$odchylenie&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; #var5[[wynik$rzad_modelu]] &amp;lt;- var5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# DAC w próbie testowej&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;dacDf &amp;lt;- as.data.frame(do.call(cbind, dac))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;rownames(dacDf) &amp;lt;- &quot;DAC (out of sample)&quot;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# odchylenie w próbie testowej&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;odchylenieDf &amp;lt;- as.data.frame(do.call(cbind, odchylenie))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;rownames(odchylenieDf) &amp;lt;- &quot;odchylenie (out of sample)&quot;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;porownanie &amp;lt;- bind_rows(dacDf, odchylenieDf)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Znajdź wszystkie kolumny z maksymalną wartością w trzecim wierszu (DAC w próbie testowej)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;max_dac &amp;lt;- max(round(porownanie[1, ], 4), na.rm = TRUE)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;kryterium_dac &amp;lt;- porownanie[, which(round(porownanie[1, ], 4) == max_dac), drop = FALSE]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Znajdź wszystkie kolumny z minimalną wartością w pierwszym wierszu (HQC)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;min_odchylenie &amp;lt;- min(round(porownanie[2, ], 4), na.rm = TRUE)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;kryterium_odchylenie &amp;lt;- porownanie[, which(round(porownanie[2, ], 4) == min_odchylenie), drop = FALSE]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;kryterium_dac&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;kryterium_odchylenie&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Z punktu widzenia DAC najlepszy okazał się&amp;nbsp;ARMA(1, 3)-ARCH_In_Mean (DAC = 0,667 , SO = 0,196). Z punktu widzenia sumy odchyleń najlepszy model to&amp;nbsp;ARMA(7, 8)-ARCH_In_Mean (DAC = 0,633, SO = 0,178).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Te dwa modele sprawdzimy.&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Kryterium DAC&lt;/h4&gt;&lt;div&gt;Wyciągamy parametry i ustalamy je w formie zmiennych:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# parametry - DAC&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;wyciagnij_liczby &amp;lt;- function(wyr, x) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; as.numeric(gsub(&quot;[^0-9]&quot;, &quot;&quot;, substr(wyr, x, x+2), ))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;rzadAR_DAC &amp;lt;- wyciagnij_liczby(colnames(kryterium_dac), 6)[1]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;rzadMA_DAC &amp;lt;- wyciagnij_liczby(colnames(kryterium_dac), 9)[1]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;czy_archm_DAC &amp;lt;- grepl(&quot;ARCH_In_Mean&quot;, colnames(kryterium_dac))[1]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Specyfikacja otrzymanego modelu:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;mojGarch_DAC &amp;lt;- ugarchspec(variance.model = list(model = model_Garch, submodel = submodel_Garch,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;garchOrder = c(p, q)),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mean.model = list(armaOrder = c(rzadAR_DAC, rzadMA_DAC), archm = czy_archm_DAC),&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;distribution.model = rozklad)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Następnie stosujemy właśnie prognozę kroczącą - rolującą (robię to drugi raz, pierwszy raz w pętli tylko w celu wyszukania optimum, teraz pełna analiza - chociaż można by to wszystko zapisać w pętli).&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Prognoza z reestymacją - prognoza krocząca&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;klaster &amp;lt;- makeCluster(detectCores() - 1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaGarch_DAC &amp;lt;- ugarchroll(spec = mojGarch_DAC, data = stopaZwrotu, forecast.length = wyrzuc,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;n.start = NULL, refit.every = 3, refit.window = &quot;moving&quot;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;window.size = 300, solver = &quot;hybrid&quot;, calculate.VaR = TRUE,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VaR.alpha = c(0.01, 0.05),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cluster = klaster)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaGarch_DAC &amp;lt;- resume(prognozaGarch_DAC)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;stopCluster(klaster)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaMu_DAC &amp;lt;- prognozaGarch_DAC@forecast$density$Mu&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaSigma_DAC &amp;lt;- prognozaGarch_DAC@forecast$density$Sigma&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;Aby sprawdzić czy rzeczywiście dostałem ten model co chciałem, robię test DAC:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;DACTest(forecast=prognozaReest_DAC,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; actual=tail(as.numeric(stopaZwrotu), wyrzuc),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; test=&quot;PT&quot;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre aria-label=&quot;Console Output&quot; class=&quot;GNTYACMBA4B&quot; id=&quot;rstudio_console_output&quot; role=&quot;document&quot; style=&quot;background-color: white; border: none; font-family: &amp;quot;Lucida Console&amp;quot;, monospace; font-size: 13.3333px; line-height: 1.2; margin-bottom: 0px; margin-top: 0px; outline: none; text-wrap-mode: wrap; user-select: text; word-break: break-all;&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;GNTYACMBB4B&quot; role=&quot;document&quot; style=&quot;outline: none;&quot; tabindex=&quot;-1&quot;&gt;Stat
[1] 1.975

$p.value
[1] 0.02411

$H0
[1] &quot;Independently Distributed&quot;

$Decision
[1] &quot;Reject  H0&quot;

$DirAcc
[1] 0.6667&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Czyli rzeczywiście to co powinno być.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ostatnia część analityczna to utworzenie prognozy na przyszłe okresy, których jeszcze nie ma. Wykorzystamy całą próbę i funkcje ugarchfit() i ugarchforecast():&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Prognoza na podstawie całej próby na 1 przyszły okres&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;dopasGarchCalaProba_DAC &amp;lt;- tryCatch(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; ugarchfit(spec = mojGarch_DAC, data = stopaZwrotu, solver = &quot;hybrid&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; }, warning = function(w) {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; message(&quot;Ostrzeżenie: &quot;, conditionMessage(w))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; ugarchfit(spec = mojGarch_DAC, data = stopaZwrotu, solver = &quot;hybrid&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Normalnie w tym miejscu przeprowadziłbym diagnostykę czyli wpisał dopasGarchCalaProba_DAC, ale tego nie robię, bo nie jest to teraz najważniejsze.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Tworzę prognozę na 1 okres do przodu zarówno dla średniej jak i wariancji warunkowej (ryzyka):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaGarchNowa_DAC &amp;lt;- ugarchforecast(dopasGarchCalaProba_DAC, n.ahead = 1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# średnia&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaMuNowa_DAC &amp;lt;- as.numeric(fitted(prognozaGarchNowa_DAC))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# ryzyko&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaSigmaNowa_DAC &amp;lt;- as.numeric(sigma(prognozaGarchNowa_DAC))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dalsza część to już dostosowanie do wykresu:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Dla wykresu - tworzenie daty, której jeszcze nie ma - 1 okres na przyszłość&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;datyTest &amp;lt;- tail(index(stopaZwrotu), wyrzuc)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;czest &amp;lt;- &quot;week&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;nowaData &amp;lt;- seq(from = datyTest[length(datyTest)], by = czest, length.out = 2)[-1]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Dla wykresu - cały zakres dat&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;datyWykres &amp;lt;- c(datyTest, nowaData)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# Dla wykresu - średnia prognoza i ryzyko, cały zakres (z reestymacją + na przyszłość)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaMu_xts &amp;lt;- xts(c(prognozaMu_DAC, prognozaMuNowa_DAC), order.by = datyWykres)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;prognozaSigma_xts &amp;lt;- xts(c(prognozaSigma_DAC, prognozaSigmaNowa_DAC), order.by = datyWykres)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;# wykres&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;plot(prognozaMu_xts, col = &quot;blue&quot;, lwd = 2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;lines(prognozaSigma_xts, col = &quot;red&quot;, lwd = 2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;lines(-prognozaSigma_xts, col = &quot;red&quot;, lwd = 2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;lines(tail(stopaZwrotu, wyrzuc), col=&quot;gray&quot;, lwd=2)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;addLegend(legend.loc = &quot;topleft&quot;, legend.names = c(&quot;Średnia prognoza krocząca&quot;,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;Średnie ryzyko prognozy kroczącej&quot;,&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;Tygodniowa stopa zwrotu WIG&quot;),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #660000; font-family: verdana;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lwd=3, bty=&quot;o&quot;, cex=0.85, col=c(&quot;blue&quot;, &quot;red&quot;, &quot;gray&quot;))&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYkSjpS7i9K8dmtSud_G9scDhEjqaQW4Y1PZr2z1kZTRIblZFJEEBEaplFfkLQCwBGMwwqt4zYoznHF3MML3DFOvSyaS8EjZoDvlFFfreRTSVrSwyDnWZWIxxpTJdRYV3gkVoYSDKnieWlV8dAt2AFnzHgjFSBPuWSIAop0YxDk6A15EMA1LYdNP0U/s804/rstudio_7EPFIW1TbV.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;804&quot; height=&quot;263&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYkSjpS7i9K8dmtSud_G9scDhEjqaQW4Y1PZr2z1kZTRIblZFJEEBEaplFfkLQCwBGMwwqt4zYoznHF3MML3DFOvSyaS8EjZoDvlFFfreRTSVrSwyDnWZWIxxpTJdRYV3gkVoYSDKnieWlV8dAt2AFnzHgjFSBPuWSIAop0YxDk6A15EMA1LYdNP0U/w400-h263/rstudio_7EPFIW1TbV.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sporo błędów, model DAC = 67%, ale nie widać tego specjalnie, szczególnie w ostatnich tygodniach.&amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Kryterium sumy odchyleń&lt;/h4&gt;&lt;div&gt;Kod jest analogiczny, jedynie zamiast kryterium_DAC wstawiamy kryterium_odchylenie i następnie tak samo z pozostałymi zmiennymi, nie będę więc już powtarzał kodu.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-P3CZGxMXSoRCXuLIqFLU_ngpcB5YtQapZwsE31YyhDhiMXz6RUXqe7NHcc9VpXpbrOPfw-1-TwWpFuYbj3SOjumjE88nitoynty3WBNCnemttklh8rA6uNAyAJjPE0HwVM6mg1ROQEkJFv4QG0K7Am9OIg5P5K3ATdYGN_KlLtWDyj98xE-PSMj7/s794/rstudio_ydSdVyVgLK.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;794&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-P3CZGxMXSoRCXuLIqFLU_ngpcB5YtQapZwsE31YyhDhiMXz6RUXqe7NHcc9VpXpbrOPfw-1-TwWpFuYbj3SOjumjE88nitoynty3WBNCnemttklh8rA6uNAyAJjPE0HwVM6mg1ROQEkJFv4QG0K7Am9OIg5P5K3ATdYGN_KlLtWDyj98xE-PSMj7/w400-h265/rstudio_ydSdVyVgLK.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Z pozoru dziwne się może wydać, że tak dużo odchyleń wychodzi poza obszar oczekiwanego ryzyka. Niestety może być to cena przyjęcia rozkładu normalnego dla przyspieszenia obliczeń.&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Uśrednione prognozy&lt;/h4&gt;&lt;div&gt;Oba kryteria można uśrednić. Wtedy dostaniemy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisa4rGArT0gNdamHrXBcjysEp5AgtdrbFDD_4jWjtdgv-x3rY01AwWbaVw6tTWdoKvgi7Su4bFCJ9V1uU7_lnFFt6fENOJZK_QQe_J4TgAVKg-AWFerkN-uDrGpn4i5kYMvJSvskp321UM3NQ-Zrz8294mirVeqW2DtXJO897UvgDX7OlH89uTbBcJ/s400/rstudio_98bmglEZrQ.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;262&quot; data-original-width=&quot;400&quot; height=&quot;263&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisa4rGArT0gNdamHrXBcjysEp5AgtdrbFDD_4jWjtdgv-x3rY01AwWbaVw6tTWdoKvgi7Su4bFCJ9V1uU7_lnFFt6fENOJZK_QQe_J4TgAVKg-AWFerkN-uDrGpn4i5kYMvJSvskp321UM3NQ-Zrz8294mirVeqW2DtXJO897UvgDX7OlH89uTbBcJ/w400-h263/rstudio_98bmglEZrQ.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Widać, że to uśrednienie ma sens - tam gdzie kryterium DAC było gorsze, tam lepiej wypadało kryterium odchyleń. Można powiedzieć, że prognoza na następny tydzień jest delikatnie wzrostowa, może wokół zera.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Natomiast ryzyka nie udało się tu dobrze zamodelować, przypuszczalnie z powodu tego nieszczęsnego rozkładu normalnego.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;&lt;b&gt;S&amp;amp;P 500&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;Jedyną zmianą w kodzie jest nazwaPliku = &quot;^spx_d.csv&quot;.&amp;nbsp;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Kryterium DAC&lt;/h4&gt;&lt;div&gt;Otrzymałem 2 modele:&amp;nbsp;&amp;nbsp;ARMA(12, 20) (DAC = 0,8 i SO = 0,008) oraz&amp;nbsp;ARMA(9, 14)-ARCH_In_Mean (DAC = 0,8 i SO = 0,0081).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ARMA(12, 20)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW1csUTGayzX4_w3Rix46hFjm4Y5zs_MueWV5vXgJBtxrssdHA2wVt1MH8_i9M-4TnTAsSLpdDwb9BjLh_FSwVP_IpusOi1ZyqtCEaptFx7K4DJq6qj5TZvi8FQ8HrPgpVoFfJMBvOfyJIk9ffcUWOE5ACp7idy0Xpy7imgpzydb08yL1BF-vWzyKK/s799/rstudio_GFjAEv5NrP.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;799&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW1csUTGayzX4_w3Rix46hFjm4Y5zs_MueWV5vXgJBtxrssdHA2wVt1MH8_i9M-4TnTAsSLpdDwb9BjLh_FSwVP_IpusOi1ZyqtCEaptFx7K4DJq6qj5TZvi8FQ8HrPgpVoFfJMBvOfyJIk9ffcUWOE5ACp7idy0Xpy7imgpzydb08yL1BF-vWzyKK/w400-h261/rstudio_GFjAEv5NrP.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ARMA(9, 14)-ARCH_In_Mean&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh98rvColzsVOwcSBAaXQU2izcLpvFli-_sfPgk5iQv2ZFlGT_kdUlcvxvY_LuFMqJuPCWZw4rJ_zbF8LWqm2PdPSF5tdiLfUtrZukhczJI5wMAejhWP9C8URnfMssAlQckUXNdCLY3dtBjUnVv-29rjxud9wBj0NNG1BXWNwSoplyCnmvanCK4dSuc/s804/rstudio_mRCZwBFvkK.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;804&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh98rvColzsVOwcSBAaXQU2izcLpvFli-_sfPgk5iQv2ZFlGT_kdUlcvxvY_LuFMqJuPCWZw4rJ_zbF8LWqm2PdPSF5tdiLfUtrZukhczJI5wMAejhWP9C8URnfMssAlQckUXNdCLY3dtBjUnVv-29rjxud9wBj0NNG1BXWNwSoplyCnmvanCK4dSuc/w400-h259/rstudio_mRCZwBFvkK.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Kryterium sumy odchyleń (SO)&lt;/h4&gt;&lt;div&gt;W tym wypadku najlepsze okazały się&amp;nbsp;ARMA(11, 7)-ARCH_In_Mean (DAC = 0,67 i SO = 0,0079) oraz&amp;nbsp;ARMA(7, 9)-ARCH_In_Mean&amp;nbsp;(DAC = 0,67 i SO = 0,00791)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ARMA(11, 7)-ARCH_In_Mean&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6xuPn9CHLGefxqZE_ge3ug-wyBjXHEeSQdwoSOpfb0HK6AayvAVxn4K6KGI4pNJWpEx8rwm8XSy0Vm76iUxo86R-M8u9LXPaJV8LxJoDBBEJkkgX9nFy9Dr9r4KtpCwjd-msBxrYsPttLb-Xsj8qY3LWjRoqvYz6DT-ZlK0RSExvwx4lpqvseKr8/s803/rstudio_xHVv3j7xCx.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;803&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiA6xuPn9CHLGefxqZE_ge3ug-wyBjXHEeSQdwoSOpfb0HK6AayvAVxn4K6KGI4pNJWpEx8rwm8XSy0Vm76iUxo86R-M8u9LXPaJV8LxJoDBBEJkkgX9nFy9Dr9r4KtpCwjd-msBxrYsPttLb-Xsj8qY3LWjRoqvYz6DT-ZlK0RSExvwx4lpqvseKr8/w400-h260/rstudio_xHVv3j7xCx.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;ARMA(7, 9)-ARCH_In_Mean&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjso7_VkrBPYatqLKHxhrey5RJSC9uQgm_vh6ta1Xz6Gm75c7qyHTfUBgyqfPMVj8kV3847-I9m1S2iWM-EBboDjPDMwcNeKZ9NUPrrrhSYYbyR2Hcw18vjzbJegHocTe8EEZSBiTjpLr-OmKbZrP6u_MCJ6gBHx32Hzzdlj8-MM3RoPVu01leDKtfV/s804/rstudio_pbIORUmpQO.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;527&quot; data-original-width=&quot;804&quot; height=&quot;263&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjso7_VkrBPYatqLKHxhrey5RJSC9uQgm_vh6ta1Xz6Gm75c7qyHTfUBgyqfPMVj8kV3847-I9m1S2iWM-EBboDjPDMwcNeKZ9NUPrrrhSYYbyR2Hcw18vjzbJegHocTe8EEZSBiTjpLr-OmKbZrP6u_MCJ6gBHx32Hzzdlj8-MM3RoPVu01leDKtfV/w400-h263/rstudio_pbIORUmpQO.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;h4&gt;Uśrednione prognozy&lt;/h4&gt;&lt;/div&gt;&lt;div&gt;Wszystkie 4 prognozy możemy uśrednić i dostajemy:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6URqz142-J3K95KoCn0QrRyD0LzvIoWx1rOvgYLfqxC9IL4ToVWcXbM6_M9q8UQcfPeLrGoFbGL6EutCMjBHoI50P2VmxceqG3BggJeEgVdmGwshHpCilcGfMT_0x6FR5-rQiIrbmz0xyCdDi8SZwmRdfWHdAQj1pwp1lhXYqBWLd4Ea2Hv2BZzH/s807/rstudio_jsB2zXujLy.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;524&quot; data-original-width=&quot;807&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6URqz142-J3K95KoCn0QrRyD0LzvIoWx1rOvgYLfqxC9IL4ToVWcXbM6_M9q8UQcfPeLrGoFbGL6EutCMjBHoI50P2VmxceqG3BggJeEgVdmGwshHpCilcGfMT_0x6FR5-rQiIrbmz0xyCdDi8SZwmRdfWHdAQj1pwp1lhXYqBWLd4Ea2Hv2BZzH/w400-h260/rstudio_jsB2zXujLy.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;W sumie oczekiwać można spadków amerykańskiego indeksu w następnym tygodniu przy średnim ryzyku. Niemniej trzeba mieć na względzie, że badanie zawiera wiele uproszczeń, jak nieuwzględnienie poprawnego rozkładu reszt, brak korekty o liczbę współczynników modelu oraz wnioskowanie na podstawie zaledwie 30 ostatnich obserwacji, tzn. out-of-sample, wyłączając dopasowanie in-sample.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gieldowyracjonalista.blogspot.com/feeds/4193902594747141268/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2024/12/prognoza-kroczaca-z-ruchomym-oknem-w.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/4193902594747141268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3931049513337747406/posts/default/4193902594747141268'/><link rel='alternate' type='text/html' href='http://gieldowyracjonalista.blogspot.com/2024/12/prognoza-kroczaca-z-ruchomym-oknem-w.html' title='Prognoza krocząca z ruchomym oknem w rugarch (język R)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYkSjpS7i9K8dmtSud_G9scDhEjqaQW4Y1PZr2z1kZTRIblZFJEEBEaplFfkLQCwBGMwwqt4zYoznHF3MML3DFOvSyaS8EjZoDvlFFfreRTSVrSwyDnWZWIxxpTJdRYV3gkVoYSDKnieWlV8dAt2AFnzHgjFSBPuWSIAop0YxDk6A15EMA1LYdNP0U/s72-w400-h263-c/rstudio_7EPFIW1TbV.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>