[edit: newer versions at the bottom, with dividend-adjusted prices from Yahoo]
Hey everyone,
While I'm waiting for QuantCon, I've implemented another recent asset allocation algorithm floating around the quant blogosphere. This one is taken from W. Keller and A. Butler's 2014 paper "A Century of Generalized Momentum - From Flexible Asset Allocations (FAA) to Elastic Asset Allocation (EAA)".
As the name implies, their approach dynamically changes asset classes and allocations, and includes a crash-protection mechanism. An asset's specific allocation is based on a customizable scoring function, they call "generalized momentum". As a guideline the authors suggest two "golden" weight-settings - offensive and defensive. Both templates are included in the source code and you can change them by commenting them in.
Specifically, the generalized momentum relies on the following factors:
- Price-momentum (wR)
- Correlation (wC)
- Volatility (wV)
- Elasticity (wS)
The approach has been investigated thoroughly and reproduced by different bloggers. Two outstanding posts are on QuantStrat TradeR and TrendXplorer - I highly recommend you check them out. My implementation here on Quantopian gets close but still has a number of limitations, as noted in the source code.
EAA clearly has the performance edge over last week's "CSSAnalytics - A Simple Tactical Asset Allocation Portfolio with Percentile Channels", but that comes at the cost of increased volatility and draw-down. (Also, note the shorter backtest window) Nevertheless, given EAA's generic framework, I expect there to be plenty of room for optimization and exploration with other asset mixes, such as industry sectors or countries. Let me know what you find.
Happy hacking. Cheers!