With reference to this discussion on Quantopian:
Here is the spreadsheet which seems to prove Scipy.Optimise.Minimise is not a good way of finding the minimum portfolio volatility. Or at least not as drafted.
Quote from James Christopher:
Markowitz style portfolio optimization is ubiquitous and the bedrock of modern portfolio theory. Though it is not without flaws…
- Assumes normality in returns
- Requires computation of a covariance matrix
- Requires inverting of a covariance matrix
- Often ends up highly concentrated in one security
An alternative presented by Konno and Yamazaki in 1991 suggested that Markowitz style portfolio optimization could be replaced/improved with a model utilizing the Mean Absolute Deviation (MAD) as a measure of risk. Some benefits of MAD portfolio optimization they claim are it…
- Requires no computation or inversion of a covariance matrix
- Is computationally more efficient as it solves a linear optimization vs a quadratic optimization
- Does not assume normality of returns
In their paper Portfolio Optimization: MAD vs. Markowitz Beth Bower, and Pamela Wentz show there is little significance between Markowitz and MAD portfolios. They went on to compute the tangent portfolio for both Markowitz and MAD. I stopped at the minimum variance portfolio as there is a non trivial amount of minimum variance material on Quantopian for comparison.
The code in the notebook is directly copyable into the IDE.