Zacznij terazZacznij za darmo

Nakładanie ograniczeń na wagi portfela

Inwestorzy często podlegają ograniczeniom dotyczącym maksymalnych wartości wag portfela. Takie ograniczenia mogą być jednak zaletą – portfel będzie mniej skoncentrowany na wybranych aktywach. Istnieje też pewna wada: osiągnięcie tego samego docelowego zwrotu może okazać się niemożliwe lub nastąpić kosztem wyższej zmienności.

Pamiętaj z poprzedniego ćwiczenia, że funkcja portfolio.optim() pozwala ustawiać ograniczenia wag za pomocą argumentu reshigh. Argument reshigh przyjmuje wektor maksymalnych wag dla każdego aktywa.

W tym ćwiczeniu utworzysz trzy portfele z różnymi ograniczeniami maksymalnych wag. Warto znać strukturę wyników funkcji portfolio.optim() – zwraca ona listę z czterema elementami: (i) $pw: wagi portfela, (ii) $px: stopy zwrotu całego portfela, (iii) $pm: oczekiwana stopa zwrotu portfela, (iv) $ps: odchylenie standardowe stóp zwrotu portfela.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy portfela w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz trzy wektory maksymalnych wag dla każdego aktywa (kolumny) w zbiorze returns, korzystając z funkcji rep(). Pierwszy wektor powinien zawierać maksymalne wagi równe 100%, drugi 10%, a trzeci 5%. Nazwij je odpowiednio: max_weights1, max_weights2, max_weights3.
  • Utwórz optymalny portfel z maksymalnymi wagami 100% i nazwij go opt1.
  • Utwórz optymalny portfel z maksymalnymi wagami 10% i nazwij go opt2.
  • Utwórz optymalny portfel z maksymalnymi wagami 5% i nazwij go opt3.
  • Oblicz, ile aktywów ma wagę większą niż 1% dla każdego portfela. Wagi odczytaj, używając $pw po nazwie portfela.
  • Wyświetl zmienności (odchylenia standardowe $ps) trzech utworzonych portfeli.

Interaktywne ćwiczenie praktyczne

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

# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___

# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)

# Create an optimum portfolio with max weights of 10%


# Create an optimum portfolio with max weights of 5%


# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)

# Print portfolio volatilites 
opt1$ps
___$__
___$__

Edytuj i uruchom kod