So recently, I tried to combine Flexible and Elastic Asset Allocation. The operative word being–tried. Essentially, I saw Flexible Asset Allocation as an incomplete algorithm — namely that although it was an excellent method for selecting securities, that there had to have been a better way to weigh stocks than a naive equal-weight scheme.
It turns out, the methods outlined in Elastic Asset Allocation weren’t doing the trick (that is, a four month cumulative return raised to the return weight multiplied by the correlation to a daily-rebalanced equal-weight index of the selected securities with cumulative return greater than zero). Either I managed a marginally higher return at the cost of much higher volatility and protracted drawdown, or I maintained my Sharpe ratio at the cost of much lower returns. Thus, I scrapped all of it, which was a shame as I was hoping to be able to combine the two methodologies into one system that would extend the research I previously blogged on. Instead, after scrapping it, I decided to have a look as to why I was running into the issues I was.
In any case, here’s the quick demo I did.
require(quantmod) require(PerformanceAnalytics) require(IKTrading) symbols <- c("VTSMX", "FDIVX", "VEIEX", "VBMFX", "VFISX", "VGSIX", "QRAAX") getSymbols(symbols, from="1990-01-01") prices <- list() for(i in 1:length(symbols)) { prices[[i]] <- Ad(get(symbols[i])) } prices <- do.call(cbind, prices) colnames(prices) <- gsub("\\.[A-z]*", "", colnames(prices)) ep <- endpoints(prices, "months") adPrices <- prices prices <- prices[ep,] prices <- prices["1997-03::"] adPrices <- adPrices["1997-04::"] eaaOffensive <- EAA(monthlyPrices = prices, returnWeights = TRUE, cashAsset = "VBMFX", bestN = 3) eaaOffNoCrash <- EAA(monthlyPrices = prices, returnWeights = TRUE, cashAsset ="VBMFX", bestN = 3, enableCrashProtection = FALSE) faa <- FAA(prices = adPrices, riskFreeName = "VBMFX", bestN = 3, returnWeights = TRUE, stepCorRank = TRUE) faaNoStepwise <- FAA(prices = adPrices, riskFreeName = "VBMFX", bestN = 3, returnWeights = TRUE, stepCorRank = FALSE) eaaOffDaily <- Return.portfolio(R = Return.calculate(adPrices), weights = eaaOffensive[[1]]) eaaOffNoCrash <- Return.portfolio(R = Return.calculate(adPrices), weights = eaaOffNoCrash[[1]]) charts.PerformanceSummary(cbind(faa[[2]], eaaDaily)) comparison <- cbind(eaaOffDaily, eaaOffNoCrash, faa[[2]], faaNoStepwise[[2]]) colnames(comparison) <- c("Offensive EAA", "Offensive EAA (no crash protection)", "FAA (stepwise)", "FAA (no stepwise)") charts.PerformanceSummary(comparison) rbind(table.AnnualizedReturns(comparison), maxDrawdown(comparison))
Essentially, I compared FAA with the stepwise correlation rank algorithm, without it, and the offensive EAA with and without crash protection. The results were disappointing.
Here are the equity curves:
In short, the best default FAA variant handily outperforms any of the EAA variants.
And here are the statistics:
Offensive EAA Offensive EAA (no crash protection) FAA (stepwise) FAA (no stepwise) Annualized Return 0.1247000 0.1305000 0.1380000 0.131400 Annualized Std Dev 0.1225000 0.1446000 0.0967000 0.089500 Annualized Sharpe (Rf=0%) 1.0187000 0.9021000 1.4271000 1.467900 Worst Drawdown 0.1581859 0.2696754 0.1376124 0.130865
Note of warning: if you run EAA, it seems it’s unwise to do it without crash protection (aka decreasing your stake in everything but the cash/risk free asset by a proportion of the number of negative return securities). I didn’t include the defensive variant of EAA since that gives markedly lower returns.
Not that this should discredit EAA, but on a whole, I feel that there should probably be a way to beat the (usually) equal-weight weighting scheme (sometimes the cash asset gets a larger value due to a negative momentum asset making it into the top assets by virtue of the rank of its volatility and correlation, and ends up getting zeroed out) that FAA employs, and that treating FAA as an asset selection mechanism as opposed to a weighting mechanism may yield some value. However, I have not yet found it myself.
Thanks for reading.
NOTE: I am a freelance consultant in quantitative analysis on topics related to this blog. If you have contract or full time roles available for proprietary research that could benefit from my skills, please contact me through my LinkedIn here.
Pingback: The Whole Street’s Daily Wrap for 1/30/2015 | The Whole Street
Hi Ilya,
I believe that FAA and EAA are essentially the same if you take out the 2008/9 financial crisis. That event was the worst in 75 years so I don’t expect to see a repeat of it again. Yes, we could get something different but it won’t be exactly like 2008/9. The fact that FAA outperformed EAA during that period is likely to be a statistical anomaly partly related to the small 7 asset universe. I say likely because I haven’t tested it with a larger universe. I did do a quick test of the 7 asset universe before and after the 2008/9 crisis and the FAA and EAA results were comparable.
Great work as always. I really enjoy reading your posts!
-Gerald
Regarding the idea “that there should probably be a way to beat the (usually) equal-weight weighting scheme “, there are three dimensions related to return, cost, and risk. In these models each asset class gets a score and can be ranked upon the score. Go back and look at the return for always owning the best, the 2nd best and so on. Consider the stability of the ranked returns (how often does the best outperform the second best). My examination shows that returns to not decrease monotonically. It they did it would be compelling, all other things being equal, to assign higher weights to the higher ranked classes. Given the lack of information based on the exact rank (high rank is good, but it’s hard to say 1 is much better than 2 than 3), return doesn’t provide much help. If one can find a better ranking system, the better ranks should get higher weights.
In defense of equal weighting are the low transaction costs ease of implementation. If the top 3 ranked asset classes are 4,1 and 2 in that order in one month and then 2,1,4 in the next, there is no portfolio turnover. If an asset class is kept in, its weight does not change except for drift (and the safe asset class). Also, equal weighting appeals to those who shave their models with Occam’s Razor and who fear the dark shadows of the data mines where over-fit models lurk.
Until this week I might have ended my comment here. However, I was intrigued by David Varadi’s Minimum Correlation Algorithm. I find that incorporating that into FAA improves the performance, thought with higher turnover. Perhaps there is hope there. It is in the area of risk management that deviating from an equal weight schema may offer the greatest benefit.
Keep up the good work and thanks.
Hello Ilya,
These strategies looks almost perfect to me as return is good and drawdown very limited. I know you consider they are not ready for trading with real money and I’m wondering why. Could you please clarify that point ?
Thank you
Because in order to properly trade this, you need a good amount of capital such that the integer nature of purchasing shares doesn’t have a large effect on your actual allocations.
But rebalancing shares of ETFs monthly is not that much.
Pingback: A Review of Modern Asset Allocation For Wealth Management, by David M. Berns, PhD | QuantStrat TradeR