ÎncepețiÎncepe gratuit

Calcularea frontierei eficiente folosind o grilă de randamente țintă

Așa cum ai văzut, o abordare pentru calcularea frontierei eficiente constă în a defini mai întâi grila de randamente țintă și apoi, pentru fiecare randament țintă, să identifici portofoliul cu un randament așteptat egal cu cel țintă, la cea mai mică varianță posibilă.

Dar care este o grilă rezonabilă de randamente țintă? Vei seta randamentul țintă maxim la valoarea maximă a randamentului mediu al acțiunilor. Ideal ar fi să setezi randamentul țintă minim la randamentul portofoliului cu varianță minimă. Deoarece nu cunoști încă acest randament, vei construi grila folosind minimul randamentelor medii ale tuturor acțiunilor.

În acest exercițiu, vei folosi o buclă for pentru a calcula grila de medii, abateri și ponderi potențiale ale portofoliului.

Acest exercițiu face parte din cursul

Introducere în analiza portofoliului în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează mediile pe coloane ale lui returns (folosind colMeans()) și numește rezultatul stockmu.
  • Creează o secvență (seq()) de lungime 50, care începe de la o rată fără risc de 1% și se termină la valoarea maximă a lui stockmu. Numește această secvență grid.
  • Inițializează doi vectori goali cu aceeași lungime ca grid folosind rep(), în care vei stoca mediile și abaterile standard ale portofoliului. Numește-i vpm și vpsd.
  • Inițializează o matrice goală cu 50 de rânduri și 30 de coloane. Numește-o mweights. Poți folosi funcția matrix() pentru aceasta.
  • Creează o buclă for care pornește de la prima valoare a lui grid și se termină la ultima. Bucla ar trebui să creeze un portofoliu numit opt folosind returns și cu un randament țintă egal cu valoarea curentă din grid.
  • La fiecare iterație, bucla for ar trebui să completeze vectorii vpm ($pm) și vpsd ($ps) cu valorile corespunzătoare din opt.
  • Stochează ponderile portofoliului rând cu rând în mweights ($pw).

Exercițiu interactiv practic

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

# Calculate each stocks mean returns


# Create a grid of target values
grid <- seq(from = ___, to = ___, length.out = ___)

# Create empty vectors to store means and deviations
vpm <- vpsd <- 

# Create an empty matrix to store weights
mweights <- matrix(NA, 50, 30)

# Create your for loop
for(i in 1:length(grid)) {
  opt <- portfolio.optim(x = ___, pm = ___[i])
  vpm[i] <- ___$__
  vpsd[i] <- ___$__
  mweights[i, ] <- ___$__
}
Editează și rulează codul