Stress test portfela 2026 PL — Monte Carlo, scenariusze

Stress test portfela retail 2026: jak symulować Wielki Kryzys, Dot-com, GFC, COVID. Monte Carlo w Excelu i Pythonie, przykłady 60/40, glide path, narzędzia.

13 min czytania

Stress test portfela 2026 PL — Monte Carlo, scenariusze, metoda

Stress test portfela to systematyczna procedura sprawdzania, jak Twoje inwestycje zachowałyby się w warunkach ekstremalnych — historycznych krachów, pandemii, stagflacji, krachu walutowego. Banki centralne (Fed, EBC, NBP) używają stress testów na dużych instytucjach od ponad dekady; dla retail to ciągle stosunkowo świeży obszar, ale dostęp do darmowych narzędzi (Portfolio Visualizer, Python, Excel) sprawia, że każdy inwestor z 2 godzinami i podstawową znajomością arkuszy może przeprowadzić sensowny test. Ten artykuł pokazuje pięć historycznych scenariuszy referencyjnych, dwie metody (deterministyczna + Monte Carlo z N=10 000 iteracji), pełny przykład portfela 60/40 w PL realiach i praktyczne wnioski dla retail.

TL;DR — kluczowe liczby

  • Pięć historycznych krachów referencyjnych: Wielki Kryzys 1929 (S&P 500 −89%), Stagflacja 1973–74 (−48%), Dot-com 2000–02 (−49%), GFC 2007–09 (−57%), COVID 2020 (−34% w 1 miesiąc).
  • Monte Carlo standard: N = 10 000 iteracji, mean + SD z historycznych danych, rozkład normalny lub log-normalny.
  • Portfel 60/40 100 000 zł stress 2008: spadek do ~60 000 zł (−40% peak-to-trough), recovery 5 lat.
  • Portfel 60/40 100 000 zł stress COVID 2020: spadek do ~80 000 zł (−20% w 1 miesiąc), recovery 6 miesięcy.
  • Glide path 110-age: w wieku 30 lat 80% akcji, w wieku 50 lat 60% akcji, w wieku 70 lat 40% akcji.
  • Sugerowany emergency fund: 6–12 miesięcy wydatków cash, NIE liczony do stress testu.
  • Kluczowe metryki: max drawdown, recovery time, Sharpe stress-adjusted.

Stress test to narzędzie edukacyjne — pokazuje jak portfel zachowywałby się hipotetycznie. Nie jest predykcją przyszłych wyników.

Czym jest stress test i dlaczego retail go potrzebuje

Stress test to symulacja zachowania portfela inwestycyjnego w hipotetycznych warunkach skrajnych. W przeciwieństwie do "klasycznej" metryki Sharpe Ratio, która opisuje przeciętne ryzyko w spokojnych warunkach, stress test odpowiada na pytanie: "co się stanie, jeśli nadejdzie scenariusz pokroju 1929 / 2008 / 2020?".

Retail inwestor potrzebuje stress testu z trzech powodów. Po pierwsze, percepcja ryzyka jest często zaniżona — w hossie 2010–2021 wiele osób zapomniało, jak wygląda spadek o 50%. Po drugie, decyzje o alokacji powinny być podejmowane z wiedzą o najgorszym możliwym scenariuszu, nie tylko o oczekiwanej średniej. Po trzecie, stress test ujawnia "punkty zapalne" w portfelu — np. nadmierna ekspozycja na technologię w 2000 roku, albo na nieruchomości lewarowane w 2008.

Dwie szkoły stress testowania

  1. Historical scenario application — bierzesz historyczne ruchy aktywów (np. SPX -57% w 2008) i aplikujesz je do bieżącego składu portfela. Plus: oparte na realnych danych. Minus: zakłada, że "tym razem będzie tak samo".
  2. Monte Carlo simulation — generujesz N (typowo 10 000) losowych ścieżek zwrotu na podstawie statystyki rozkładu (mean, SD, ewentualnie skośność i kurtoza). Plus: pokrywa szerokie spektrum możliwych wyników. Minus: zakłada określony rozkład, który może nie odpowiadać rzeczywistym "tłustym ogonom".

