Uses the open/closes not h/low and offsets the channel.
The code is VERY simple and the only difference is a use of the open/close rather than hi/lo so here... fill your boots.
strategy("ChannelBreakOutStrategy", overlay=true, default_qty_value=1000, initial_capital=1000)
// defaults: 1000 units on a 1000 account. No MM,
// Creates a chanel of 'length' based on the max of the opens and closes.. Not the high's, and the min of the open and closes.
// This channel is offset by 'offset'.
// So a 5 day channel with a 2 bar offset, is essentially the max/min opens/closes 7-2bars ago. (5 length)
length = input(title="Length", type=integer, minval=1, maxval=1000, defval=5)
off = input(title="Offset", type=integer, minval=0, maxval=1000, defval=2)
upBound = offset(highest(max(open,close), length),off)
downBound = offset(lowest(min(open,close), length),off)
if (not na(close))
strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")
Sorry, I mean:
if the lowest price of current epoch is smaller than the downBound value of 2 epochs ago, then SELL
if the highest price of current epoch is higher than the upBound of 2 epochs ago, then BUY
Is this how it works?
To compensate for the 'noise' this would generate.. we offset the channel back by 'offset'.