Breakout Trading

K.I.S.S. - Keep It Simple, Stupid! There's a lot to be said for keeping your trading system simple, and breakout trading is one way of doing exactly that.

Discretion Assured?

Broadly speaking, trading systems fall into two categories - discretionary and mechanical. There are those who will claim they have a "mechanical system that allows for some discretion", but to us that sounds like being "a little bit pregnant"; any system really falls into either one category or the other.

For squeezing the best out of every trade, avoiding blindingly obvious losing setups, and adapting to unusual or changing market conditions, discretionary systems will always have the upper hand. Mechanical systems though, have their advantages:

Mechanical System Design

There are a number of ways of creating a mechanical trading system:

Of these, breakout systems are by far the simplest trading system type to design, back test, and trade. As with many systems, they are particularly good in trending markets, and their very nature (breaking out of a range) means they already have a built in element of filtering against range bound times.

At their most basic, breakout systems require a rule to specify how the initial price range is defined, how a break of that range is defined, where to exit if the trade fails, and where to exit if it succeeds. Of course, we also need to specify what it is we are trading, and the timeframe we expect to trade it within. Let's create an example system for the EUR/USD currency pair. We will assume we want to trade no more than once per day, and are located in Europe.

Range : As a starting point, we can look back over some recent charts to find out if there is a particular time of day when new trends become established - after all - we are looking to catch the trend. A superficial scan suggests that around 9am GMT, once London opens for business, is a common time for things to get moving. Looking back from there, we find that the price often seems to consolidate for several hours before that time, no doubt as traders wait on the sidelines for the European session to get underway and a direction to take hold. So we'll define our range time for now, as being 4am - 9am GMT. The high and low prices set between those times will be the price range we are looking for breakouts from.

Breakout Criteria : As we are keeping things simple, we will define a breakout as the price exceeding the high or low set during the 4-9am range by at least 1 pip. There are further options we could explore later on to fine tune the system, for example, we may decide that for a breakout to be valid, a price bar must break out of the range and close outside it. But for now, we'll go with a simple break.

Exit On Failure : In other words, where to set the stop. We could use the other side of the range as the stop, but if the range is wide then this may be exposing us to an unacceptably high risk per trade. Another option might be to use a stop value calculated from the ATR - the average true range - a measure of how far the price is moving in each candle period. This has the advantage that the stop price will automatically adjust to changing market conditions. However, the goal here is to keep things as simple as possible, so for now we will use an arbitrary fixed stop of 30 pips, which we can adjust later as we back test.

Exit on Success : Here again we have several options. We could trail our stop loss and let the market take us out, we could have a fixed target - perhaps based on the ATR, or the size of the initial range. But for the sake of simplicity, we will say that our trade will be closed at 9pm UK time if not already stopped out. This gives it the maximum opportunity to let the trend run its course without being capped by any fixed target.

Testing....testing....

Now the hard work begins! Having define the trade criteria, we need to back test them to see how they would have fared in the real market. Opinions vary widely on the usefulness of back testing - past performance is no guarantee of future success after all. But for system design, we believe back testing is essential; if a system fails miserably in the past, there is less likelihood of it suddenly turning into a winner the day you start trading it for real. On the other hand a system that has performed consistently has a reasonable chance of continuing to do so. As with all trading, it is a matter of probability!

Back testing can be done by hand - manually checking charts a day at a time to apply the rules and note the results - or we can use a computer to do the hard work if we have suitable software. For our system, we'll use our own back testing program, but there are plenty of options - TradeStation is one of the most popular, and eSignal also has back testing abilities.

Here are the results from our software for one month using the parameters we defined above. Normally we would back test much further back in time, but for the sake of space in this article, we have used a month of data:

RUNNING BACKTEST FOR DATE RANGE:
Start Date : 01 Oct 2003
End Date : 31 Oct 2003

Trade Config
------------
Range Start Time : 04:00:00
Range End Time : 09:00:00
Long Offset : 0.0001
Short Offset : 0.0001
No Trade After : 21:00:00
Close Time : 21:00:00
Stop Loss : .003
No Target

TRADES:

