Přidání cílů
Cíle se přidávají do objektu portfolia pomocí funkce add.objective(). Každý přidaný cíl je samostatný objekt uložený ve slotu objectives v objektu specifikace portfolia. Díky tomu jsou cíle modulární a lze je snadno přidávat, odebírat nebo upravovat. Argument name musí být platná funkce v R. K dispozici je několik funkcí z balíčku PerformanceAnalytics, ale jako účelové funkce lze použít i vlastní uživatelské funkce. Povinné argumenty pro add.objective() jsou: portfolio, do kterého se cíl přidává, type cíle, name cíle a pojmenované argumenty předávané přes ... konstruktoru daného typu cíle. Argumenty pro účelovou funkci se zadávají jako pojmenovaný seznam do parametru arguments.
Základní typy cílů:
return: Tento typ cíle se snaží maximalizovat danou hodnotu.risk: Tento typ cíle se snaží minimalizovat danou hodnotu.risk_budget: Tento typ cíle se snaží minimalizovat koncentraci rizika nebo penalizovat příspěvek k riziku, který překračuje minimální nebo maximální povolenou procentuální míru příspěvku k riziku.
Kromě výše uvedených typů cílů podporuje PortfolioAnalytics také typy cílů pro kvadratickou utilitu a koncentraci vah. Pokud tě zajímají další typy omezení, podívej se do souborů nápovědy pro konstruktory omezení. Tyto soubory obsahují popis daného typu omezení i ukázkový kód.
Toto cvičení je součástí kurzu
Intermediate Portfolio Analysis in R
Pokyny k cvičení
- Přidej výnosový cíl do objektu specifikace portfolia
port_spec, který jsi vytvořil/a v předchozím cvičení. - Přidej rizikový cíl minimalizující směrodatnou odchylku portfolia do
port_spec. - Přidej cíl rizikového rozpočtu, kde je riziko definováno jako složková směrodatná odchylka, do
port_spec. Nastav minimální procentuální riziko na 5 % a maximální na 10 %. - Vypiš objekt
port_spec.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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