Aan de slagGa gratis aan de slag

Los een eenvoudig portefeuille-optimalisatieprobleem op

In deze eerste oefening leer je een eenvoudig portefeuille-optimalisatieprobleem op te lossen met PortfolioAnalytics. Je leert hoe je een portfoliospecificatie-object maakt, beperkingen en doelstellingen toevoegt, en het optimalisatieprobleem oplost. Het portefeuilleprobleem is het samenstellen van een minimumvariantieportefeuille met volledige-investering en alleen-long beperkingen. De doelstelling is om de portefeuillevariantie te minimaliseren. Er zijn twee beperkingen in dit probleem: de volledige-investeringsbeperking betekent dat de gewichten moeten optellen tot 1, en de alleen-long beperking betekent dat alle gewichten groter dan of gelijk aan 0 moeten zijn (dus geen shortposities toegestaan).

Deze oefening maakt deel uit van de cursus

Gevorderde portefeuilleanalyse in R

Cursus bekijken

Oefeninstructies

  • Maak een portfoliospecificatie-object met activanamen uit de index_returns-gegevensset en noem het object met de portfoliospecificatie port_spec.
  • Voeg een volledige-investeringsbeperking toe aan het object port_spec zodat de gewichten optellen tot 1.
  • Voeg een alleen-long beperking toe aan het object port_spec zodat het gewicht van een actief tussen 0 en 1 ligt.
  • Voeg een doelstelling toe om de standaarddeviatie van de portefeuille te minimaliseren aan het object port_spec.
  • Los het portefeuille-optimalisatieprobleem op met optimize_method = "ROI". Sla de resultaten van de optimalisatie op in een object met de naam opt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 = "___")
Code bewerken en uitvoeren