Sharpe Ratio & Sortino Ratio
9 min czytania
Compare risk-adjusted returns across strategies using the two most important performance ratios in quantitative finance.
9 min czytania
Compare risk-adjusted returns across strategies using the two most important performance ratios in quantitative finance.
Backtest z Sharpe 3,0 i backtest z Sharpe 0,6 mogą opisywać tę samą strategię — różnica leży w tym, co wstawiasz do mianownika. Ta lekcja jest o tym, jak poprawnie zbudować mianownik.
Wskaźnik Sharpe'a mierzy nadwyżkową stopę zwrotu na jednostkę całkowitej zmienności: SR = (R_p − R_f) / σ_p. Wskaźnik Sortino zastępuje σ_p odchyleniem ujemnym σ_d, więc tylko straty poniżej celu (MAR) liczą się jako ryzyko. Oba są zazwyczaj annualizowane przez pomnożenie przez √(okresów na rok) — dla rynku krypto działającego 24/7 to √365 dla danych dziennych lub √(365·24) dla godzinowych.
Wymagania wstępne: powinieneś czuć się swobodnie z pojęciami średniej i odchylenia standardowego, zanim przejdziesz dalej.
Wskaźnik Sharpe'a (William F. Sharpe, 1966) to najczęściej cytowana miara zwrotu skorygowanego o ryzyko w finansach:
SR = \frac{R_p - R_f}{\sigma_p}
Gdzie:
Oryginalny artykuł Sharpe'a definiuje σ na szeregu zwrotów nadwyżkowych (r_i − r_f,i), a nie surowych zwrotów. W praktyce, gdy R_f jest stałe lub równe zero, σ z nadwyżkowych i całkowitych zwrotów jest identyczne — więc rozróżnienie ma znaczenie tylko wtedy, gdy stopa wolna od ryzyka istotnie się waha (rzadko dla krótkoterminowych strategii krypto, częściej w wieloletnich badaniach akcji).
Rynki akcyjne handlują ~252 dni w roku, więc Sharpe akcyjny annualizujemy jako SR × √252. Krypto handluje 24/7, więc właściwym współczynnikiem jest √365 dla zwrotów dziennych i √(365·24) ≈ 93,6 dla godzinowych.
| Okres | Okresów/rok | Annualizacja √n |
|---|---|---|
| Dzienny (krypto, 24/7) | 365 | ≈ 19,10 |
| Dzienny (TradFi) | 252 | ≈ 15,87 |
| Godzinowy (krypto) | 8 760 | ≈ 93,60 |
| Tygodniowy | 52 | ≈ 7,21 |
| Miesięczny | 12 | ≈ 3,46 |
Zawsze ujawniaj podstawę annualizacji. "Sharpe 1,5" bez podanego okresu jest bezwartościowe — może to być wartość dzienna, miesięczna albo annualizowana.
Wskaźnik Sharpe'a traktuje 5% dzień wzrostowy i 5% dzień spadkowy jako tak samo "ryzykowne", bo wariancja jest symetryczna (kwadraty odchyleń nie rozróżniają znaku). Dla strategii podążających za trendem, long-vol lub asymetrycznych strategii krypto to problem — Sharpe karze właśnie tę stronę zmienności, za którą ci płacą.
Sortino i Price (1994) zastępują σ odchyleniem ujemnym σ_d, sumując tylko kwadraty niedoborów poniżej docelowej stopy (MAR — Minimum Acceptable Return, minimalna akceptowalna stopa zwrotu):
\sigma_d = \sqrt{\frac{1}{n} \sum_{i=1}^{n} \min(r_i - \text{MAR},\ 0)^2}
\text{Sortino} = \frac{R_p - \text{MAR}}{\sigma_d}
Sharpe traktuje 5% dzień wzrostowy i 5% dzień spadkowy jako tak samo ryzykowne, bo wariancja jest symetryczna. Sortino (Sortino i Price, 1991/1994) zastępuje σ przez σ_d, które sumuje tylko kwadraty niedoborów poniżej MAR. Efekt: strategie z dodatnią skośnością (podążające za trendem, long-vol) wreszcie wyglądają na papierze tak dobrze, jak się czują w praktyce.
| Miara | Licznik | Mianownik (ryzyko) | Karze zmienność na plus? | Najlepsze dla |
|---|---|---|---|---|
| Sharpe | R_p − R_f | σ_p (całkowite std) | Tak | Strategie powracające do średniej, zwroty bliskie Gaussa |
| Sortino | R_p − MAR | σ_d (ujemne std) | Nie | Strategie podążające za trendem, asymetryczne |
| Calmar | Annualizowany zwrot | Maksymalny drawdown | Nie | Ocena długoterminowa, czytelność dla detalistów |
| MAR (Managed Accounts Reports) | CAGR | Maksymalny drawdown | Nie | CTA, kontekst porównań funduszy |
| Information Ratio | R_p − R_benchmark | Tracking error | Tak | Wynik aktywny względem benchmarku |
Sortino jest zwykle ~1,3–1,5× wyższe od Sharpe'a dla tej samej strategii, gdy zwroty mają mniej negatywnej skośności niż dodatniej. Jeśli twoje Sortino jest niższe od Sharpe'a, masz ujemną skośność — duże, rzadkie straty dominują w lewym ogonie rozkładu.
Rozważ bota mean-reversion na BTC z 365 dziennymi zwrotami:
Krok po kroku:
Różnica między 0,96 a 1,36 to premia za asymetrię — strona spadkowa strategii jest istotnie mniejsza od jej całkowitej zmienności, więc Sortino ją nagradza.
Zasady kciuka dla annualizowanego Sharpe'a w detalicznym kontekście krypto (zastrzeżenia poniżej):
| Annualizowane Sharpe | Interpretacja |
|---|---|
| < 0 | Strategia stratna |
| 0 – 1 | Marginalna; może być szumem |
| 1 – 2 | Przyzwoita przewaga detaliczna |
| 2 – 3 | Silna; rzadka dla strategii dyskrecjonalnych, częsta dla systematycznych |
| > 3 | Podejrzana, chyba że to portfel wielostrategiowy, market-neutral albo HFT |
Sharpe powyżej 3 w pojedynczej detalicznej strategii w backteście niemal zawsze odzwierciedla overfitting, look-ahead bias albo survivorship bias — zobacz biasy w backtestingu.
Oba wskaźniki są parametryczne — zakładają, że σ podsumowuje ryzyko i że zwroty są z grubsza Gaussa. Liczą się trzy tryby porażki:
Likwidacje krypto, awarie giełd i ryzyko luk dają zwroty znacznie poza tym, co implikuje σ. Gdy ogony są grube, σ zaniża rzeczywiste ryzyko, a SR zawyża umiejętności. Wartości odstające mogą zniszczyć twój Sharpe — pojedyncze zdarzenie 8σ w próbie czyni wskaźnik bezużytecznym bez korekty odpornościowej.
Zobacz też skośność i kurtoza jako kontekst rozkładu: ujemna skośność + nadmierna kurtoza = SR/Sortino spłaszczają strategię.
Jeśli przetestujesz 100 wariantów strategii w backteście i zaraportujesz najlepszy Sharpe, zawyżyłeś oszacowanie o około √(2·ln(N))·σ_SR ≈ 3·σ_SR dla N=100. Deflated Sharpe Ratio (Bailey i López de Prado, 2014) koryguje ten efekt.
Błąd standardowy oszacowanego Sharpe'a wynosi w przybliżeniu:
SE(SR) \approx \sqrt{\frac{1 + 0.5 \cdot SR^2}{n}}
Dla n = 100 i SR = 1, SE ≈ 0,11 — co oznacza, że "Sharpe 1,0" to w rzeczywistości "1,0 ± 0,22" przy 95% pewności. Poniżej 100 transakcji twoje oszacowanie punktowe to szum. Probabilistic Sharpe Ratio (PSR) daje ci wersję skorygowaną o pewność.
Bailey i López de Prado (2012, 2014) proponują dwie korekty:
Jeśli publikujesz wyniki lub alokujesz prawdziwy kapitał na podstawie liczby Sharpe'a, raportuj PSR obok niej. PSR < 95% przy "świetnym" Sharpe'ie zwykle oznacza, że wynik nie jest statystycznie odróżnialny od szumu.
Wskaźnik Sharpe'a to SR = (R_p − R_f) / σ_p, gdzie R_p to zwrot portfela, R_f to stopa wolna od ryzyka, a σ_p to odchylenie standardowe nadwyżkowych zwrotów. Zazwyczaj annualizuje się go przez pomnożenie przez √(okresów na rok) — √365 dla dziennych zwrotów krypto.
Sortino zastępuje całkowite odchylenie standardowe σ_p odchyleniem ujemnym σ_d, które liczy tylko kwadraty niedoborów poniżej docelowej stopy (MAR). To powstrzymuje karanie zmienności po stronie wzrostów — przydatne dla strategii podążających za trendem lub asymetrycznych, gdzie dodatnia skośność jest cechą, a nie ryzykiem.
Pomnóż przez √365, nie √252. Krypto handluje 24/7, więc wszystkie 365 dni dostarcza zwrotów. Dla zwrotów godzinowych użyj √(365·24) ≈ 93,6. Zawsze ujawniaj podstawę annualizacji, gdy raportujesz wartość Sharpe'a.
Dla annualizowanych detalicznych strategii krypto: SR powyżej 1 jest przyzwoite, powyżej 2 jest mocne, a powyżej 3 podejrzane, chyba że prowadzisz strategię wielowątkową lub HFT. Wyniki powyżej 3 z pojedynczej strategii w backteście zwykle odzwierciedlają overfitting lub survivorship bias.
Ujemna skośność. Sortino jest normalnie wyższe od Sharpe'a, ponieważ odchylenie ujemne σ_d jest mniejsze od całkowitego σ. Jeśli u ciebie jest niższe, twój rozkład strat ma więcej masy w lewym ogonie niż w prawym — duże, rzadkie straty dominują ryzyko po stronie spadkowej.
Nie. Błąd standardowy oszacowanego Sharpe'a wynosi w przybliżeniu √((1 + 0,5·SR²) / n). Dla n = 30 i SR = 1 twój 95% przedział ufności obejmuje mniej więcej ±0,4 — wystarczająco szeroko, że "Sharpe 1,0" jest statystycznie nieodróżnialne od "Sharpe 0,6" lub "Sharpe 1,4". Poczekaj na 100+ obserwacji.
PSR (Bailey i López de Prado, 2012) podaje prawdopodobieństwo, że prawdziwy Sharpe przekracza benchmark, warunkowo na liczebności próby, skośności i kurtozie. To właściwa miara, gdy chcesz zapytać "czy to Sharpe jest statystycznie realne?", a nie tylko zgłaszać oszacowanie punktowe.
Wskaźnik Sharpe'a sam w sobie jest statystyką signal-to-noise — średnia względem odchylenia. Dla głębszego ujęcia SNR w miarach tradingu przejdź do Signal-to-Noise Ratio.