Ceny aktywów a stopy zwrotu z aktywów
Celem inwestowania jest osiągnięcie zysku. Przychód lub strata zależy od zainwestowanej kwoty oraz zmian cen – a szczególnie istotna jest wysokość zysku względem wielkości inwestycji. Właśnie to mierzą finansowe stopy zwrotu: zmiany ceny jako ułamek ceny początkowej w danym horyzoncie czasowym, na przykład jednego dnia roboczego.
Wróćmy do zbioru danych eu_stocks. Zawiera on wartości indeksów, które możemy traktować jak ceny. Same indeksy nie są bezpośrednio inwestowalne, ale istnieje wiele instrumentów finansowych ściśle je odwzorowujących – na przykład fundusze inwestycyjne czy fundusze ETF.
W analizie finansowych szeregów czasowych często stosuje się również logarytmiczne stopy zwrotu (zwane też stopami zwrotu w ujęciu ciągłym). Są one logarytmem brutto stopy zwrotu – albo równoważnie – pierwszymi różnicami logarytmu cen.
Różnica między dziennymi cenami a dziennymi stopami zwrotu jest zazwyczaj wyraźnie widoczna, natomiast różnica między dziennymi stopami zwrotu a logarytmicznymi stopami zwrotu – zwykle niewielka. Jak się wkrótce przekonasz, jedną z zalet logarytmicznych stóp zwrotu jest uproszczenie obliczeń wielookresowych stóp zwrotu – wystarczy je po prostu zsumować!
W tym ćwiczeniu dokładniej zbadasz zbiór danych eu_stocks: narysuj wykres cen, zamień ceny na (netto) stopy zwrotu, a następnie na logarytmiczne stopy zwrotu.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w R
Instrukcje do ćwiczenia
- Użyj
plot(), aby wygenerować wykres danycheu_stocks. - Skorzystaj z gotowego kodu, aby przeliczyć dzienne ceny z
eu_stocksna dzienne nettoreturns. - Użyj
ts(), aby przekonwertowaćreturnsna obiektts. Ustaw argumentstartnac(1991, 130), a argumentfrequencyna260. - Wywołaj ponownie
plot(), aby wyświetlić dzienne netto stopy zwrotu. - Skorzystaj z gotowego kodu łączącego
diff()ilog(), aby obliczyćlogreturns. - Na końcu wywołaj
plot(), aby wyświetlić dzienne logarytmiczne stopy zwrotu.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Plot eu_stocks
# Use this code to convert prices to returns
returns <- eu_stocks[-1,] / eu_stocks[-1860,] - 1
# Convert returns to ts
returns <- ts(___, start = c(___, ___), frequency = ___)
# Plot returns
# Use this code to convert prices to log returns
logreturns <- diff(log(eu_stocks))
# Plot logreturns