In this post, I’ll discuss a forex Expert Advisor that I wrote to test the European Open breakout strategy detailed here.
A Simple High Low Breakout Forex Strategy
This strategy involves using the European market Open Price as a benchmark, and is applicable only to the pair GBPUSD. After the market open at 7am GMT, wait for price to move at least 25 pips, but not more than 40 pips above and below the Open Price. This forms the opening range. After the range is established, buy if price breaks above the range, and sell if it breaks below.
An initial stop loss of 40 pips is used. If price moves 40 pips in our favor, exit half your position. Set a second profit target using the opening range. For buy orders, add the range to the open price and use that as the second profit target. For sell orders, subtract the range from the open price. Alternatively, you can use a trailing stop of 40 pips to exit the second half of your position.
For instance, suppose GBPUSD opens at 1.6121 at 7am GMT and proceeds to move up and form a swing high at 1.6160 (39 pips above the opening price). It then retreats to 1.6093 (28 pips below the opening price) to form a swing low. The range 1.6093 to 1.6160 (67 pips) is defined as the opening range. Buy if GBPUSD moves above 1.6160 and sell if it moves below 1.6093.
Let’s consider the bearish scenario. If GBPUSD moves below 1.6093, we’ll sell and set an initial stop loss of 1.6133 (40 pips). For profit target, we’ll have one at 1.6053 (40 pips) and another at 1.6026 (Open Price – 67 pips). Alternatively, we can set the take profit at 1.6053 (40 pips) for half our position size and trail the remaining half at 40 pips. The chart below shows a profitable trade that uses a trailing stop of 40 pips to exit the second half of the position.
All in all, this is a fairly simple day trading forex strategy. The rationale behind the strategy is that when the European market opens at 7am, volatility increases and all tight stops around the open price will be triggered. After these stops are cleared, the market is ready to make its first real move. “This move is more likely to have strong traders and positions behind it and be based on more solid fundamental and technical criteria than the initial weak moves triggered simply by increased volatility.”
As this is a fairly mechanical forex breakout strategy, I decided to code a forex expert advisor to test its profitability. The only additional criteria I had to add was the definition of a swing high and a swing low. How do we decide when the high and low of the range is reached? I define a swing high as a high price that is not exceeded within the next three bars. The same applies for a swing low.
So, is this an effective forex strategy?
Well, sadly, no…
In this test, a percentage risk of 0.5% was used for each trade, and the test was conducted on both the GBPUSD M5 and M15 charts, with an account size of 100000. The test period was from 1 Jan 2001 to 30 Sep 2012.
From the table below, you can see that regardless of which exit strategy and what timeframe was used, the Expert Advisor was simply not profitable.
|TimeFrame||Two Profit Targets||One Profit Target and One Trailing Stop|
I’m not sure if the data source I used accounts for Daylight Saving, so I adjusted my expert advisor to take into account BST. However, the EA was still not profitable. In fact, results deteriorated.
I also played around with using different exit strategies to see if I can make the Expert Advisor profitable. I found that if you do not set any profit targets, but trail your stops for all orders, the expert advisor can become profitable. The best trailing stop to use is 7 times the average true range, although other values will work too. However, this only works on the M5 chart and the profit factor is too low, only 1.23(see below).
In conclusion, results from these tests do not suggest that the Expert Advisor is profitable. For now, I’ll KIV this EA until I can think of a better way to improve it. I’m still on the lookout for strategies that I can use on a lower timeframe. If you have any that you want me to test, you can always contact me using the contact form on this blog. No promise, but as long as it is not too difficult to program, and 100% mechanical, I’ll try my best.
Ok, that’s all for today. See you again in the next post. Take care and trade well.