Products Platforms
What's New? Support
SALES Dept. Feedback
FAQ FREE stuff
Tech Reports Snake Oil !

Home PageJRC Logo


Financial Software Review



Perhaps the best analogy for trading with conventional moving averages is turning up late to a bottle party. By the time you get there, the only drink left isn't fit to clean your car tyres with. (Though it of course tastes as if you'd already tried to use it to do just this). The bottom line is that you've missed the boat and all the good stuff has long gone - always assuming there was any in the first place.

Same with a moving average. By the time you get your buy or sell signal most of the action is over. If you're lucky you get the crumbs, because the moving average's Achilles heel is lag. While it may smooth out much of the day to day noise in a market and appear as an elegant curve on your charts, it trails the raw data series. The longer the average, the smoother the output, but the further it falls behind the underlying market.

As a result, using slower (longer) averages to determine trade entry points results in late entries – on the flip side, shorter lengths typically result in whipsaws in sideways markets. Attempted solutions have come from a variety of angles, ranging from exponential moving averages, where more recent data has a greater influence on the value of the average, to volatility moving averages, where data is weighted according to the volatility of the market. While some of these techniques have gone some way towards alleviating the lagging problem, few (if any) have really overcome it.

One that looks a strong contender is the JMA (Jurik Moving Average), developed by Jurik Research in California, which was formed in 1988 and specialises in algorithms to identify and classify complex data. The company uses signal processing techniques originally intended for military projects and applies them to other fields including industrial and financial markets. JMA is available in a number of formats – Omega TradeStation or SuperCharts, Excel or (for the programming fraternity) as a DLL (dynamic link library).

The TradeStation version of the JMA (reviewed here) actually consists of twelve functions, indicators and systems, and comes with a detailed manual covering the installation routine as well as the theory and pitfalls of moving averages. The underlying calculations for the JMA are not disclosed, but it would appear that the algorithm includes some form of signal processing filter for removing noise from the raw price data prior to calculating the average.

As can be seen from Chart 1, (a five minute intraday candlestick chart of the DAX future with the JMA in red), the JMA is far more responsive than a conventional simple moving average (in yellow). (All the averages were plotted using a fourteen bar period.) It clearly clings far more closely to the price bars than the simple moving average - especially as the afternoon rally accelerates from shortly after 1.30pm. Though an exponential moving average (coloured cyan) fares better than its simple counterpart it still cannot come close to the JMA's speed of reaction.

This is particularly interesting for the possibilities that it opens up for day trading. Traditionally moving averages have been regarded as unsuitable for this because of their slow response – particularly in markets that have significant gaps between the closing price on one day and the opening price on the following one. The distortion caused by this gap in a moving average makes the use of trading systems based on moving averages rather ill advised. As can be seen from Figure 1, JMA is rather different in this respect. The lack of lag means that even after a significant overnight gap, the JMA is back in contact with the market within the first four bars of the new trading session. As a rough test of the implications of this, I constructed two fairly crude day trading systems based on a moving average crossover – one using a simple moving average and one using JMA, with both using a simple trailing stop exit method and trading both sides of the market. Though the test was anything but mathematically rigorous, the results were nevertheless of interest. The JMA based system had roughly twice the number of winning trades and seventy percent greater net profit.

The lack of lag and superior smoothing qualities of the JMA open up possibilities in other areas. In the version supplied for TradeStation, the Easy Language (Omega Research's proprietary programming code) formula provided by Jurik Research uses the closing price of each bar as the default input. However, there is nothing to stop the JMA being applied to other indicators as well. The manual includes a demonstration of applying JMA to stochastics - replacing %D with a JMA smoothed version of %K produces a far more stable plot than simply using the standard fast %K and slow %D lines. The net result of this modification is to filter out a lot of false signals. The manual also includes some simple examples that show you how to modify the standard code supplied with the package to take advantage of this generic ability.

Apart from the raw data and average length inputs common to any moving average, JMA also has a third input called phase, which allows for the fine tuning of the amount of lag in its output. The default setting is 0, with a range from –100 (maximum lag) to +100 (minimum lag). I found that switching from a setting of 0 to –100 in most cases made the JMA approximately one bar slower in catching up with a sudden change of direction in the market - on the other hand the plot produced was slightly smoother. Switching to +100 made for faster response but tended to cause the JMA to overshoot whenever there were sudden gaps between price bars, such as the overnight gap on an intraday chart. The JMA package includes a rather handy function called "JRC.JMA.flex", which allows you to dynamically alter the inputs to the JMA bar-by-bar. At its simplest, you could use this to lower the phase input from +100 to (say) 0 at the start of a day to prevent the JMA overshooting on an opening price gap.

At $205, the JMA package is good value, as it not only includes a generous selection of pre-built indicators and systems but the manual supplied also makes a thorough job of stepping you through their effective deployment. Though the inner mechanics of the JMA algorithm are not disclosed, it certainly appears robust – testing on wide selection of data produced no erratic output. The bottom line is that this is the sort of tool that could add significant value on any trading desk, both in its own right and as a highly efficient smoothing mechanism for other technical analysis techniques.


Neat and good value. Even if you don't use it as a trading tool in its own right, it's worth having in the kit for smoothing other indicators and functions.

JMA is available from: