Přidání omezení
Omezení se přidávají do objektu specifikace portfolia pomocí funkce add.constraint(). Každé přidané omezení je samostatný objekt uložený ve slotu constraints v objektu portfolia. Díky tomu jsou omezení modulární – lze je snadno přidávat, odebírat nebo upravovat. Povinné argumenty funkce add.constraint() jsou: portfolio, do kterého se omezení přidává, typ omezení type a pojmenované argumenty předávané přes ... do konstruktoru daného typu omezení.
Základní typy omezení:
- Omezení součtu vah
weight_sum,weight,leveragefull_investmentje speciální případ, který nastavujemin_sum = max_sum = 1dollar_neutralje speciální případ, který nastavujemin_sum = max_sum = 0
- Omezení jednotlivých vah aktiv
boxlong_onlyje speciální případ, který nastavujemin = 0amax = 1
- Omezení součtu vah aktiv podle skupiny (sektor, region, třída aktiv atd.)
group
- Omezení cílového průměrného výnosu
return
V tomto cvičení přidáš několik nejběžnějších typů omezení. Kromě základních typů uvedených výše podporuje PortfolioAnalytics také omezení počtu pozic, obratu, diverzifikace, expozice vůči faktorům a expozice pákovým efektem. Pokud tě zajímají ostatní typy omezení, prohlédni si soubory nápovědy k jejich konstruktorům – najdeš tam popis každého omezení i ukázkový kód.
Toto cvičení je součástí kurzu
Intermediate Portfolio Analysis in R
Pokyny k cvičení
- Přidej omezení
weight_sumtak, aby minimální i maximální součet vah byl roven 1. - Přidej omezení
boxtak, aby prvních pět aktiv mělo minimální váhu 10 % a zbývající aktiva minimální váhu 5 %. Maximální váha všech aktiv je 40 %. - Přidej omezení
grouptak, aby aktiva 1, 5, 7, 9, 10 a 11 tvořila první skupinu a aktiva 2, 3, 4, 6, 8 a 12 druhou skupinu. Pro každou skupinu nastav minimální váhu 40 % a maximální váhu 60 %.
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 the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object