by Justin C. Paolini
Basso Test Variation - Pure Random Random Entry
The first robustness check we performed, was to make the entry method more random than Basso's. We ran the iterations again and the algorithm acted as follows: it randomly extracted numbers from 1 to 20 but issued a signal only if it hit a "1" (Buy) or "2" (Sell). So this system is effectively random in time, direction, and price. This system is not in the market the whole time. We also lengthened the ATR. Instead of using a 10 Day ATR, which is much closer to the current market's volatility conditions, we adopted a 200 Day ATR which should be less biased by volatility clusters in the data. Also, instead of using a fixed 3*ATR initial & trailing stop, we used a 1*ATR Initial Stop and a 2*ATR Trailing stop. The idea is to give back less profit in trending situations, and get out of the market early in choppy situations.
"Random Random" Trades with our new rules, coded by Craig Consulting on MT4
An example of the output in Excel - our own Random-Random Entry
Running various iterations of our "Random-Random" system, we get much closer to the "random" results we would expect. Some interesting outcomes -
-Results end up being much more variable. Equity curves are more of a mix between end profit and end loss compared to Basso's settings. This is to be expected because we are voluntarily adding randomness to the method.
-The total number of trades is higher. Of course, we are not in the market as long as Basso's system was and we have tighter stops - so we have more trades. This increases our sample size and adds robustness to the results, we think.
-Using a smaller trailing stop than Basso, our drawdowns are smaller.Yet our average profit is still larger (double) than our average loss. So the trailing stop is still very much working in our favor.
-The profit factor is strangely still positive. We wouldn't expect this if the market was purely random. And the result wasn't just confined to this iteration. It was consistent over all runs we performed.
At this point in our journey, Craig & I started to see through the data. We were effectively observing Forex's "tendency to trend" characteristic that commodities also possess. So any variation of a random entry and trailing stop should yield similar results. The trailing stop is in fact a simple trade management vehicle to "capture trends". And we continued to find this tendency through more and more testing.*
The Most Important Thing
After thinking through our observations, we re-ran the tests but this time we gave the random entry generator a "trend filter". Of course, one could debate what kind of trend filter was used because there are many variations on the theme but we wanted it to be as robust and non-discretionary as possible. We told the algorithm to look for situations like this:
The non-discretional trend-filter, as applied on USD/JPY daily chart since 1/1/2015
As with many other tools, it's not perfect but it gets the job done. The unshaded areas are considered "range" periods. When we applied our random entry to the filtered market states, remember that:
entries were still random in time, so the beginning of a trend state does not imply a trade initiation
entries were still random in direction, so the model can also look for longs in downwards trends and long in upwards trends.
We were attempting to maintain the random-random nature of the signals to verify further whether "filtering trending markets" could enhance the performance of the signals. Our logic was as follows: if the market state is truly the most important factor, then by only entering the market in those moments (albeit randomly) we should get better results than entering at random just anywhere, anytime. In other words, we're trying to "help" the trailing stop do its work.
Here is a sample of the results:
Sample run of Tom Basso's random entry and trailing stop combined with our trend filter
We applied Tom Basso's random entry settings combined with our Trend Filter and these were our main takeaways after multiple runs:
The profit factor was more stable.
Wins were much higher on average which compensated for a lower hit rate.
End profit distribution skewed more to the positive side when compared to Basso's original random entry.
The trend filter worked to a certain extent but to really find out if what we were seeing was non-random, we needed to verify the opposite: the results should be "bad" if we used a random entry with the trailing stop (best for trending markets) inside a range.
Some recent "range" situations as identified by our non-discretional trend filter.
A range is defined as "not in trend".
And here is a sample of the results:
Sample run of a random entry in a "no trend" environment
From this set of runs, the main takeaways are evident:
The final profit was consistently negative which was interesting considering that we were using "random" entries
The profit factor was decisively lower than on any other random entry test
The average win was no longer consistently larger than the average loss.
Summary Conclusions
After all of these test runs, it's quite easy to forget the original objective of the test runs. We were attempting to find out how important the entry was for trading FX.
Our main conclusions were:
A random entry with a volatility-based trailing stop on average makes money over long enough sample sizes in the FX market and commodities because they trend for extended periods.
Random entry positions get chopped up inside a range.
The Market Type (Trend or Range) is the overriding variable affecting system performance in our tests.
So what are some of the implication for traders?
Focus more on identifying market types and then deploy an appropriate trading system in line with that market type.
While a purely random entry strategy may be viable on paper, it's impractical and tough to stomach in real life. You can do much better than random for an entry strategy - and still not spend most of your time on refining it.
Keeping losses small is not enough of a strategy to make money over time since you can easily "die from a thousand paper cuts".
Over to You
This is our first evidence-based piece and I do need to thank our resident programmer Craig Drury for his efforts. We would appreciate any comments on our tests and if you have ideas on how to make the results even more robust, or if you have other feedback, it would be very much appreciated.
This article was written by Justin C. Paolini, trader and co-owner at FXRenew
Want to learn more? Get FREE access to the Advanced Forex Course for Smart Traders