Howard, Thanks for posting this.
--- In [email protected], "Howard Bandy" <howardba...@...> wrote: > > Greetings all -- > > The thread that prompted me to make this posting began with the question of > whether a system based on a simple-moving-average crossover was profitable > and would remain profitable. > > I used this code to test that: > // Test MA Crossover.afl > // > > BuyPrice = SellPrice = C; > ShortPrice = CoverPrice = C; > SetTradeDelays(0,0,0,0); > > OptimizerSetEngine("cmae"); > > > FastMALength = Optimize("FMAL",1,1,200,1); > SlowMALength = Optimize("SMAL",10,1,200,1); > > FastMA = MA(C,FastMALength); > SlowMA = MA(C,SlowMALength); > > Buy = Cross(FastMA,SlowMA); > Sell = Cross(SlowMA,FastMA); > Short = Sell; > Cover = Buy; > > e = Equity(); > > ArrowShape = Buy*shapeUpArrow + Sell*shapeDownArrow; > > Plot(C,"C",colorBlack,styleCandle); > PlotShapes(ArrowShape,IIf(Buy,colorGreen,colorRed)); > Plot(e,"equity",colorGreen,styleLine|styleOwnScale); > > ////////////////////// > > Samantha suggests Buy when the monthly price is above the 10 month SMA, Go to > cash when it is below. > > When tested on the 500 stocks currently in the S&P 500, using end-of-day data > from Quotes Plus that goes back to about 1993 (for companies with history > that long), the median exposure is about 50% and the median RAR is about +9%. > > As asked, the question assumes that being long or cash is the correct > allocation. For many reasons, a trader may want to consider only long > positions. But recent history (1984 to the present) has been a period of > very strong rising markets. The future might be different. Using SPY as a > surrogate for the broad market, the result of that same test are an exposure > of 61% and an RAR of 12.6%. > > We can ask several questions: > 1. Using full knowledge of the history, what are the best parameters for a > trader who wants to use only long positions? > > First, we need to decide how to measure best. We'll make a few runs with > different objective functions and note the results. > > Net % Profit. > The best values for the parameters are 2 and 12. Net profit is 304% (every > initial $1.00 becomes $4.04). Maximum drawdown is 15.3%. > > CAR/MDD. > Best values are 116 and 15. Backwards. This implies the trade should be > flat when the faster moving average is above the slower, be long when it is > below. Net profit is 51%. Exposure is 6%, RAR is 39%. > > Maximum System Drawdown. > The best result is to never trade. > > Sharpe Ratio -- used by many money management firms. > Best values are 97 and 13. Backwards again. 64% return with 13% exposure, > for an RAR of 22.7%. > > RRR (Same as K-Ratio). > Best values are 1 and 12. 292% return, exposed 63%, RAR of 13.8%. > > The best results depend very much on the definition of best. > > 2. If the trader was able and willing to take short positions, what is best > for them? > > Net % profit. > Best values are 7 and 18. 64% return, exposed 26%, RAR of 11.7%. > > CAR/MDD. > Best values are 1 and 24. 63% return, exposed 25%, RAR of 12.1%. > > Maximum System Drawdown. > The best result is to never trade. > > Sharpe Ratio. > Best values are 5 and 22. 63% return, exposed 24%, RAR of 12.5%. > > RRR. > Best values are 7 and 18. 64% return, exposed 26%, RAR of 11.7%. > > 3. If the trader wants a system that is always exposed, long or short, and a > single set of values that signal reversals. > > Net % Profit. > Best values are 1 and 22. Net profit is 534%, exposure 88% (flat at the > beginning until the averages have enough data), RAR of 13.6%. Maximum > drawdown is 16.3%. > > CAR/MDD. > Best values are 1 and 23. Net profit is 534%, exposure 88%, RAR 13.6%. > > Maximum System Drawdown. > The best result is to never trade. > > Sharpe Ratio -- used by many money management firms. > Best values are 78 asnd 47. Backwards again. 76% return with 34% exposure, > for an RAR of 10.3%. > > RRR (Same as K-Ratio). > Best values are 7 and 18. 522% return, exposed 89%, RAR of 13.2%. > > However --- those are all in-sample, backward looking results. And none of > the results have more than a handful of trades. Beware of making estimates > of future performance based on in-sample results (even when there are a lot > of data points, but that is another topic). > > 4. What are the results when a period of several years is analyzed, the best > parameter values select based on those years, and the future results > computed? Since the moving average lengths are so long -- typically around > 24 months -- the in-sample period must be longer. > > Five years is a long enough in-sample period to get some results. But, in > part due to the edge effects of the walk forward process, one year is not a > long enough out-of-sample period. > > An in-sample length of six years, out-of-sample three years, starts to give > results, but the out-of-sample results are not profitable. > > Six years and four years gives only two steps -- one profitable, the other > not. > > My conclusion is that we cannot determine whether a moving average crossover > system based on monthly bars is likely to be profitable in the future or not. > Sixteen years of monthly data -- 192 data points is insufficient to allow > meaningful validation. > > What next? > > 1. Add more data. We might think that adding data from earlier periods will > help. Testing to find out what moving average lengths worked best in the > 1930s through the 1980s might be interesting, but it is still in-sample and > has no value in estimating future performance. But we could run walk forward > tests beginning at an earlier date and observe more steps. Whether those > results look promising or not, we are still stuck with using the data we have > from 1993 through the current. So we might find out what the best lengths of > the in-sample and out-of-sample periods are. But we already know that the > system is not sufficiently profitable or stable over the past eight years or > more to actually trade it or to use it as a filter. > > 2. Use short bars. Moving to weekly bars increases the amount of data to > about 830 data points. Moving to daily bars increases the amopunt of data to > about 4000 data points. > > Using weekly data, walking forward, two years in-sample, one year > out-of-sample, long only, RRR as the objective function. The results are > pretty promising. The system is profitable in nine OOS periods, unprofitable > in three, and does not trade in two. But the values of the parameters are > the interesting part. In 11 of the 15 OOS periods, the values are backwards. > That is, be long when the faster moving average is below the slower moving > average, and go flat when it crosses from below to above. The values of the > parameters vary quite a lot, with four of the steps having both lengths > greater than 60 weeks. In the steps where the moving average periods are > both below 30, 10 of 11 have the values backwards -- often the faster period > is one bar. > > The conclusion I draw is that the traditional thoughts on using moving > average crossovers as filters for trading systems have it backwards. When > run as a walk forward test, which is the only way to estimate what future > performance is likely to be, the S&P 500 is mean reverting, not trend > following. > > Thanks for listening, > Howard >
