Sampling Universes with EAA

In this post several universes will be sampled using the Elastic Asset Allocation model. The universes under review are:
- CXO Advisory's 8 assets simple momentum universe
- Stefan Solomons 12 assets tactical allocation universe
- ETFdb.com's most popular ETFs
- CXO's on steroids: a 300% leveraged universe


The backtests are performed using monthly Yahoo! Finance total return data with EAA in Equal Weigted Hedged mode with monthly reforms. So each month assets are (re-)alloced according to the below simplified formula:
wi zi = ( ( 1 ci ) ri ) eps , wi sim zi = ((1-ci) cdot ri ) ^ eps,  if ri > 0 else wi = zi = 0
ETFs are extended using mutual fund data to attain a backtest period of 20 years (1995 - 2014)*.

CXO Advisory's 8 assets simple momentum universe

The line-up for CXO's is DBC, EEM, EFA, GLD, IWM, IYR, SPY and TLT. Since the liquidity of CXO's original IWB is way lower than that of its bigger sibling SPY, the latter was used. IEF is deployed as c(r)ash protection fund (CPF), but is kept outside the regular allocation basket. The maximum number of assets for capital allocation is limited to 3+1.

CXO: equity curve with key performance indicators

A Primer on Elastic Asset Allocation According to Keller & Butler

In a brand new 2014 paper "A Century of Generalized Momentum; From Flexible Asset Allocations (FAA) to Elastic Asset Allocation (EAA)" Wouter Keller and Adam Butler reveal a new methodology for rotational tactical asset allocation. While FAA (see paper or post) was build on the concept of generalized momentum by assigning ranks to returns, volatilities and correlations, the EAA concept adds a new level of generalization by moving from ordinal ranking to cardinal "elasticities". Admittedly the full EAA methodology can appear rather daunting, but with some simplifications the concept becomes quite accessible in the end. So hang in there, you'll soon be all right ;-)


EAA main formula

EAA controls the optimal portfolio asset allocation through an ingenious exponential scoring function of estimates for return (ri), volatility (vi) and index correlation (ci) as well as applying a portfolio concentration exponent: the non-negative elasticities wR, wV, wC respectively wS.
wi zi = ( ri wR ( 1 ci ) wC vi wV ) wS wi sim zi = { left ( { ri^wR cdot { (1-ci)^wC } } over { vi^wV } right ) } ^ wS , if ri > 0 else wi = zi = 0, for i = 1 ... N
where for each asset i in an N-sized portfolio:
- wi is the normalized proportional optimal portfolio weight, where the summation of weights is equal to 100%
- zi is the generalized momentum score
- ri is the average return (total or excess*) calculated over the last 1, 3, 6 and 12 months
- vi is the volatility of total return measured over the last 12 months
- ci is the correlation of total returns with the equal weighted universe index measured over the last 12 months.

The four geometrical weights wR, wV, wC and wS are called "elasticities" due to their relative impact on the three terms (ri, vi, ci) of the EAA scoring function. Remember from math class:
- x 0.5 = x x^0.5 = sqrt{ x }  and
- ( x 0.5 y ) 2 = x ( 0.5 2 ) y 2 = x y 2 ( x^0.5 cdot y )^2 = x^( 0.5 cdot 2 ) cdot y^2 = x cdot y^2 .
So when applying exponential values ranging between 1 to 0 the scoring effect is mitigated, while values ranging from 1 to 2 amplify the effect of the said term on the score. Note that with wS = 0 the EAA function will return zi = 1 for each and every asset, independent of ri, vi or ci (provided ri > 0). Put differently, with wS = 0 the asset allocation is equal weighted (apart from the safety net offered by a cash proxy fund, see below).

Different from FAA the proportionality with zi allows the weights wi to be not equal. Next to its exponential scoring function, EAA utilizes an optimal top quantile (TopN) of the portfolio size (N) and a C(r)ash Protection routine (CP) by allocating a proportional fraction of portfolio capital to a cash proxy fund (CPF) for every asset with non-positive return. In accordance with the concept of tactical asset allocation the portfolio is rebalanced at the end of each month.

During a stock market crash, like in 2008, the C(r)ash Protection kicks in. Note the unequal weights too (last column).
    

About time, leverage and a few grains of salt (Synthetic Prices Part II)

Just in time to be vintage 2014 I finally managed to write a long overdue blog post. Nevertheless thanks to a loyal crowd of readers this year has seen two, actually three, landmarks in the pageview stats. Once beyond the 100k milestone, the 200k mark was surpassed quite fast. A couple of weeks ago the near silent touch of a fabulous 250k followed: one quarter of a million pageviews! Wow! And right now at the cusp of 2015 the counter is steadily turning its way towards 300k. Thank you for all your interest, the rewarding exchange of ideas and your support during this remarkable year.


Regarding today's posting, it is a sequel to the Composing Synthetic Prices For Extended Historical ETF Data post back in May. Using "R", the language for statistical computing and graphics (get it here), thanks to Michael Kapler's excellent Systematic Investor Toolbox for R: SIT, it is possible to compose synthetic ETF's with extended historical data retrieved from suitable mutual funds on full auto while taking care of a seamless fit along the way. 

In this post, I will demonstrate how to perform the same task in AmiBroker with two extra benefits: the application of leverage and the option for inverse data treatment. Of course, an R-savvy coder could probably achieve the same in R, but not me.

