can you add this indicator  // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RicardoSantos

//@version=5
indicator('Open Range Breakout', 'Range Breakout', true)

int    mode = input.int(1, 'Mode (1:timeframe, 2:session):', minval=1, maxval=2)
string tf   = input.string('60', 'Timeframe for open range:', confirm=false)
string tf2  = input.string('D', 'Timeframe for range capture:', confirm=false)
string sess = input.session('0400-1500', 'Session for mode 2:')
repaint = input.bool(true, 'Repaint?') ? barmerge.lookahead_on : barmerge.lookahead_off


bool is_new_day = switch mode
    1 => ta.change(time(tf2)) > 0 
    2 => ta.change(nz(time(tf2, sess), 0)) > 0
    => false
bool is_end_session = switch mode
    2 => na(time(tf2, sess))
    => false

var float ND_open = na
var float ND_high = na
var float ND_low  = na
var float ND_stretch  = 0
var float filter_high = na
var float filter_low  = na
var float filter_high_stretch = na
var float filter_low_stretch  = na
[tfo, tfh, tfl, tfr] = request.security(syminfo.tickerid, tf, [open, high, low, math.max(high-open, open-low)], lookahead=repaint)
if is_new_day
    ND_open := tfo
    ND_high := tfh
    ND_low  := tfl
    ND_stretch := na(ND_stretch[1]) ? 0.0 : (ND_stretch[1] * 9 + tfr) / 10
    filter_high := ND_high
    filter_low  := ND_low
    filter_high_stretch := ND_high + ND_stretch
    filter_low_stretch  := ND_low  - ND_stretch
if is_end_session
    filter_high := na
    filter_low  := na
    filter_high_stretch := na
    filter_low_stretch  := na

plvl(src)=> src!=src[1]?na:src
st = plot.style_linebr
fh  = plot(title='TR', series=plvl(filter_high), style=st, color=color.black)
fl  = plot(title='BR', series=plvl(filter_low), style=st, color=color.black)
fhs = plot(title='TS', series=plvl(filter_high_stretch), style=st, color=color.green)
fls = plot(title='BS', series=plvl(filter_low_stretch), style=st, color=color.maroon)

fill(title='Positive Stretch', plot1=fh, plot2=fhs, color=color.rgb(76, 175, 79, 50))
fill(title='Negative Stretch', plot1=fl, plot2=fls, color=color.rgb(136, 14, 79, 50)) ,  into this //@version=3

study(title="Magic MA", shorttitle="Magic MA", overlay=true, max_bars_back=2000)

// 
// Author:  JustUncleL
// Date:    10-July-2016
// Version: v3
// 
// Description:
// A trend following indicator that uses fast QQE crosses with Moving Averages
// for trend direction filtering. QQE or Qualitative Quantitative Estimation is based 
// on the relative strength index, but uses a smoothing technique as an additional 
// transformation.
//

// - INPUTS START
// Slow MA - type, source, length
type3   = input(defval="HullMA", title="Slow MA Type: ", options=["SMA", "EMA", "WMA", "VWMA", "SMMA", "DEMA", "TEMA", "HullMA", "ZEMA", "TMA", "SSMA"], type=string)
len3    = input(defval=57, title="Slow Length", minval=1)  // Changed slow length to 57
//
// QQE rsi Length, Smoothing, fast ATR factor, source
RSILen  = input(6,title='RSI Length')
SF      = input(3,title='RSI Smoothing Factor')
QQE     = input(2.618,title='Fast QQE Factor')
threshhold = input(10, title="RSI Threshhold")
//
filter  = input(false,title="Use Moving Average Filter")
dfilter = input(false, title="Use Trend Directional Filter" )
ushunt  = input(false, title="Use Shunt Alerts to prevent Repaint")
RSIsrc  = input(close,title="Source")
srcclose= RSIsrc
shunt  = ushunt ? (RSIsrc==open ? 0 : 1) : 0
// - INPUTS END

