In an attempt to make this system more tradable, I’ve looked at many different stop methods and filters. My hunt for a stop value resulted in concluding that a stop value really hurts its performance. This is not so unusual for a mean reverting strategy, such as the Euro scalping strategy. In an effort to improve the trading metrics I’m going to look at an area that I looked at very early on in this series – the 1% envelope.
Testing 1% Envelope
Because I’m not having any luck in using stops to help improve trading metrics maybe we can have an impact by modifying the 1% envelope. As a quick review, our trading model is a mean reverting strategy that utilizes a SMA envelope. When price closes beyond the envelope a trade is opened. The trade is closed when price returns to the envelope. Extreme price moves are defined by price movements in the Euro futures by price moves beyond a 1% band around a 200-period simple moving average (SMA). These moves do not happen often and the trading premise price will soon revert from such an extreme move.
Back in Part 2 of this series, I looked at expanding the band required before a trade is taken. In short, requiring a deeper move into our buy zone. Based upon the early tests there was a predictable response – fewer trades with larger average profit per trade. I may be willing to reduce some profits and the number of trades in order to make more money per trade and/or reduce drawdown. This may very well be a personal choice and you may see things differently. My main concern is not making enough money per trade once slippage and commissions are taken into account. The use of limit orders in a final trading system may help, but I want to avoid that now. I want my trading model to work well enough with market orders.
Using TradeStation’s optimization feature I was able to test the values neighboring the 1% envelope value. The bar graph below depicts the results. The X-axis is the percentage value for the envelope and the Y-axis is the net profit.
Our default 1% value is clearly not an optimal value. In fact, it’s on the left-hand edge of a stable range found between 1.00 and 1.15. Overall, each of the tested values produces a positive result and we do have a stable region.
Let’s increase the granularity of our study by looking at the lower end of the region with a .01 increment in the band.
Looking at this graph values 1.09 and up represent more profit. Remember also, if we pick 1.09 as our envelope value we are not just picking that value. We are picking values 1.09 and all the values above it! The 1.09 is a threshold value.
Since, I simply wish to increase the profit per trade and not eliminate too many trades, let’s take a look at how we’re going to have an impact to the trade count if we move our envelope value. Below is a graph of the number of trades vs the percentage value for the envelope.
At value 1.09 we still have well over 150 trades. I’m OK with that. Let’s take a look at the largest losing trade vs our envelope size. Does increasing the envelope size also increases the size of our largest losing trade?
The very opposite is happening. When we demand the price to extend further by declining from our 200-period SMA we start to experience smaller largest losing trades. What about the average losing trade?
Here there is not much of a change. There is a slight reduction in the size of the average losing trade, but it’s not a large difference. Nonetheless, it appears that increasing the envelope size to 1.09 and above we can increase our profit and reduce our largest losing trade.
Below is the result of our trading model with the envelope size of 1.09.
At this point we have a complete trading system and we have reached the point where we can test it on the out-of-sample data. This simply involves testing our current system on the data segment which contains the historical data that has remained “unseen” by the strategy. We hope that our trading system continues to perform well on this data. This provides a valuable test which will help indicate if we might have a strategy which is overly optimized to the historical data. Ideally, we should see our equity curve continue to climb making to equity highs. We should not see our equity curve fall. It’s possible that our equity curve on the OOS data may remain somewhat flat and the system may still be viable, but a flat equity curve would not be ideal.
The OOS data is from January 1, 2012 through October 31, 2016. Below is the equity curve of both our in-sample data and our out-of-sample data. There is a clear mark where our OOS data starts.
It appears that we’ve had a good run! Our strategy continues to make new equity highs. We are in a drawdown period, but it’s nothing out of the ordinary. Unfortunately, we don’t have very many trades. Only 22 from 2012-2017 work out to around $74 per trade. This is above our in-sample average of around $59 per trade. So, it appears that the strategy is behaving well on the out-of-sample data. Here are the annual returns.
The annual number of trades looks like the period between 2002 and 2005! So, this is probably not out of the ordinary. Overall, this clearly is not a very active system. I’m not sure how practical such a system might be in a portfolio.
We’ve spent a fair amount of time exploring this trading model. As always, there is more to test but at this point it’s probably clear that building a scalping strategy can be very difficult. Overall, I’m rather impressed with this system. While it does not trade very often, it does seem to be exploring an edge. Can you take advantage of it in the real world? Maybe. In the next article I’m going to explore that a bit more and also see what happens when we add a position sizing model to the strategy.
Previous articles in this series:
- Testing A Euro Currency Futures Scalping Strategy
- Testing A Euro Currency Futures Scalping Strategy, Part 2
- Testing A Euro Currency Futures Scalping Strategy, Part 3
- Testing A Euro Currency Futures Scalping Strategy, Part 4
- Testing A Euro Currency Futures Scalping Strategy, Part 5
You can download the source code within the previous articles.