The below example shows $TLT as synthetic symbol with data going back to 1986*. The $ETF is based on the price data for TLT (green section) available from Yahoo and extended with VUSTX data (red section) from the same source.

Engineering Returns With Multi Asset Universes

Before the engineering starts: Only four months ago, the pageview counter passed the 100,000 milestone. In all likelihood the 200,000 mark will be hit today. Thank you very much for your interest.

The series about Harvesting Momentum (see part I, part II and part III) largely covered pairwise strategies. Now it is time to investigate the performance of more diversified universes to generate returns.


A recent post on CSSA presented Momentum Score Matrices as a tool for predicting the profitability of a given asset universe. Assuming a random walk, the momentum profitability depends on the degree in dispersion of mean returns between the assets in a portfolio. David Varadi states: "A heterogeneous universe of assets such as one containing diverse asset classes will have different sources of returns- and hence greater dispersion- than a homogeneous universe such as sectors within a stock index."

Following a similar, but simplified approach to the cross-sectional dispersion of mean returns, the pairwise momentum score can be calculated as the population average of the squared difference between the momentum values of asset ABC against asset XYZ. Or in "R":

Dispersion (D) for $IEF - $TIP based on 3 month returns during 2001 - 2014. Average = 8

For an asset collection consisting of 14 assets, this approach results in the below matrix. The calculations can be performed using "R", Excel or AmiBroker. Examples of each are available on the Google Drive connected to this post. AmiBroker has the benefit of exporting the momentum matrix as html-file, which then can be imported into Excel for analysis (and prettifying).

Dispersion matix based on 3 month returns using synthetic $ETF's

Value Investing By Proxy

By many Benjamin Graham is considered to be the father of "value investing" and with his book "The Intelligent Investor", Mr. Graham brought value investing to the individual investor.


Mr. Graham advised the investor to always hold bonds in his investment portfolio:
"We recommend that the investor divide his holdings between high-grade bonds and leading common stocks; that the proportion held in bonds be never less than 25% or more than 75% with the converse being necessarily true for the common-stock component."
Combining Mr. Graham's recommendation with the concept of paired switching previously discussed, leads to the following long only application:
  • Intermittently rebalance a basket of VTI (stocks) and TLT (bonds) and allocate 75% of capital to the best performing EFT and the remaining 25% to the other ETF.
  • The rebalancing frequency may be set for example to quarterly or monthly.
  • Performance is measured using total return over the prior quarter or prior three months.
Building such a "Value Investing By Proxy" model in Excel is fairly easy using monthly adjusted closes available from Yahoo! Finance (VTI, TLT).

Composing Synthetic Prices For Extended Historical ETF Data

Backtesting of strategies is best done with at least 10+ years of historical price data, preferably even more. However, ETF's with such prolonged historical data are rare. The obvious escape would be to replace ETF's with look-a-likes from mutual fund companies like Vanguard or Fidelity. Can't we have both ways at the same time?


Actually we can, thanks to Michael Kapler's excellent Systematic Investor Toolbox for R: SIT. Some time ago Michael added a special function to his SIT: getSymbols.extra. Using "R", the language for statistical computing and graphics (get it here), the code composes synthetic ETF's with extended historical data retrieved from suitable mutual funds on full auto while taking care of a seamless fit along the way. With a minor addition to Michael's code, in one and the same run for each ETF the newly created synthetic prices can be saved to CSV-file. Next, with its Import Wizard, these CSV-files can be imported into AmiBroker's database quite easy. Alternatively, pulling the CSV-data into Excel is another achievable option.

CSV-data after import in Excel

The chart below shows the extended price history of $VWO. First the data of EEM is added and calibrated to fit and extend VWO. Next the same is done with the addition of VEIEX' data. Finally the data of FEMKX is added, thus prolongating VWO's history from 2005 back into 1990 adding almost 15 years of backtestable data.

$VWO: VWO extended with EEM extended with VEIEX extended with FEMKX

Harvesting Momentum: Let's Kick Tires With AmiBroker [ Part III - Final ]

The previous posts in this series covered a basic Tactical Asset Allocation approach with with signals taken from the daily and the weekly time frames. This final post will be dedicated to portfolio rotation based on monthly and quarterly time frame. Only two asset class universes will be covered. Multi asset class universes are going to be the subject of a future post.


Taking the monthly time frame into consideration basically means rotation decisions are made once a month, after the close of the month. For the quarterly time frames this comes to only 4 re-balancing opportunities per year: at the end of each quarter. However, usually the re-balancing frequency is way lower.

For backtesting once again the source code provided in the opening post will be used, basically allowing the DIY retail investor to engineer his own alpha. Even if you don't have access to thinkorswim or Amibroker, the strategy at hand can be fairly easy implemented using Excel, since momentum is the only metric taken into consideration for re-balancing decisions.

Monthly Periodicity

The typical US stock market year has 252 trading days (= 12 months with 21 days on average). So for the previously used 85 days/17 weeks lookback period, momentum calculated over a 4 month period (= 4 x 21 days) is suitable. Applied to the base pair (SPY-TLT) this 4 month lookback period renders the following results.

Portfolio Equity SPY - TLT (4 months), drawdown periods in red