W praktyce retail stosuje obie metody komplementarnie.

Pięć historycznych scenariuszy referencyjnych

1. Wielki Kryzys 1929–32

S&P 500 spadł o 89% (z 31,9 we wrześniu 1929 do 4,4 w lipcu 1932). Recovery do poprzedniego peaka zajęło 25 lat (1954). Obligacje skarbowe US Treasury w tym okresie zachowały się stabilnie (deflacja podniosła ich realną wartość). Złoto zostało zdewaluowane przez Roosevelta (1933).

2. Stagflacja 1973–74

S&P 500 spadł o 48% (1973–74) w warunkach jednoczesnej recesji i wysokiej inflacji (12% rocznie w USA). Bonds długoterminowe straciły realnie ~30%. Złoto wzrosło 4x (z 35 USD/uncja w 1971 do 850 USD w 1980). Surowce ogólnie radziły sobie dobrze.

3. Bańka Dot-com 2000–02

NASDAQ Composite spadł o 78% (z 5048 w marcu 2000 do 1114 w październiku 2002). S&P 500 spadł o 49%. Recovery NASDAQ do poprzedniego peaka: 15 lat (do 2015). Obligacje długoterminowe zarobiły +30% (Fed obniżył stopy z 6.5% do 1%).

4. Globalny Kryzys Finansowy (GFC) 2007–09

S&P 500 spadł o 57% (z 1565 w październiku 2007 do 666 w marcu 2009). Recovery: 4 lata (2013). Obligacje korporacyjne investment grade zarobiły +5–10%, high yield straciły -25%. Real estate (REIT) spadł o 70%.

5. Pandemia COVID 2020

S&P 500 spadł o 34% w 33 dniach (z 3393 w lutym 2020 do 2237 w marcu 2020). Recovery: 6 miesięcy (do sierpnia 2020). Bonds zarobiły +5% w marcu (flight to safety). Złoto +20% w roku 2020. Krypto w marcu spadło -50%, ale do końca roku +300% YoY.

Metodologia — jak przeprowadzić stress test krok po kroku

Krok 1 — opisz aktualną alokację

Zapisz w arkuszu udział każdej klasy aktywów w portfelu:

Klasa Wartość zł % portfela
Akcje globalne (VWCE) 60 000 60%
Obligacje globalne (AGGH) 30 000 30%
Złoto (4GLD) 5 000 5%
Krypto (BTC) 5 000 5%
Razem 100 000 100%

Krok 2 — historical scenario application

Dla każdego scenariusza referencyjnego zastosuj % spadek do każdej klasy:

Klasa Bieżąca 2008 stress COVID stress Stagflacja stress
Akcje 60 000 × (−57%) = 25 800 × (−34%) = 39 600 × (−48%) = 31 200
Bonds 30 000 × (+5%) = 31 500 × (+5%) = 31 500 × (−30%) = 21 000
Złoto 5 000 × (+5%) = 5 250 × (+25%) = 6 250 × (+300%) = 20 000
Krypto 5 000 n/a (brak w 2008) × (−50%) = 2 500 n/a
Razem 100 000 62 550 (−37%) 79 850 (−20%) 72 200 (−28%)

Najgorszy scenariusz dla tego portfela: GFC 2008, spadek o 37%. Obligacje stabilizują portfel; złoto chroni w stagflacji.

Krok 3 — Monte Carlo simulation w Excelu

Excel formula dla pojedynczego roku zwrotu z rozkładu normalnego:

=ŚREDNIA + ROZKŁ.NORMALNY.STANDARD.ODWR(LOS()) * ODCH.STANDARDOWE

Dla portfela 60/40 (akcje 7% mean, 16% SD; bonds 3% mean, 6% SD), z korelacją 0:

=0.6 * (0.07 + NORMSINV(RAND()) * 0.16) + 0.4 * (0.03 + NORMSINV(RAND()) * 0.06)

Skopiuj formułę do 10 000 wierszy i 30 kolumn (30 lat). Każdy wiersz to jedna ścieżka. Statystyki:

  • Percentyl 5%: najgorsze 5% scenariuszy. To Twój "stress floor".
  • Percentyl 50% (mediana): typowy scenariusz.
  • Percentyl 95%: najlepsze 5%.

