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
Instrukcje do ćwiczenia
- Utwórz trzy wektory maksymalnych wag dla każdego aktywa (kolumny) w zbiorze
returns, korzystając z funkcjirep(). 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
$pwpo 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
___$__
___$__