different value for the output variable for each test run (column E). How can that
be? This is because these data are used to develop the system using a random-entry
method that allowed us to test all the individual signals the system generated,
regardless of whether all signals would have been traded, depending on if we
would have been in a trade or not already. The numbers in column B keep track of
each test run. For each test run, each time the system encounters a bar in a market
with all its regular entry criteria fulfilled, the system will enter the trade at random.
In some test runs it will, in others it won’t. Thus, although many of the trades will
be the same in many of the test runs, each test run will hold a completely unique
set of trades, different from all other test runs, which then results in a different
average profit per trade.
For the purposes of this book, I did not use the random-testing procedure
because it adds to the time it takes to test a system. I will, however, incorporate the
possibility for you to do so yourself, in the code I present in an upcoming chapter.
Be warned, though, this can be a very time-consuming task.
It also is very difficult to test more than three variables at one time, and you
can only examine the variables two at the time. Consider the testing we will walk
through: I will test ten values each for three variables at the time for two different
exit and stop concepts. For each test run, only one variable will alter its value,
while the other variables remain constant. Thus, each test will have to run through
each stock 2,000 times (10 * 10 * 10 * 2). Had I added the random-entry feature
and asked the system to test each stock an additional 10 times, each stock would
have been tested a total of 20,000 times. With the computer I’m using, a dual
processor 500 MHz Pentium III, with 256 MB RAM, running one system through
216 PART 3 Stops, Filters, and Exits
FIGURE 19.4
Columnar arrangement of data for surface chart.