Strategy Stress Testing à la Monaco

After a short, admittedly rather superfluous, historical digression, this post will introduce Monte Carlo Analysis. What is Monte Carlo Analysis? Why is such analysis useful if not prerequisite for a strategy trader? What does it supplement to customary backtest information? By exploring the darker corners of a strategy the objective of this post is revealing real risk.

Crunching numbers in a monastery

During the first half of the 1600s a French monk, Marin Mersenne, had many acquaintances in the scientific world. Mersenne studied (and taught) theology, philosophy, mathematics and music. He communicated extensively with other scholars like Descartes, Pascal, Huygens and Galilei.

In spite of being a theologian and philosopher primarily, Mersenne’s name is associated with prime numbers that compound to Mn = 2n – 1. Such numbers are called Mersenne primes. The first four Mersenne primes are 3, 7, 31 and 127 and significantly a Mersenne prime (219937−1) is elementary for the most commonly used version of the Mersenne Twister.

The Mersenne Twister is a fast generator of high-quality pseudorandom integers. Recently AmiBroker’s already extensive feature set was expanded with a Mersenne Twister based Monte Carlo simulator which is capable of rendering 30+ million trades per second (!). More specific, the Monte Carlo simulator runs series of trade sequences based on backtest output and uses the high-quality Mersenne Twister for randomizing the order of the trades.

And so we finally arrive down the stairs of the famous "Casino de Monte-Carlo" in mondain Monaco ;-)


Why stress test strategies with Monte Carlo Analysis?

Before we start familiarizing ourselves with Monte Carlo Analysis let’s first pick a sample strategy for illustration purposes: SeekingAlpha's contributor Varan's Simple GMR. Each month all available trading capital is re-allocated to the top performing ETF out of a basket with IJJ, EFA, IEV, EPP, QQQ, EEM and TLT. See Varan's post for details. For establishing points of reference and collecting the trade data required for a Monte Carlo Analysis, a backtest is run starting at year-end 2003 and ending August 2015 using high-quality monthly total return data as provided by Norgate Premium Data (Alpha-tester program).

The equity curve as well as the distribution of the yearly returns obtained from the backtest look reasonable, even considering the 2008 drawdown when compared to the market in general. Volatility is not too high. Actually, the ratios for Sharpe, Sortino and Calmar are quite nice. The complete chart suite is available in the Google drive folder connected to this post (zooming required!).

Portfolio performance over 2004 - 2015

EAA Piloting Quarterly Sector Rotation With C(r)ash Protection

This post will cover a detailed look into quarterly sector investing using the EAA-model previously introduced (see here). For the sector investor Fidelity is the place to be. Currently Fidelity offers 46 sector mutual funds. Lots of these funds have at least 21 years of historical prices available. Those are the ones collected in the universe under investigation in this post to allow for comparability with prior backtests.


Fidelity Sector Select Universe

The above stated data history requirement is met by 34 from the 46 available sector funds. With these 34 funds not only 10 economical sectors plus precious metals are covered, but it also ensures for a well diversified basket to select investments from.


In the above table funds are sorted on sectors. Furthermore the performance of each fund over 1995 - 2014 is shown and broken down into the average yearly return (R), the fund's volatility (V) and the worst draw down (D) during those 20 years.

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).