1. Learn
  2. /
  3. Courses
  4. /
  5. Analiză intermediară a portofoliului în R

Connected

Exercise

Optimizare pe perioadă unică

Există două funcții pentru rularea optimizării: optimize.portfolio() și optimize.portfolio.rebalancing(). Acest exercițiu se concentrează pe optimizarea pe perioadă unică, iar exercițiul următor va folosi optimize.portfolio.rebalancing() pentru optimizarea cu reechilibrare periodică. optimize.portfolio() acceptă optimizarea pe perioadă unică. Principalele argumente sunt: R pentru randamentele activelor, portfolio pentru obiectul de specificare a portofoliului și optimize_method pentru a indica metoda de optimizare folosită la rezolvarea problemei. În multe cazuri, este util să specifici trace = TRUE pentru a stoca informații suplimentare pentru fiecare iterație/încercare a optimizării.

Sunt acceptate următoarele metode de optimizare:

  • DEoptim: Evoluție diferențială
  • random: Portofolii aleatoare
  • GenSA: Recoacere simulată generalizată
  • pso: Optimizare prin roiuri de particule
  • ROI: R Optimization Infrastructure pentru rezolvitoare de programare liniară și pătratică

Metoda de optimizare aleasă trebuie să se potrivească tipului de problemă pe care o rezolvi. De exemplu, o problemă care poate fi formulată ca problemă de programare pătratică ar trebui rezolvată cu un rezolvitor de programare pătratică, în timp ce o problemă non-convexă ar trebui rezolvată cu un rezolvitor global, cum ar fi DEoptim.

În acest exercițiu, vom defini problema de optimizare a portofoliului pentru a maximiza randamentul mediu și a minimiza deviația standard a portofoliului, cu un buget de risc bazat pe deviație standard, unde procentul minim de risc este 5%, iar cel maxim este 10%, cu constrângeri de investiție integrală și doar poziții long. Obiectivul de buget de risc necesită un rezolvitor global, așadar vom rezolva problema folosind portofolii aleatoare. Setul de portofolii aleatoare, rp, este generat folosind 500 de permutări pentru acest exercițiu.

Instructions

100 XP

Specificarea portofoliului a fost deja creată și se numește port_spec. În spațiul tău de lucru se află și randamentele, asset_returns.

  • Rulează o optimizare pe perioadă unică cu trace setat la TRUE, folosind "random" ca metodă de optimizare. Atribuie rezultatul optimizării unei variabile numite opt.
  • Afișează rezultatul optimizării.