Individual Data Lab 2
- Portfolio Construction (portfolio optimization)
Note 1: Review what you have learned in DataCamp assignments (e.g., Introduction to Portfolio Analysis in Python).¶ Note 2: To deep dive into what each function does, use the help function, e.g., run "help(npf.npv)."
1. Craft an all-weather portfolio. Pick your own portfolio of stocks following an investment theme that has stood and will stand the test of time. Extract the data from Yahoo Finance/Refinitiv/any other platforms and explore the statistical distribution of each stock's past 5-year returns.
2. Build an equally-weighted all-weather portfolio of your stock picks. Then, deep dive into the return characteristics of the portfolio (i.e., annualized portfolio return and volatility, portfolio's Sharpe ratio, portfolio's daily return profile - mean, volatility, skewness, kurtosis). Finally, draw the cumulative return of your all-weather portfolio for the past five years.
3. Repeat (2) but with the maximum Sharpe portfolio and minimum volatility portfolio.
3.1 With maximum Sharpe portfolio
3.2 With minimum volatility portfolio.
4. [Optional Bonus] With PyPortfolioOpt, how can you further improve your all-weather portfolio construction?
Hint: The Black-Litterman model (https://pyportfolioopt.readthedocs.io/en/latest/BlackLitterman.html) to express subjective views and L2 regularisation to alleviate extreme portfolio allocation (i.e., weights).