I tested the Random Exit systems the same way Van Tharp tested his Random Entry system: using $100 per contract for round-turn commissions+slippage, and using a portfolio of 10 futures markets. He ran his tests for the most recent ten years (i.e. 1981 to 1991), and so did I: from March 1997 to March 2007.
I decided to implement a particularly ugly form of Random Exits: once a trade has been entered, generate a random number "R" uniformly distributed between 1 and 30. Hold this trade exactly "R" bars and then exit on the close. (Each trade generates a new random number R and so each trade is held for a different, random, number of bars.) This is the ugly part: the short hold-time, 1-30 bars. Most trendfollowing systems hold onto trades, particularly winning trades, up to 100 or 200 bars; by restricting my test to 1-30 bar hold times, I'm applying additional stress. Roughly speaking, it takes more than 10 or 15 bars of hold time to get the average profit per trade above the commission and slippage costs ($100/contract). But I'm forcing random hold times as small as 1-2 bars. Ouch! Losing trades are cut short, and so are winning trades; both pay $100/contract commission and slippage. c.f. tested random exits having a random hold-time between 20 and 150 bars; nickmar chose a random hold-time between 20 and 200 bars. I'm sticking with the "ugly" choice of 1-30 bars, because it's a worst case test; if entry signals can make profits with these terribly punishing exits, then the benefits of good entries are demonstrated even more strongly.
First, to get a baseline, I tested Random Entries + Random Exits. Once a trade is entered, the Random Exit generates a new random number R1 and holds that trade for R1 bars, then it exits on the close. (R1 is uniformly distributed between 1 and 30 bars). After a trade exit, the Random Entry generates a new random number R2, stays out of the market (waits) for R2 bars, and then enters in a random direction (long or short) at the market price. The random wait time before new entry, R2, is between 1 and 30 bars, uniformly distributed. The system was coded into Blox and a picture of its parameter settings is shown below.
The figure called "Result1" shows the Random Entry + Random Exit system in action. Fifty different runs of this system are overlaid on the same graph, the better to visualize the min, typical, and max performance. 48 of the 50 runs lost money, and the median run (25th best out of 50) had a Compound Annual Growth Rate of -8.4 percent per year. We can think of -8.4%/yr as the Frictional Cost of commissions and slippage. Since random trading has no systematic advantage ("edge"), the expected result is breakeven, minus commissions and slippage. From this figure we see that an entry signal needs to have an "edge" of at least +8.4%/year, just to overcome C&S and achieve breakeven.
"Result2" shows another system, this time using the "ADX Burst" entry signal from Tushar Chande's book Beyond Technical Analysis. The idea behind ADX Burst is quite simple: When it appears that the trend has accelerated very quickly, jump aboard! Chande defines "a quick acceleration of trend" to be a very large one-day jump in the ADX indicator. Since ADX only measures strength of trend but not direction, Chande uses 2 moving averages to tell whether a long or a short entry is warranted. In pseudocode,
Code: Select all
if( today's ADX(18days) > (1.0 + yesterday's ADX(18days))), AND if( EMA(4days) > EMA(16days) ), THEN Enter a Long Position
The ADX Burst entry is profitable enough to overcome Commissions and Slippage, even with Random Exits. 42 of the 50 runs were profitable, and the Median run (25th best out of 50) had a Compound Annual Growth Rate of +3.1% per year, including the effects of slippage and commissions. It's no great surprise that the ADX Burst entry signal handily beats Random Entries: median CAGR= +3.1% versus Random Entry median CAGR = -8.4%. ADX Burst Entries are significantly better than random entries.