Zacznij terazZacznij za darmo

Wyznaczanie portfela efektywnego w sensie średniej i wariancji

Portfel efektywny w sensie średniej i wariancji można wyznaczyć jako rozwiązanie problemu minimalizacji wariancji portfela przy założeniu, że oczekiwana stopa zwrotu portfela jest równa założonej stopie docelowej. Wygodną funkcją R służącą do tego celu jest portfolio.optim() z pakietu tseries. Domyślna implementacja tej funkcji wyznacza wagi portfela efektywnego pod warunkiem, że stopa zwrotu portfela jest równa stopie zwrotu portfela równoważonego. Jedynym wymaganym argumentem są miesięczne dane o stopach zwrotu składników portfela, dla których mają zostać wyznaczone wagi.

Zmienna returns zawierająca miesięczne stopy zwrotu akcji z indeksu DJIA jest już wczytana w konsoli.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy portfela w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Wczytaj bibliotekę tseries.
  • Utwórz portfel efektywny w sensie średniej i wariancji na podstawie miesięcznych stóp zwrotu, korzystając z domyślnych ustawień funkcji portfolio.optim() z docelową stopą zwrotu portfela równoważonego. Wynik przypisz do zmiennej opt.
  • Utwórz wektor wag na podstawie zoptymalizowanego portfela. Wagi portfela znajdziesz w opt$pw. Nazwij ten wektor pf_weights.
  • Nadaj nazwom aktywów etykiety, korzystając z dostarczonego kodu.
  • Wybierz z pf_weights te optymalne wagi, które są większe lub równe 1%, i przypisz je do zmiennej opt_weights.
  • Użyj funkcji barplot(), aby zwizualizować rozkład opt_weights.
  • Wyświetl oczekiwaną stopę zwrotu portfela (opt$pm) oraz jego zmienność (opt$ps).

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Load tseries


# Create an optimized portfolio of returns
opt <- portfolio.optim(___)

# Create pf_weights
pf_weights <- ___$pw

# Assign asset names
names(pf_weights) <- colnames(returns)

# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]

# Bar plot of opt_weights


# Print expected portfolio return and volatility
___$pm
___$ps
 
Edytuj i uruchom kod