Untitled
unknown
plain_text
2 years ago
5.3 kB
18
Indexable
// ATR Envelope Indicator - Credits to QuantNomad, HPotter (a legend)
//@version=5
sess1txt = 'Timeframe to monitor for signals'
sess2txt = 'Timeframe to use for displaying market signals of importance'
indicator(title='ATR Envelope', overlay=true)
session_timeframe = input.session(defval="0700-1600",title="Signals And Alerts Session",tooltip = sess1txt,group='Sessions')
primary_session = input.string(defval="0932-1600",title='Primary Signals Session',tooltip = sess2txt,group='Sessions')
sensitivity = input(1.3, title='Sensitivity',group = 'General Settings')
atr_period = input(10, title='ATR Period')
use_confirm = input(defval=false,title='Use Confirmation')
show_labels = input.bool(defval=true,title='Show Buy/Sell Labels')
show_tbl_popup = input.bool(defval = true,title='Show Signal Table Popup')
color_bars = input.bool(defval=false,title='Color Candles')
//src = input.source(defval=close,title='Source Type')
timeframe = input.timeframe(defval='5',title='Timeframe')
src = request.security(syminfo.tickerid, timeframe, close)//ta.atr(14))
InSession(sessionTimes) =>
not na(time(timeframe.period, sessionTimes))
In_The_Session = InSession(session_timeframe)
In_Primary_Session = InSession(primary_session)
ATRTrail = 0.0
xATR = request.security(syminfo.tickerid, timeframe, ta.atr(atr_period))//ta.atr(atr_period)
nLoss = sensitivity * xATR
cond1 = src > nz(ATRTrail[1], 0) ? src - nLoss : src + nLoss
cond2 = src < nz(ATRTrail[1], 0) and src[1] < nz(ATRTrail[1], 0) ? math.min(nz(ATRTrail[1]), src + nLoss) : cond1
ATRTrail := src > nz(ATRTrail[1], 0) and src[1] > nz(ATRTrail[1], 0) ? math.max(nz(ATRTrail[1]), src - nLoss) : cond2
pos = 0
colorref = src[1] > nz(ATRTrail[1], 0) and src < nz(ATRTrail[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(ATRTrail[1], 0) and src > nz(ATRTrail[1], 0) ? 1 : colorref
xcolor = pos == -1 ? color.new(#e2940e, 0) : pos == 1 ? color.new(color.lime,0) : color.blue
plot(ATRTrail, title='ATR Trail', color=xcolor, linewidth=3, style=plot.style_line)
ab1 = ta.crossover(src,ATRTrail)
be1 = ta.crossunder(src,ATRTrail)
ab2 = ta.crossover(src,ATRTrail) and barstate.isconfirmed
be2 = ta.crossunder(src,ATRTrail) and barstate.isconfirmed
above = use_confirm ? ab2 : ab1
below = use_confirm ? be2 : be1
buy = src > ATRTrail and above and In_The_Session
sell = src < ATRTrail and below and In_The_Session
var float bprice = na
var float sprice = na
var int bbarindex = na
var int sbarindex = na
var line L = na
if buy
bprice := close
bbarindex := bar_index
L := line.new(sbarindex,sprice,bar_index,bprice,color=color.yellow,style=line.style_dotted,width=2)
if sell
sbarindex := bar_index
sprice := close
L := line.new(bbarindex,bprice,bar_index,sprice,color=color.red,style=line.style_dotted,width=2)
barbuy = src > ATRTrail
barsell = src <= ATRTrail
plotshape(buy and show_labels, title='Buy', text='L', style=shape.labelup, location=location.belowbar, color= In_Primary_Session ?color.new(color.yellow, 0) : color.new(color.blue,0), textcolor=In_Primary_Session ?color.new(color.black,0) : color.new(color.white, 0), size=size.tiny)
plotshape(sell and show_labels, title='Sell', text='S', style=shape.labeldown, location=location.abovebar, color=In_Primary_Session ? color.new(color.yellow, 0) : color.new(color.blue,0), textcolor=In_Primary_Session ?color.new(color.black,0) : color.new(color.white, 0), size=size.tiny)
barcolor(color_bars and barbuy ? color.new(color.rgb(39, 103, 41),0) : na)
barcolor(color_bars and barsell ? color.rgb(181, 8, 8) : na)
if buy
alert('ATR Envelope Long ATR Envelope Long', alert.freq_once_per_bar)
if sell
alert('ATR Envelope ATR Envelope', alert.freq_once_per_bar)
var testTable1 = table.new(position = position.bottom_right, columns = 1, rows = 2, bgcolor = color.yellow, border_width = 1)
if buy and In_Primary_Session and show_tbl_popup
table.cell(table_id = testTable1, column = 0, row = 0, text = 'ATR Envelope LONG CROSS ATR Envelope LONG CROSS')
table.set_bgcolor(table_id=testTable1,bgcolor=color.new(#329e6a, 0))
table.cell_set_text_color(table_id=testTable1,column=0,row=0,text_color = color.white)
if sell and In_Primary_Session and show_tbl_popup
table.cell(table_id = testTable1, column = 0, row = 0, text = 'ATR Envelope SHORT CROSS ATR Envelope SHORT CROSS')
table.set_bgcolor(table_id=testTable1,bgcolor=color.rgb(192, 12, 12))
table.cell_set_text_color(table_id=testTable1,column=0,row=0,text_color = color.white)
if not buy and not sell
table.cell(table_id = testTable1, column = 0, row = 0, text = '')
table.set_bgcolor(table_id=testTable1,bgcolor=na)
table.cell_set_text_color(table_id=testTable1,column=0,row=0,text_color = color.black)
var testTable2 = table.new(position = position.bottom_left, columns = 1, rows = 2, bgcolor = color.yellow, border_width = 1)
table.cell(table_id = testTable2, column = 0, row = 0, text = "bbarindex: " + str.tostring(bbarindex) + " " + str.tostring(bprice) + " sbarindex: " + str.tostring(sbarindex) + " " + str.tostring(sprice))
table.set_bgcolor(table_id=testTable2,bgcolor=color.new(#329e6a, 0))
table.cell_set_text_color(table_id=testTable2,column=0,row=0,text_color = color.white) Editor is loading...