Lägg till mål
Mål läggs till i portföljobjektet med funktionen add.objective(). Varje tillagt mål är ett separat objekt och lagras i platsen objectives i portföljspecifikationsobjektet. På så sätt är målen modulära och det är enkelt att lägga till, ta bort eller ändra målobjekten. Argumentet name måste vara en giltig R-funktion. Flera funktioner finns tillgängliga i paketet PerformanceAnalytics, men användardefinierade funktioner kan också användas som målfunktioner. De obligatoriska argumenten för add.objective() är portfolio som målet läggs till i, måltypen type, målnamnet name samt namngivna argument som skickas via ... till konstruktören för måltypen. Argument för målfunktionen anges som en namngiven lista till arguments.
Grundläggande måltyper:
return: Den här måltypen strävar efter att maximera målet.risk: Den här måltypen strävar efter att minimera målet.risk_budget: Den här måltypen strävar efter att minimera riskkoncentrationen eller bestraffa riskbidrag som överstiger den lägsta eller högsta tillåtna procentuella riskandelen.
Utöver de måltyper som anges ovan stöder PortfolioAnalytics även kvadratisk nytta och viktkoncentration som måltyper. Om du är intresserad av de övriga måltyperna kan du läsa hjälpfilerna för måltypskonstruktörerna. Hjälpfilerna innehåller en beskrivning av måltypen samt exempelkod.
Den här övningen är en del av kursen
Portföljanalys på avancerad nivå i R
Övningsinstruktioner
- Lägg till ett avkastningsmål i portföljspecifikationsobjektet
port_specsom du skapade i en tidigare övning. - Lägg till ett riskmål för att minimera portföljens standardavvikelse i
port_spec. - Lägg till ett riskbudgetmål där risken definieras som komponentstandardavvikelse i
port_spec. Sätt den minsta procentuella risken till 5 % och den högsta till 10 %. - Skriv ut objektet
port_spec.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object