01 Oct 03 > L @ 1.1663 Closed @ 1.1682 = 0.0019
02 Oct 03 > S @ 1.1687 Closed @ 1.1668 = 0.0019
03 Oct 03 > S @ 1.1664 Closed @ 1.1541 = 0.0123
06 Oct 03 > L @ 1.1562 Closed @ 1.1677 = 0.0115
07 Oct 03 > L @ 1.1727 Closed @ 1.1749 = 0.0022
08 Oct 03 > S @ 1.1757 Stopped @ 1.1787 = -0.003
09 Oct 03 > S @ 1.1807 Closed @ 1.1724 = 0.0083
10 Oct 03 > L @ 1.1731 Closed @ 1.1791 = 0.006
13 Oct 03 > S @ 1.1692 Closed @ 1.167 = 0.0022
14 Oct 03 > L @ 1.1625 Stopped @ 1.1595 = -0.003
15 Oct 03 > S @ 1.1683 Closed @ 1.1626 = 0.0057
16 Oct 03 > L @ 1.1633 Stopped @ 1.1603 = -0.003
17 Oct 03 > L @ 1.1599 Stopped @ 1.1569 = -0.003
20 Oct 03 > S @ 1.1594 Stopped @ 1.1624 = -0.003
21 Oct 03 > L @ 1.1645 Stopped @ 1.1615 = -0.003
22 Oct 03 > L @ 1.1696 Closed @ 1.179 = 0.0094
23 Oct 03 > S @ 1.1793 Closed @ 1.1766 = 0.0027
24 Oct 03 > S @ 1.1765 Stopped @ 1.1795 = -0.003
27 Oct 03 > L @ 1.1743 Stopped @ 1.1713 = -0.003
28 Oct 03 > L @ 1.1721 Stopped @ 1.1691 = -0.003
29 Oct 03 > S @ 1.1674 Closed @ 1.1657 = 0.0017
30 Oct 03 > L @ 1.1668 Stopped @ 1.1638 = -0.003
31 Oct 03 > L @ 1.1622 Stopped @ 1.1592 = -0.003

RESULT ANALYSIS
---------------

Trade days = 23
Non-Trade Days = 0
Traded 100.0% of days in the range

Stopped : 11
(Target not used)
Closed at end time : 12

Wins = 12 (52.2%)
Win Total = 0.0658
Biggest Win = 0.0123
Average Win = 0.00548

Losses = 11 (47.8%)
Loss Total = -0.033
Biggest Loss = -0.003
Average Loss = -0.003

Biggest Drawdown = 0.0133 (From 24 Oct 03 - 31 Oct 03)
Profit Factor = 1.99
Total Points = 0.0328

 


Break out trade back test result.

Above: Back test result and equity curve for 1 month

Using software in this way, we can easily modify any of our parameters to find a better combination, but we must avoid curve fitting - i.e. coming up with a system that has been over-optimised to a specific set of back test data. What we are really looking for, is a set of parameters that provide as consistent a return as possible over as long a period of time as possible. In other words, we want the line on the the equity curve chart to be as smooth as we can get it, we don't necessarily want it to go as high as we can make it. A good system will increase our account balance consistently- it's better to take regular small draw-downs than the occasional massive one. A drawdown is any period when the overall profit is below the highest profit the system has generated, so in the example above it can be seen that the longest drawdown was between 24th and 31st October.

The test result shows slightly more than 50% of trades were winners, and over the month the system has returned 328 pips (remember one month is not sufficient for a real test, this small data set has been used for the purposes of fitting the results into this article!) The biggest drawdown was 133 pips, so this starts to give us an idea of the account size we'd need to be able to trade this live.

More Testing

Back testing is not the end of the story - next comes forward testing! This is the simulated trading of the system in real time to see if it can realistically be traded, and to verify that the back test results play out as expected. How long forward testing should be performed for really depends on how well the results match the back test. A forward test can be automated with suitable trading software, although we believe that at least initially it should involve manual simulated trading in order to fully understand the system. Trading manually you are likely see changes that could be implemented to make the system even more profitable; naturally you would then return to back test any such changes, and if successful, forward test them. So we can see that system design is an iterative process of continuous improvement and adaptation to ever changing market conditions.

Trading It

Trading a breakout system is relatively easy after all that testing! In our example, we would need to be sat in front of our chart shortly before 9am GMT in order to note the high and low prices set during the 4-9am range. At 9am we would then put in a Buy Stop order 1 pip above the high, and a Sell Stop 1 pip below the low. Most forex brokers allow you to attach a Stop-loss order to the entry order, and so with our orders in place, we would have nothing left to do - until one of those orders got hit. As soon as we were in position, we would need to cancel the opposing order, having decided that we were trading once per day only. Naturally, if our criteria were different or if our back test proved that taking the opposing order if it was hit as well, performed better overall, then we'd leave it there! Again, some brokers will allow you to specify entry orders as "one cancels other", so if the Buy is hit then the Sell order is automatically cancelled, and vice versa - thus rendering us almost redundant after the orders are in. Our only task then would be to check the trade at the 9pm close out time, and manually exit if we hadn't been stopped.

That's not quite all. When trading a mechanical system, it is very important to keep accurate and up to date records of how it is performing. Markets change over time, and it is almost inevitable that at some time, the system will stop "working". The only way to know when this time has arrived is to constantly compare the results against those that are expected. If we know from our back testing that the system has previously recovered from a drawdown of x pips over y days, and in live trading it goes well beyond that, we would have an indication that the market has changed and that the system is no longer valid.

The forex angels say: Breakout trading systems are among the simplest to design, test, and trade. They can be surprisingly effective, robust, and profitable. But always monitor performance and be prepared to pull the plug as soon as a system stops performing as expected. 

More Resources

As well as back testing, TradeStation can be used for automatic trading - providing you have a TradeStation broker account.
TSimBO from TradingSimulation is specifically designed for automatic breakout trading with an Interactive Brokers account, so can trade Forex futures (both simulated and live), and is free.