Przykład wyniku Monte Carlo dla portfela 60/40, horyzont 30 lat, kapitał 100 000 zł:

  • Percentyl 5%: ~280 000 zł końcowo (CAGR 3.5%).
  • Percentyl 50%: ~660 000 zł (CAGR 6.5%).
  • Percentyl 95%: ~1 500 000 zł (CAGR 9.5%).

Krok 4 — sensitivity analysis

Pytanie: jak portfel reaguje na ±10% zmian wybranego parametru?

Parametr Bazowa -10% +10% Wpływ na CAGR
% akcji w portfelu 60% 50% 70% -0.5% / +0.5%
Stopa procentowa Fed 3% 2% 4% +0.3% / -0.3%
Inflacja 2.5% 1.5% 3.5% -0.4% realnie
EUR/PLN 4.30 3.87 4.73 -2% / +2% (jednorazowo)

Przykład — portfel 60/40 PL inwestor stress test

Hipotetyczny inwestor: 35 lat, portfel 100 000 zł, 60% VWCE + 40% AGGH (hedged EUR), horyzont do 65 lat (30 lat).

Stress 1929 (Wielki Kryzys)

VWCE -89% (jak SPX): 60 000 → 6 600 zł. AGGH -10% (hipotetycznie): 30 000 → 27 000 zł. Plus 10 000 cash dla scenariusza referencyjnego (nie liczony do stress, bo to emergency fund). Total stress portfela: 33 600 zł (-66%). Recovery time: ~25 lat. Wniosek: jeśli scenariusz 1929 nadejdzie w wieku 60, prawdopodobnie nie zdążysz odzyskać kapitału przed planowaną emeryturą.

Stress 2008 (GFC)

VWCE -50% (proxy z MSCI World 2008): 60 000 → 30 000 zł. AGGH +5%: 30 000 → 31 500 zł. Total: 61 500 zł (-38%). Recovery: 5 lat (do 2013). Wniosek: w wieku 35 lat to akceptowalne — masz 30 lat na recovery.

Stress COVID 2020

VWCE -32% (1 miesiąc, marzec 2020): 60 000 → 40 800 zł. AGGH +5%: 30 000 → 31 500 zł. Total: 72 300 zł (-28%). Recovery: 6 miesięcy. Wniosek: bardzo szybkie odbicie, ale dla emerytów w fazie wypłat (sequence of returns risk) ten miesięcz mógłby zaboleć.

Monte Carlo 30 lat

10 000 iteracji, rozkład log-normalny zwrotów, korelacja akcji-bonds = 0.1.

  • Percentyl 1%: 180 000 zł końcowo (CAGR 2%).
  • Percentyl 5%: 280 000 zł (CAGR 3.5%).
  • Mediana: 660 000 zł (CAGR 6.5%).
  • Percentyl 95%: 1 500 000 zł (CAGR 9.5%).
  • Percentyl 99%: 2 600 000 zł (CAGR 11.5%).

Prawdopodobieństwo, że nominalnie nie pobijesz inflacji (3% rocznie = 245 000 zł końcowo): ~3% (oparte na percentylu 3%). Niskie, ale nie zerowe.

Top narzędzia do stress testu retail

Narzędzie Kraj Cena Funkcjonalność Dla kogo
Portfolio Visualizer USA Free / Pro 19 USD/m Backtest, Monte Carlo, factor analysis Retail anglojęzyczny
Excel + RAND() Free Custom Monte Carlo DIY zaawansowani
Python (numpy/pandas) Free Pełna swoboda Programiści
Goalbots PL 49 zł/m PL-friendly portfolio analysis Polski retail
Kvanti.pl PL 99 zł/m Backtest PL ETF + funduszy Polski retail
Riskalyze USA 250+ USD/m Risk number score Doradcy
Morningstar Office USA 1 000+ USD/y Pełen pakiet analityczny Profesjonaliści

Portfolio Visualizer (free wersja) wystarcza do większości potrzeb retail. Sekcja "Monte Carlo Simulation" pozwala wprowadzić do 5 klas aktywów i symulować 30+ lat.

