Update For Global Equities Momentum Excel VBA

By popular demand a new beta update is available for the Global Equities Momentum Excel VBA spreadsheet. The new edition sources data from Tiingo's. Following the same work flow as before, the spreadsheet allows to backtest Gary Antonacci's popular GEM strategy (see post).

GEM with mutual funds for longer historical backtest
NB! Backtested results do not reflect actual trading. Furthermore, trading costs, slippage, and taxes are disregarded. Results are therefore purely hypothetical. Terms and conditions apply.
Next to some bug fixes a new pie chart and an annual returns table have been added to the spreadsheet. The pie chart shows the average allocations over the test periode. And the annual returns table specifies GEM's annual returns along with those of the underlying components and the classical 60/40 benchmark.

Strategy Signals Powered By Tiingo's

As the new kid on the block, Tiingo is shaking up the data community. Tiingo offers Freemium access to high quality data for an extensive collection covering the full historical record. Starting today historical dividend adjusted data for the Strategy Signals page is sourced from Tiingo's, with delayed current day's NYSE data grabbed "real time" from Google Finance.

For improved performance a newly designed dedicated backend caches daily updates from Tiingo's data servers, filters the data into monthly endpoints and operates as on-demand feed for the various Strategy Signal tables.

Tiingo's Freemium service consists of two tailored plans: a free basic service and a power service for $10/m. For details see Tiingo's Pricing page.

Disclaimer: No affiliation.

Breadth Momentum and Vigilant Asset Allocation (VAA)

  • Breadth momentum extends traditional absolute momentum approaches for crash protection.
  • Breadth momentum quantifies risk at the universe level by the number of assets with non-positive momentum relative to a breadth protection threshold.
  • Vigilant Asset Allocation matches breadth momentum with a responsive momentum filter for targeting offensive annual returns with defensive crash protection.

Vigilant Asset Allocation (VAA) is a dual-momentum based investment strategy with a vigorous crash protection and a fast momentum filter. Dual momentum combines absolute (trend following) and relative (cross-sectional) momentum. Contrary to the traditional dual momentum approaches with crash protection through trend following on the asset level, in VAA risk is quantified at the universe level. For superior protection the VAA cash fraction equals the number of assets with non-positive momentum relative to a breadth protection threshold. The combination of breadth momentum with a responsive filter for measuring dual momentum results in a granular crash indicator that allows for targeting offensive annual returns while offering defensive tail risk protection. The VAA methodology is comprehensively explained in our paper published on SSRN

The VAA recipe
  1. Given a top selection T and a breadth protection threshold B, for each month:
  2. Compute 13612W momentum for each asset
  3. Pick the best performing assets in the “risk-on” universe as top T
  4. Pick the best asset in the “risk-off” universe as safety asset for “cash”
  5. Compute the number of assets with non-positive momentum in the “risk-on” universe (b)
  6. Compute b/B and round down to multiples of 1/T as “cash fraction” CF for “easy trading”
  7. Replace CF of top T by “cash” asset as selected in step 3

13612W momentum filter

In the dual momentum frame work cross-sectional or relative strength momentum is applied for picking the best performing assets for top selection while absolute momentum is utilized to establish whether or not an asset is an uptrend or downtrend (trend following). Different momentum filters are in vogue, like Antonacci’s 12-month return (RET12) for GEM, Keller’s price relative to its 12-month simple moving average (SMA12) for PAA, or Faber’s averaged momentum over the past 1, 3, 6, and 12 months (13612) for GTAA. For VAA we developed a new momentum filter: a variant of the 13612 filter, but now with an even faster response curve by using the average annualized returns over the past 1, 3, 6, and 12 months (13612W). Our 13612W filter has the following composition:
13612W = ( 12 * r1 + 4 * r3 + 2 * r6 + 1 * r12 ) / 4, with rt = p0/pt - 1 where pt equals price p with a t-month lag 
This results in monthly return weights for p0/p1, p1/p2, …, p11/p12 of 19, 7, 7, 3, 3, 3, 1, 1, 1, 1, 1, 1, respectively. Notice that our responsive 13612W filter gives a weight of 40% (19/48) to the return over the most recent month as compared to 8% (RET12), 15% (SMA12), and 18% (13612). The following graphic crystallizes the various weighting schemes for the mentioned momentum filters.

Within the VAA frame work our 13612W filter is applied for both relative and absolute momentum.

On The Lookout For Better Data

[Revised: Originally this post was about sourcing data from Quandl's premium QuoteMedia EOD service ($$$). Due to the migration to Tiingo's as preferred data supplier for the Strategy Signals the contents have become obsolete. This entry is now solely maintained as anchor for the contributions in the comment section below.]

Yahoo Finance API Ceased Working

Unfortunately this week the Yahoo Finance team changed the functionality of their financial data service. Apart from modifying the construction of the download link, the order and contents of the supported data fields have been altered too. As of writing support of total return data has been suspended.

Regretfully, as a result both the Excel VBA spreadsheets and the Google Sheets on the Strategy Signals page have stopped functioning. Until further notice I have no other choice but to discontinue these services from the blog.

Thank you for your understanding and please share your thoughts in the comment section below on fixes or alternative download sources.

For more information see the Yahoo Help Community.

Index Mapping For ETF Proxies

In order to present results as realistic as possible in our PAA-paper, we constructed long-term end-of-month data series for popular ETF proxies, like SPY, GLD and TLT (see paper appendix on SSRN). All data series start December 1969. For the pre-inception history, the proxies are derived from suitable indices. As part of a complete revision of the long-term data set, we recently improved the construction of the data series by mapping the underlying index through a linear formula to arrive at the best fit over the life span of the ETF to be replicated. The construction process is demonstrated below for EFA. The link to an example spreadsheet with all the necessary calculations is published at the end of this post.

EFA seeks to track the investment results of the MSCI EAFE index which is composed of large- and mid-capitalization developed market equities, excluding the U.S. and Canada. The index data is available as free download from the MSCI website. Comparing EFA’s historical data record against the various index levels supported by MSCI like Price, Gross, Net, reveals the MSCI EAFE Net index as underlying index. Historical dividend adjusted data for EFA itself is offered by Yahoo Finance, also for free. For constructing a long-term EFA proxy the data from both sources is required.

With the data readily available in Excel, the next step is to derive the data for the ETF-proxy from the underlying index for the In-Sample (IS) period. The goal is to map the underlying to arrive at the best fit over the life span (=IS) of the ETF through a linear formula: r+ = b * r + a, where “r” is the return of the index and “r+” is the return for the proxy. The values for the coefficients “a” and “b” are determined through Excel’s Solver add-in by minimizing the unexplained sum of squared deviations for the return series of EFA and the ETF-proxy.

After Solver finishes the calculation cycles, the found coefficients result in high R-Squared and correlation readings.