robertmartin8 / PyPortfolioOpt

Financial portfolio optimisation in python, including classical efficient frontier, Black-Litterman, Hierarchical Risk Parity
https://pyportfolioopt.readthedocs.io/
MIT License
4.38k stars 940 forks source link

Feature request: Constraints on HRP #398

Open ghost opened 2 years ago

ghost commented 2 years ago

Hi,

plain vanilla HRP portfolio optimisation tends to allocate too much weight on assets with low volatility. It would be good for users to have the option to impose a lower and upper bound as in the EfficientFrontier class.

I think this paper does something similar: https://ideas.repec.org/p/sza/wpaper/wpapers328.html

Here is an example:

                                                    weights
Aegon Global Equity Market Neut                    0.636207
Artemis UK Select Fund I Acc                       0.025731
BNY Mellon Investment Funds - N                    0.084947
Baillie Gifford American Fund B                    0.013387
Baillie Gifford European Fund B                    0.015596
Baillie Gifford Global Income G                    0.024059
Baillie Gifford Pacific B Acc                      0.031928
Baillie Gifford Positive Change                    0.026448
Fidelity Funds - Global Technology Fund W-acc-gbp  0.020010
MI Chelverton UK Equity Growth                     0.098183
Vanguard FTSE Developed World e                    0.023504