Simple Trading System Performance
Moving Average Crossover Systems
One of the simplest possible systems for following trends is to buy when a stock's price crosses above one of its moving averages and sell when its price crosses below the same moving average. That will allow participation in a major trend, but at the cost of many small losses if a stock's price meanders above and below its moving average without really getting anywhere.The results below show the results of pursuing this trading strategy for 1,000 days of the stocks in the S&P-100 as of March 2002 (the same data used above will be used in all of these tests).
System 1: Buy if price crosses above the 50-day moving average (MA50), Sell if price crosses below MA50
Avg profit per trade (% gross) -0.0 Avg days held 13.2 Profitable trades (%)* 14.9 Avg drawdown (%) 0.2 Max drawdown (%) 22.0 Avg profit/avg drawdown -0.1 * Assumes 1% charge for commission/slippage per transaction
System 2: Buy if stock crosses above 200 day moving average (MA200), Sell if stock crosses below MA200
Avg profit per trade (% gross) 0.2 Avg days held 22.5 Profitable trades (%)* 9.3 Avg drawdown (%) 0.3 Max drawdown (%) 24.6 Avg profit/avg drawdown 0.5Neither System 1 nor System 2 is profitable on average, and we submit that performance would not be improved drastically by choosing another moving average length and/or type (simple vs. exponential). Their risk is limited, but so is their gain. Once transaction costs of even 1% are taken into account, their gain is negative. This system is marked by many small losing trades and relatively few and large winning trades. Also, note that the average trade length is relatively short. These small "whipsaw" losses almost exactly offset the winners.
Many authors have suggested ways to reduce these whipsaw losses (e.g., Kaufman 1995). The problem is that the solutions usually involve an offset from the gains that equals the value of the losses so avoided (as would be expected if stock prices follow a random walk). One type of filter is a percentage penetration filter. Consider the following system with a three percent filter.
System 3: Buy if price crosses above 1.03*MA50, Sell if price crosses below 0.97*MA50.
Avg profit per trade (% gross) -0.0 Avg days held 35.9 Profitable trades (%)* 24.9 Avg drawdown (%) 2.4 Max drawdown (%) 28.9 Avg profit/avg drawdown -0.0Another type of filter is a time filter, say, wait for three continuous closing prices above the moving average before buying, as in the system below.
System 4: Buy if price crosses above MA50 and remains above for three consecutive days, Sell if price crosses below MA50 and remains below for three consecutive days.
Avg profit per trade (% gross) 0.3 Avg days held 41.2 Profitable trades (%)* 26.8 Avg drawdown (%) 3.1 Max drawdown (%) 43.3 Avg profit/avg drawdown 0.1Neither of these filters improve performance enough to make the systems useful. However, it is a robust finding of ours that the delay filters are generally better than the percent penetration filters, once adjusting for differences in risk.
Contents: A View on Technical Indicators and Trading Systems
- Introduction
- Common Technical Indicators and Interpretations
- Moving Averages of Closing Prices
- Wilder's Relative Strength Index (RSI)
- Moving Average Convergence/Divergence (MACD)
- Two Technical Indicator Scoring Techniques
- Predictive Value of Technical Scores
- Simple Trading System Performance
- Moving Average Crossover Trading Systems
- MACD Trading Systems
- RSI Trading Systems
- Systems Using the Traditional and Statistical Scores
- Conclusions