Glide path — jak zmieniać alokację z wiekiem

Zasada "110 minus wiek = % akcji" (uproszczone od starego "100 minus wiek"):

Wiek % akcji % bonds Stress 2008 spadek Stress COVID spadek
25 85% 15% -45% -28%
35 75% 25% -40% -25%
45 65% 35% -34% -22%
55 55% 45% -28% -18%
65 45% 55% -23% -15%
75 35% 65% -18% -12%

Dla 65-latka spadek o 23% jest psychologicznie znacznie cięższy niż dla 35-latka -40% — bo brak czasu na recovery + bieżące wypłaty.

Sequence of returns risk — najgorszy scenariusz dla emeryta

Stress test musi uwzględniać "sequence of returns risk" — ryzyko, że duży spadek nastąpi tuż po przejściu na emeryturę. Przykład: dwóch emerytów 65 lat, każdy 1 000 000 zł portfela, wypłaty 4% rocznie (40 000 zł).

Emeryt A — pierwszy rok emerytury 2008 (-40% portfela): 1 000 000 → 600 000 → wypłata 40 000 → 560 000. Następne lata recovery, ale wypłaty dalej "zjadają" niezbędną bazę. Po 30 latach: kapitał wyczerpany w roku 23.

Emeryt B — pierwszy rok emerytury hossa (+15%): 1 000 000 → 1 150 000 → wypłata 40 000 → 1 110 000. Po 30 latach: kapitał ~2 000 000 zł.

Ten sam średni zwrot, ten sam plan wypłat — różnica fortuny zależy od kolejności lat. Wniosek: emeryt powinien mieć rezerwę 2–3 lat wypłat w cash + bonds krótkoterminowych, żeby nie "sprzedawać akcji w dołku".

2024 → 2025 → 2026 — kluczowe zmiany

  • 2024: T+1 settlement w US (28 maja 2024) — szybsza realizacja transakcji. Ryzyko płynności w skrajnych scenariuszach maleje.
  • 2025: Rozszerzenie ESMA stress test guidelines dla MMF (money market funds) i ETF.
  • 2026: KNF publikuje w I kwartale 2026 wytyczne dla retail inwestorów dot. risk management. Portfolio Visualizer dodaje krypto i ESG factors do stress testów.

Pułapki i edge cases

  • Korelacje rosną w kryzysie — w spokoju bonds i akcje mają korelację ~0.1; w marcu 2020 obie klasy spadały razem. Stress test musi to uwzględniać.
  • Tłuste ogony (fat tails) — rozkład normalny zaniża prawdopodobieństwo ekstremów. Lepiej używać rozkładu t-Studenta lub historycznych danych.
  • Brak danych dla nowych aktywów — krypto ma <15 lat historii; brak GFC 2008 stress dla BTC. Trzeba ekstrapolować z analogii (gold, tech bubble).
  • Currency mismatch — VWCE w EUR a portfel PLN. W stress testu PLN może osłabić się dodatkowo o 20%, dając "ukryty" buffer.
  • Sprzedaż w panice — najlepszy plan stress test nie pomoże, jeśli sprzedasz wszystko w marcu 2020. Disciplina > taktyka.
  • Emergency fund poza testem — 6–12 miesięcy wydatków cash to NIE jest część portfela inwestycyjnego. Nie liczona do stress testu.

Methodology — kompletny workflow Python

Pseudo-kod Python dla stress testu Monte Carlo 60/40:

import numpy as np
import pandas as pd

N_SIM = 10000
N_YEARS = 30
INITIAL = 100000

eq_mean, eq_sd = 0.07, 0.16
bd_mean, bd_sd = 0.03, 0.06
correlation = 0.1
allocation = 0.6  # 60% akcji

cov = np.array([[eq_sd**2, correlation*eq_sd*bd_sd],
                [correlation*eq_sd*bd_sd, bd_sd**2]])
returns = np.random.multivariate_normal(
    mean=[eq_mean, bd_mean], cov=cov, size=(N_SIM, N_YEARS))
portfolio_returns = (
    allocation * returns[:,:,0] + (1-allocation) * returns[:,:,1])
final_values = INITIAL * np.prod(1 + portfolio_returns, axis=1)

print(f"Mediana: {np.percentile(final_values, 50):,.0f} zł")
print(f"Percentyl 5%: {np.percentile(final_values, 5):,.0f} zł")
print(f"Percentyl 95%: {np.percentile(final_values, 95):,.0f} zł")

W ~10 linijkach masz pełny stress test Monte Carlo. Dla danych historycznych zamiast normalnego rozkładu można użyć bootstrapu (losowanie ze zwracaniem z faktycznych historycznych zwrotów).

FAQ

1. Jak często powinienem robić stress test portfela? Z perspektywy retail praktyki — raz w roku przy okazji rocznej rewizji portfela wystarczy. Dodatkowo po większych zmianach alokacji (>20% w jednej klasie) lub w warunkach narastającej zmienności rynkowej.

2. Czy stress test mówi mi, kiedy sprzedać? Nie. Stress test pokazuje, jak portfel zachowywałby się w hipotetycznych scenariuszach. To narzędzie planowania alokacji, nie market timing. Decyzja "kiedy sprzedać" wymaga innej analizy (i często jest błędem retail timing rynku).

3. Czy mogę zrobić stress test bez Excela ani Pythona? Tak. Portfolio Visualizer ma darmową sekcję "Monte Carlo Simulation" — wystarczy wprowadzić alokację i parametry. Goalbots i Kvanti.pl dają polskojęzyczne wersje.

4. Czy emergency fund powinien być w stress teście? Z perspektywy klasycznej teorii — nie. Emergency fund (3–12 miesięcy wydatków cash na koncie oszczędnościowym) to "płynnościowy bufor" osobny od portfela inwestycyjnego. Stress test dotyczy tylko portfela inwestycyjnego.

5. Czemu rozkład normalny niedoszacowuje ryzyka? Historyczne dane pokazują, że ekstremalne ruchy (-30% w miesiąc) są częstsze niż sugeruje rozkład normalny. Empiryczny rozkład ma "tłuste ogony" (fat tails) i ujemną skośność. Lepiej używać rozkładu t-Studenta z df=4–6 lub historycznego bootstrapu.

6. Co to jest "max drawdown"? Max drawdown to największy spadek od historycznego peak do dołka, bez powrotu w międzyczasie. Dla S&P 500 1929–32 max drawdown = -89%. Dla 60/40 portfela typowo -30 do -40% w głębokich kryzysach.

7. Czy stress test gwarantuje bezpieczeństwo portfela? Nie. Stress test pokazuje hipotetyczne scenariusze oparte na przeszłości lub modelu statystycznym. Realna przyszłość może mieć scenariusze, których nie ma w żadnym historycznym ani symulacyjnym repertoire. To narzędzie świadomości ryzyka, nie polisa.

8. Czy portfel "stress-proof" istnieje? Nie ma portfela odpornego na wszystkie scenariusze. Each portfolio ma swoje słabości — 100% akcji cierpi w 2008, 100% bonds w stagflacji, 100% krypto w bear marketach kryptowalutowych. Najlepsza obrona to dywersyfikacja klas aktywów + emergency fund + długi horyzont.


W aplikacji Freenance możesz śledzić bieżącą alokację portfela i automatycznie wyliczać max drawdown na podstawie historii — to ułatwia regularny stress test i porównywanie scenariuszy bez konieczności prowadzenia osobnego arkusza Excel.

Artykuł ma charakter informacyjny i edukacyjny. Stress test to narzędzie analizy hipotetycznych scenariuszy — nie predykcja przyszłych wyników. Każda decyzja inwestycyjna powinna być podjęta po konsultacji z licencjonowanym doradcą inwestycyjnym i z uwzględnieniem indywidualnej sytuacji finansowej. Inwestycje wiążą się z ryzykiem utraty kapitału.

Want full control over your finances?

Try Freenance for free
Start today

Your path to financial freedomstarts here

Join thousands of investors who use Freenance to manage their personal finances.

Start for free
14 days free
No credit card
256-bit encryption