I just finished backtesting all EURJPY 5M data that I have for 2013 and found some good results.
The logic of this system is similar to what I use with my daily Hermes and weekly Daikoku low volatility breakout systems, in that we lookout for a period of low volatility and trade the breakout.
The following diagram is the sort of price movement that we'd expect in a ranging market. Of particular importance is the fact that the short-term moving average will usually hover in the middle of this range.
The big money is responsible for price movement. When a market is ranging, the big money is accumulating positions, but we usually don't know in which direction until it's too late, after the range is already broken. Also, we can't simply place pending orders outside of the range and trade every apparent breakout as many will be fake or simply a bit of noise. So we need to look for something that's more 'pre-emptive'. I thought volume analysis would help, but so far haven't found anything I could really use.
So how do we pre-emptively detect the break of a range? Remember that the market is an auction market, with buyers and sellers bidding their wares. Once price approaches a level they like, buyers enter the market and bid against each other for supply, driving price up (vice versa for sellers).
A ranging market ends when buyers run out of supply to buy, resulting in a bullish breakout. How do we detect this? Just prior to the bullish breakout, we can observe the final exhaustion of supply on our chart, as shown below:
Note where the point of exhaustion is relative to the moving average. We have a good probability that sellers are exhausted if the market turns upwards ABOVE the moving average. If the market had turned upward below the moving average, then it's more likely that we are still in a ranging market.
So how do we turn this into a rule-based system? These are the MT4 indicators I used for my backtest:
- 35 EMA
- 14 ADX
- Fractals (under Bill Williams)
The 35 EMA is what we use for our moving average. We use 14 ADX to determine whether the market is ranging or trending. When ADX is less than 20, the market is ranging.
We look for a setup as follows, where a retracement occurs within a range without touching the 35 EMA (this shows that buyers have bid the price up and sellers are running out of supply). The retracement must have an ADX of less than 20, otherwise we've missed the move.
That's about as much detail as I'd like to get into. These setups don't occur that frequently, perhaps once a day on the 5M chart. These setups seem to work best during the Tokyo and London sessions, unsurprisingly. It fails during NY.
A reward:risk ratio of 0.75:1 seems to work best. Based on a sample size of 144 trades, my profit factor was 1.55. For a 5M system, I think this is remarkably good, considering just how much transaction costs eat up your profit.
This is the equity curve I ended up with, using 2% risk per trade.
It's not the smoothest equity curve, but for something on the 5M chart, I'm surprised I finally found something that might work. The next step would be testing this logic on other pairs.