From the October 01, 2012 issue of Futures Magazine • Subscribe!

Better breakouts in the electronic age

Most short-term breakout methodologies, such as the opening-range breakout, worked well until 2008, but then fell apart because of aspects of electronic trading. All is not lost, however. We may be able to identify a new breakout point, defined by the stretch formula, for today’s electronic markets.

Our solution will address problems associated with a reference point breakout method that keys off the open. This traditional approach has two major issues. The first is defining a stop level that takes into account enough market noise to allow for a valid breakout. This is necessary to ensure that we take a breakout in the right direction. The second issue is subsequent retracement — simply whether the breakout takes hold.

We first must define an appropriate noise level to identify valid range expansion. This allows us to test a given reference as a breakout anchor, how well a given breakout holds and the effects of different filters on the breakout. We will research this by studying the next bar’s high and low and comparing it to the current bar’s close. This current close will be the anchor for our breakout. 

Our methodology measures the relevant stretch, or breakout threshold, off the current bar’s close. We will use the minimum of the next bar’s high minus the set-point, or the set-point minus the next bar’s low. Our goal is to find the set-point that produces the best profit for the research period. Next, we will identify a known factor to help us predict the direction of the breakout and the noise level of the market.

We’ll begin by using the close as the set-point. The code references daily bars, so only one breakout can be taken per day. The direction of the range expansion is known, and a breakout can be taken only in that direction. 

Sub PerfectBreakout(Hold,Direct)

Dim TomorHigh As BarArray
Dim TomorLow As BarArray

TomorHigh=tsgetdatastream(0,”High”,-1)
TomorLow=tsgetdatastream(0,”Low”,-1)

If TomorHigh-Close>Close-TomorLow Then 
If Direct>=0 then 
Buy(“”,1,Close+(Close-TomorLow)+getactiveminmove(),Stop,Day)
End if
Else
If Direct>=0 then 
Sell(“”,1,Close-(TomorHigh-Close)-getactiveminmove(),Stop,Day)
End if 
End If 

If barssinceentry>Hold then ExitLong(“”,””,1,0,CloseExit,Day)
If barssinceentry>Hold then ExitShort(“”,””,1,0,CloseExit,Day) 

End Sub

We calculate the noise off the previous close. It is defined as the minimum move off the previous close for the next day. We then take the trade in the other direction. (We don’t know this ahead of time, but here we are studying this tendency as a research tool.) If we did not use future results, we would not be able to tell whether a losing trade was because of a breakout’s retracement, or if the breakout was in the wrong direction because of incorrect analysis of the noise level. 

Page 1 of 4 >>
Comments
comments powered by Disqus
Check out Futures Magazine - Polls on LockerDome on LockerDome