ÎncepețiÎncepe gratuit

Impunerea constrângerilor asupra ponderilor

Investitorii sunt adesea supuși unor constrângeri privind valorile maxime admise pentru ponderile portofoliului. Aceste constrângeri pot fi, de fapt, un avantaj: o pondere maximă limitează concentrarea portofoliului în anumite active. Există însă și un dezavantaj – același randament țintă poate deveni imposibil de atins sau poate fi obținut doar cu prețul unei volatilități mai mari.

Reține din exercițiul anterior că funcția portfolio.optim() îți permite să setezi constrângeri asupra ponderilor prin argumentul reshigh. Acesta acceptă un vector cu ponderile maxime pentru fiecare activ.

În acest exercițiu, vei crea trei portofolii cu constrângeri diferite asupra ponderilor maxime. Este important să cunoști structura rezultatului returnat de portfolio.optim(). Această funcție creează o listă cu patru componente: (i) $pw: ponderile portofoliului, (ii) $px: randamentele portofoliului global, (iii) $pm: randamentul așteptat al portofoliului, (iv) $ps: abaterea standard a randamentelor portofoliului.

Acest exercițiu face parte din cursul

Introducere în analiza portofoliului în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează trei vectori de ponderi maxime pentru fiecare activ (coloană) din returns, folosind funcția rep(). Primul vector va conține ponderi maxime de 100%, al doilea de 10%, iar al treilea de 5%. Numește-i max_weights1, max_weights2, respectiv max_weights3.
  • Creează un portofoliu optim cu ponderi maxime de 100%, numit opt1.
  • Creează un portofoliu optim cu ponderi maxime de 10%, numit opt2.
  • Creează un portofoliu optim cu ponderi maxime de 5%, numit opt3.
  • Calculează câte active au o pondere mai mare de 1% în fiecare portofoliu. Accesează ponderile folosind $pw după numele portofoliului.
  • Afișează volatilitățile (abaterile standard $ps) ale celor trei portofolii create.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
___$__
___$__

Editează și rulează codul