So just to reassure everyone, this blog hasn’t just dropped off from the face off the web. Instead, I’ve been hard at work reviewing the financial literature and doing some background work over momentum factors in equity markets. This article will cover some of the broad principles underlying momentum measures and assessments for financial investments.
In support of the article, I actually developed 24-Something’s very own momentum trading algorithm and run a complete and thorough benchmark test over every sequential 1000 day trading window from 1954 to 2005. I’ll post complete details of the algorithm including cumulated data sets, underlying historical simulation assumptions and, of course, limitations with the related article.
There are still a few factors requiring optimisation (e.g. sensitivity calibration to the momentum metrics seems highly correlated to the desired investment timeframe) so I am still having to work through a few kinks in it.
Unfortunately, this work just simply can not be rushed, if only because my poor little computer’s excel isn’t really performing as fast as I’d like it to (a poor trader blames his tools). I have pondered carrying this all over into SQL which I might do for the final runs, this will also allow external parties to rerun the tests independently if so inclined. Current limitation of my model is it’s reliance on Excel’s stat pack and applescript, which is surprisingly well suited for the job (first time I’ve stepped out of VBA macros) but not very portable over to PCs. Though I’ve done my best to optimise the calculation runs, I am still at about 3 to 7 seconds per window, which for 1000 business trading days (roughly 3.97 years of daily returns) gives a sample set of 13163 results.
The graphs above are a sneak peak of the results for the backtest with no exogenous recalibration across any of the periods beyond the internal algorithm momentum re-weighting. You’ll notice the algorithm performs quite closely to the benchmark despite being a fairly active trader out there (roughly 100 trades per 4 year window).
The results at this stage seem to suggest that two broad performance windows exist with the current calibration settings: one pre-1991 and a 1991 to today period. I will investigate this further by running a further test-run with a recalibration for the post 1990 period (FYI: pre 1991, correlation to the Benchmark = 66.67%; post 1991 correlation goes to -78%).
The algorithm itself is a pure product of: Keep It Super Simple investment methodologies (I know: very high brow). Basically, it takes its cues from relative strength measures, ensures that the R-square slope measures across these are either positive or negative, and derives from this both the momentum direction and weighting of trades. There is an exogenous calibration measure that sets the sensitivity to this trade weighting measure as well as a built-in weighting bias with long trades (but no signal-bias). The theory is, the algo wants to get into the market quickly and long trades are inherently less risky than short ones (unlimited losses from shorts, limited losses from longs, ergo, stay long when possible). However, it remains a long-short fund as continued negative momentum can still tip the position negative. Oh, and there’s an order limiter to ensure that signals are front-loaded, ie trades are only triggered upon oscillation into a momentum period: first period to switch over is open for trade but subsequent periods are prevented from trading.
The algorithm is therefore purely reliant on historical, albeit a fairly short-term, data window and does not take into account any other external variables beyond the sensitivity calibration factor. The results were a bit surprising, given my personal slant/preference towards fundamental micro/macro outlooks, I actually expected the algorithm to perform very, very poorly but instead was quite surprised by some (relatively speaking) fairly solid returns…
So, hopefully the full details and data presentation will be ready shortly. Until then, if you have any questions, please feel free to ask.