Time and time again I see traders give up on a perfectly good trading strategy too soon because it “doesn’t work anymore” or they aren’t able to see a rule they can apply to make the strategy significantly more profitable.
It pains me to see a trader abandon strategies that have so much potential.
In this post, I’ll show you one way to get more edge out of a trading strategy and gain more insight that you can apply to other strategies as well.
One common situation when developing strategies is ending up with too few trades in a backtest to draw significant conclusions from. The more trades that you start with in a backtest, the better chance you’ll end up with a significant number of profitable trades after you optimize it.
Here’s a technique I’ve used to add more trades to a backtest so I can be significantly more confident in the strategy than otherwise.
Let’s say you’re testing a strategy that looks for stocks gapping up over 5% and going long, but you’re not finding enough trades to draw confident conclusions.
Most traders throw up their hands and give up, but here’s a way to double the number of trades in your backtest.
Instead of looking at the long side only, combine the backtest with the equivalent strategy on the short side. In our example, that would mean adding stocks that are gapping down more than -5% and going short.
One problem to address is “normalizing” the data so you can analyze these separate trades together. For example, when you look at the gap, you’ll have positive numbers for the longs and negative numbers for the shorts.
That makes it difficult to determine the best threshold to use for the gap percent.
To solve this, add another column for the absolute value of the gap. That value will be normalized across long and short trades allowing you to properly analyze the right threshold to use.
You’ve now effectively doubled the number of trades in your backtest giving you more data to examine – a big win.
What about a filter that a simple absolute value function won’t work for?
Take one of my favorite filters to use: position in range.
It takes the high and low of some range (say, yesterday’s trading range) and gives you a number corresponding to the trade’s entry price position within that range.
For longs, you might be looking for trades in the top part of the range (values of around 100) but for shorts you might be looking for trades in the bottom part of the range (values of around 0).
A simple absolute value function won’t work here.
For this situation, I create a column called “directional position in range”. For longs, the value is equivalent to the normal position in range. But for shorts, the values are reversed by simply taking the value and subtracting it from 100. For example, a value of 1 for position in range for a short (meaning it was near the low of the range) becomes 99 (100 – 1).
This new directional position in range column allows me to treat long and short trades equivalently for the purposes of optimizing the strategy.
This simple technique can often be the difference between a dead-end because of limited data and a profitable insight that can be applied to a profitable strategy.