Markowitz Profiles T-Tested

I rewrote my markowitz profile. I tried using atoti, but unfortunately atm it doesn’t support covariance matrix (which aggregates across columns, and atoti’s aggregate functions aggregate on a column at a time).

So I did the simulation properly.

I take about 6 quarters of trading days of fully populated stocks

Then generate tensors and pull 100 random starting points each using a random set of 10 ETF’s (out of around 100 ETF’s including mutual funds and bonds) which have 52 training weeks and 4 holdout weeks

I then derive optimal weights based on markowitz monte carlo simulation and apply this to the holdout window.

I draw the efficient frontier as well as the performance of the weighted holdout period.

Then I do a one sided paired t test to determine if the mean between the two populations (of 100 runs of non weighted holdout vs weighted holdout) is different.

And it is.

P value below 1%

https://nbviewer.org/github/thistleknot/Python-Stock/blob/master/code/markowitz/Markowitz-slim-Atoti.ipynb

Leave a Reply

Your email address will not be published. Required fields are marked *