Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

//@version=5

indicator("NADUN🦈SUPUN [🐳 SL Crypto Whales🥷🇱🇰]",overlay=true)


length = input.int(14)
k = input.float(1.,'Slope',minval=0,step=.1)
method = input.string('Atr','Slope Calculation Method',
options=['Atr','Stdev','Linreg'])
show = input(false,'Show Only Confirmed Breakouts')
//----
upper = 0.,lower = 0.
slope_ph = 0.,slope_pl = 0.
src = close
n = bar_index
//----
ph = ta.pivothigh(length,length)
pl = ta.pivotlow(length,length)
slope = switch method
'Atr' => ta.atr(length)/length*k
'Stdev' => ta.stdev(src,length)/length*k
'Linreg' => math.abs(ta.sma(src*bar_index,length)-
ta.sma(src,length)*ta.sma(bar_index,length))/ta.variance(n,length)/2*k

slope_ph := ph ? slope : slope_ph[1]


slope_pl := pl ? slope : slope_pl[1]

upper := ph ? ph : upper[1] - slope_ph


lower := pl ? pl : lower[1] + slope_pl
//----
single_upper = 0
single_lower = 0
single_upper := src[length] > upper ? 0 : ph ? 1 : single_upper[1]
single_lower := src[length] < lower ? 0 : pl ? 1 : single_lower[1]
upper_breakout = single_upper[1] and src[length] > upper and (show ? src >
src[length] : 1)
lower_breakout = single_lower[1] and src[length] < lower and (show ? src <
src[length] : 1)
plotshape(upper_breakout ? low[length] : na,"Upper
Break",shape.labelup,location.absolute,#26a69a,-
length,text="B",textcolor=color.white,size=size.tiny)
plotshape(lower_breakout ? high[length] : na,"Lower
Break",shape.labeldown,location.absolute,#ef5350,-
length,text="B",textcolor=color.white,size=size.tiny)
//----
var line up_l = na
var line dn_l = na
var label recent_up_break = na
var label recent_dn_break = na

if ph[1]
line.delete(up_l[1])
label.delete(recent_up_break[1])

up_l := line.new(n-length-1,ph[1],n-length,upper,color=#26a69a,
extend=extend.right,style=line.style_dashed)
if pl[1]
line.delete(dn_l[1])
label.delete(recent_dn_break[1])

dn_l := line.new(n-length-1,pl[1],n-length,lower,color=#ef5350,
extend=extend.right,style=line.style_dashed)
if ta.crossover(src,upper-slope_ph*length)
label.delete(recent_up_break[1])
recent_up_break := label.new(n,low,'B',color=#26a69a,
textcolor=color.white,style=label.style_label_up,size=size.small)

if ta.crossunder(src,lower+slope_pl*length)
label.delete(recent_dn_break[1])
recent_dn_break := label.new(n,high,'B',color=#ef5350,
textcolor=color.white,style=label.style_label_down,size=size.small)

//----
plot(upper,'Upper',color = ph ? na : #26a69a,offset=-length)
plot(lower,'Lower',color = pl ? na : #ef5350,offset=-length)

alertcondition(ta.crossover(src,upper-slope_ph*length),'Upper Breakout','Price
broke upper trendline')
alertcondition(ta.crossunder(src,lower+slope_pl*length),'Lower Breakout','Price
broke lower trendline')

//@version=4
study(title="UT Bot Alerts", overlay = true)

// Inputs
a = input(1, title = "Key Vaule. 'This changes the sensitivity'")
c = input(10, title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

xATR = atr(c)
nLoss = a * xATR

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead


= false) : close

xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] >
nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0),
min(nz(xATRTrailingStop[1]), src + nLoss),
iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))

pos = 0
pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src >
nz(xATRTrailingStop[1], 0), 1,
iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -
1, nz(pos[1], 0)))

xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue

ema = ema(src,1)
above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above


sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop


barsell = src < xATRTrailingStop
plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location =
location.belowbar, color= color.green, textcolor = color.white, transp = 0, size =
size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location =
location.abovebar, color= color.red, textcolor = color.white, transp = 0, size =
size.tiny)

barcolor(barbuy ? color.green : na)


barcolor(barsell ? color.red : na)

alertcondition(buy, "UT Long", "UT Long")


alertcondition(sell, "UT Short", "UT Short")

You might also like