Kom igångKom igång gratis

Lös ett enkelt portföljoptimeringsproblem

I den här övningen lär du dig hur du löser ett enkelt portföljoptimeringsproblem med PortfolioAnalytics. Du kommer att se hur du skapar ett portföljspecifikationsobjekt, lägger till restriktioner och målsättningar samt löser optimeringsproblemet. Målet är att konstruera en portfölj med minsta möjliga varians, med restriktionerna att portföljen ska vara fullinvesterad och enbart innehålla långa positioner. Det finns två restriktioner i det här problemet: fullinvesteringsrestriktionen innebär att vikterna måste summera till 1, och long-only-restriktionen innebär att alla vikter måste vara större än eller lika med 0 (dvs. blankning är inte tillåten).

Den här övningen är en del av kursen

Portföljanalys på avancerad nivå i R

Visa kurs

Övningsinstruktioner

  • Skapa ett portföljspecifikationsobjekt med tillgångsnamnen från datamängden index_returns och namnge objektet port_spec.
  • Lägg till en fullinvesteringsrestriktion – att vikterna summerar till 1 – till objektet port_spec.
  • Lägg till en long-only-restriktion – att vikten för varje tillgång ligger mellan 0 och 1 – till objektet port_spec.
  • Lägg till en målsättning att minimera portföljens standardavvikelse till objektet port_spec.
  • Lös portföljoptimeringsproblemet med optimize_method = "ROI" och tilldela resultatet av optimeringen till ett objekt med namnet opt.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))

# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")

# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")

# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")

# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")
Redigera och kör kod