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
Övningsinstruktioner
- Skapa ett portföljspecifikationsobjekt med tillgångsnamnen från datamängden
index_returnsoch namnge objektetport_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 namnetopt.
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 = "___")