Analiza: Wskaźnik Sortino
Definicja :
Wskaźnik Sortino to modyfikacja wskaźnika Sharpe’a, opracowana przez Franka Sortino. W przeciwieństwie do wskaźnika Sharpe’a, ignoruje dodatnią zmienność i koncentruje się wyłącznie na spadkach (drawdownach), które są ryzykowne dla inwestora.
Interpretacja :
Wskaźnik pokazuje, jak dobrze zwrot rekompensuje ryzyko. Wynik wskazuje, ile procent nadwyżki zwrotu przypada na 1% ryzyka spadkowego.
Ogólnie przyjmuje się, że wartość wskaźnika powinna wynosić ≥ 2, ale należy także brać pod uwagę benchmark i sytuację rynkową.
Przykład :
Portfel :
- Stopa wolna od ryzyka (RFR) = 2%
- 2025-01-01 wpłata 1000
- 2025-03-03 zakup NASDAQ:AAPL (ilość: 1, cena: 190, prowizja: 0)
- 2025-04-11 data obliczenia wskaźnika Sortino. Ostatnia cena AAPL = 198,15
Wskaźnik Sortino portfela = 0,047%:
- Ryzyko spadkowe jest słabo kompensowane przez zwrot
- Każdy procent zaakceptowanego ryzyka przyniósł tylko 0,047% nadwyżki zwrotu
Wskaźnik Sortino benchmarku = −0,817%:
- Na każdy procent ryzyka spadkowego przypadała strata 0,817% względem stopy wolnej od ryzyka
Uwaga: Uwzględnij krótki, uproszczony okres użyty do obliczenia.
Obliczenia :
Sortino Ratio = (Rp − RFR) / DD
- Rp (Return of portfolio) — stopa zwrotu portfela (w %), liczona miesięcznie metodą TWR
- RFR (Risk Free Rate) — stopa wolna od ryzyka (z ustawień portfela); wartość roczna musi być przeliczona na okresową
- DD (Downside Deviation) — odchylenie standardowe tylko dla ujemnych wartości stóp zwrotu
Przykład obliczenia wskaźnika Sortino:
- Miesięczna RFR:
2 / 12 = 0.167% - Obliczenie Rp :
średnia stopa zwrotu portfela- Styczeń : 0
- Luty : 0
- Marzec : 3.2% (obtained: pv on March 31 → ((1032.13 − 1000) / 1000) * 100 )
- Kwiecień : −2.3% (obtained: ((1008.15 − 1032.13) / 1032.13) * 100 )
Rp = (0 + 0 + 3.2 − 2.3) / 4 = 0.225
- Obliczenie DD
- Styczeń : min(0, 0 − 0.167)² = 0.0279
- Luty : min(0, 0 − 0.167)² = 0.0279
- Marzec : min(0, 3.2 − 0.167)² = 0
- Kwiecień : min(0, −2.3 − 0.167)² = 6.1009
DD = ((0.0279 + 0.0279 + 0 + 6.1009) / 4)^(1/2) = 1.24%
- Obliczenie wskaźnika Sortino:
SR = (Rp − RFR) / DD = (0.225% − 0.167%) / 1.24% ≈ 0.047%
Pine Script (referencja):
//@version=6
indicator("Sortino ratio example")
method downsideDeviation(array<float> returns, series float targetReturn) =>
float sum = 0.0
for r in returns
if r >= targetReturn
continue
sum += math.pow(r - targetReturn, 2)
sum /= returns.size()
float result = math.sqrt(sum)
method sortinoRatio(array<float> returnsArray, series float annualBenchmark) =>
var int numberOfperiods = 12
if barstate.islast
float fixedPeriodReturn = annualBenchmark / numberOfperiods
float downsideDev = returnsArray.downsideDeviation(fixedPeriodReturn)
float avgReturn = returnsArray.avg()
float result = (avgReturn - fixedPeriodReturn) / downsideDev
array<float> arr = array.from(0, 0, 3.2, -2.3)
float sortino = sortinoRatio(arr, 2)
plot(sortino, precision = 3)
Note:
Jeśli wszystkie transakcje zostały dokonane w bieżącym miesiącu względem daty obliczenia wskaźnika, wartość nie zostanie wyświetlona – ponieważ nie ma zakończonego miesiąca kalendarzowego.
Linki: