DMI

This simple modification of the stop and reverse systems employed above minimizes whipsaws as the market oscillates above and below the zero level. Instead of entries triggered around the zero level, I set the long entry criteria to +20 or greater and short entry to −20 or lower. (Note: Altering trigger points away from the zero level to reduce whipsaws is also applicable to all of the trend-following conditional trading systems, including the two moving average crossovers, MACD, momentum, and ROC.)

Using CQG, the programming code for our DMI trading system is written in this way:

Long Entry:

DDIF(@,10)[-1] XABOVE 20

Long Exit:

DDIF(@,10[-1] XBELOW 0

Short Entry:

DDIF(@,10)[-1] XBELOW -20

Short Exit:

DDIF(@,10[-1] XABOVE 0

Table 3.7 presents the backtested portfolio results from December 31, 1992, to December 31, 2002, for this system.

A quick glance at the numbers shows this system's backtested portfolio results are inferior to almost all of those examined earlier. Readers are encouraged to experiment with adding filters, such as implied volatility of options on the underlying asset breaking above the upper/lower Bollinger bands as confirming entry criteria. If implied volatility were trending up, a filter might improve our probability of participating in a sustainable trending market, thereby transforming a marginally profitable system into a viable one.5

Get Mechanical Trading Systems: Pairing Trader Psychology with Technical Analysis now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.