// - FUNCTIONS

// Returns MA input selection variant, default to SMA if blank or typo.
variant(type, src, len) =>
    v1 = sma(src, len)                                                  // Simple
    v2 = ema(src, len)                                                  // Exponential
    v3 = wma(src, len)                                                  // Weighted
    v4 = vwma(src, len)                                                 // Volume Weighted
    v5 = 0.0
    v5 := na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len    // Smoothed
    v6 = 2 * v2 - ema(v2, len)                                          // Double Exponential
    v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len)               // Triple Exponential
    v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))   // Hull
    v11 = sma(sma(src,len),len)                                         // Triangular
    // SuperSmoother filter
    // © 2013  John F. Ehlers
    a1 = exp(-1.414*3.14159 / len)
    b1 = 2*a1*cos(1.414*3.14159 / len)
    c2 = b1
    c3 = (-a1)*a1
    c1 = 1 - c2 - c3
    v9 = 0.0
    v9 := c1*(src + nz(src[1])) / 2 + c2*nz(v9[1]) + c3*nz(v9[2])
    // Zero Lag Exponential
    e = ema(v1, len)
    v10 = v1+(v1-e)
    // return variant, defaults to SMA if input invalid.
    type=="EMA"?v2 : type=="WMA"?v3 : type=="VWMA"?v4 : type=="SMMA"?v5 : type=="DEMA"?v6 : type=="TEMA"?v7 : type=="HullMA"?v8 : type=="SSMA"?v9 : type=="ZEMA"?v10 : type=="TMA"? v11: v1

// - FUNCTIONS END

// - Fast ATR QQE
//
Wilders_Period = RSILen * 2 - 1
//
Rsi = rsi(RSIsrc,RSILen)
RSIndex = ema(Rsi, SF)
AtrRsi = abs(RSIndex[1] - RSIndex)
MaAtrRsi = ema(AtrRsi, Wilders_Period)
DeltaFastAtrRsi = ema(MaAtrRsi,Wilders_Period) * QQE
//
newshortband=  RSIndex + DeltaFastAtrRsi
newlongband= RSIndex - DeltaFastAtrRsi
longband = 0.0
shortband=0.0
trend = 0
longband:=RSIndex[1] > longband[1] and RSIndex > longband[1] ? max(longband[1],newlongband) : newlongband
shortband:=RSIndex[1] < shortband[1] and  RSIndex < shortband[1] ? min(shortband[1],newshortband) : newshortband
trend:=cross(RSIndex, shortband[1])? 1 : cross(longband[1], RSIndex) ? -1 : nz(trend[1],1)
FastAtrRsiTL = trend==1 ? longband : shortband

// - SERIES VARIABLES
// MA's
ma_slow = variant(type3, srcclose, len3)
//
// Thresh Hold channel Crosses give the BUY/SELL alerts.
QQEclong = 0
QQEcshort=0
QQEclong := RSIndex>(50+threshhold) ? na(QQEclong[1]) ? 1 : QQEclong[1]+1 : 0
QQEcshort := RSIndex<(50-threshhold) ? na(QQEcshort[1]) ? 1 : QQEcshort[1]+1 : 0

//
// Check Filtering.
QQEflong = (not filter or srcclose > ma_slow) 
QQEfshort = (not filter or srcclose < ma_slow)
//
// Get final BUY / SELL alert determination
buy = 0
sell = 0
buy := QQEclong>0 and QQEflong ? na(buy[1]) ? 1 : buy[1]+1 : 0
sell := QQEcshort>0 and QQEfshort ? na(sell[1]) ? 1 : sell[1]+1 : 0

// - SERIES VARIABLES END

// - PLOTTING
// Ma's
plot(ma_slow, title="MA Slow", color=blue, linewidth=2, transp=0)

// - PLOTTING END

// - ALERTING

// Removed QQE BUY/SELL alert plotting and alertcondition

// - ALERTING END

//EOF? for my strategy