Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © nicoakim
- //@version=5
- indicator("Support And Resistance",overlay=true)
- res1 = input.timeframe(title='Resolution S&R', defval='')
- ln = input.int(10, minval=5, title='Length of S&R')
- bars = input(100, 'Bars offset')
- gap = input(2.0, 'Gap From Wick')
- color col1 = input.color(color.new(color.green,50),title='Color Support Zone')
- color col2 = input.color(color.new(color.red,50),title='Color Resistance Zone')
- ///////////////////////////////////////////////
- reqsymbol2(resolusi,value) => request.security(syminfo.tickerid,resolusi,value)
- dt = time - time[1]
- ///////////////////////////////////////////////
- pivothigh() =>
- hprice = 0.0
- swh = ta.pivothigh(high, ln, ln)
- hprice := not na(swh) ? swh : hprice[1]
- hprice
- pivothightime() =>
- var int hprice = na
- swh = ta.pivothigh(high, ln, ln)
- hprice := not na(swh) ? time[ln] : hprice[1]
- hprice
- pivotlow() =>
- lprice = 0.0
- swl = ta.pivotlow(low, ln, ln)
- lprice := not na(swl) ? swl : lprice[1]
- lprice
- pivotlowtime() =>
- var int lprice = na
- swl = ta.pivotlow(low, ln,ln)
- lprice := not na(swl) ? time[ln] : lprice
- lprice
- boxix1(left,val,right,val2,cond1,colorbox,txt) =>
- var box[] boxi1 = array.new_box()
- if cond1
- array.unshift(boxi1,box.new(left,val, right+bars*dt,val2,xloc=xloc.bar_time,border_color=colorbox,bgcolor = colorbox,text=txt,text_color=color.white,text_halign =text.align_right,text_size=size.small ))
- for i = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
- l = box.get_top(array.get(boxi1,i))
- if high < l
- box.set_right(array.get(boxi1, i),time)
- array.remove(boxi1, i)
- for ix = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
- box.set_right(array.get(boxi1,ix),time+bars*dt)
- boxix2(left,val,right,val2,cond1,colorbox,txt) =>
- var box[] boxi1 = array.new_box()
- if cond1
- array.unshift(boxi1,box.new(left,val, right+bars*dt,val2,xloc=xloc.bar_time,border_color=colorbox,bgcolor = colorbox,text=txt,text_color=color.white,text_halign =text.align_right,text_size=size.small ))
- for i = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
- l = box.get_top(array.get(boxi1,i))
- if low > l
- box.set_right(array.get(boxi1, i),time)
- array.remove(boxi1, i)
- for ix = (array.size(boxi1) > 0 ? array.size(boxi1)-1 : na) to 0
- box.set_right(array.get(boxi1,ix),time+bars*dt)
- ///////////////////////////////////////////////
- sup = reqsymbol2(res1,pivotlow())
- supt = reqsymbol2(res1,pivotlowtime())
- resi = reqsymbol2(res1,pivothigh())
- resit = reqsymbol2(res1,pivothightime())
- boxix1(supt,sup,time+bars*dt,sup+gap,sup != sup[1],col1,str.tostring(sup))
- boxix2(resit,resi,time+bars*dt,resi-gap,resi != resi[1],col2,str.tostring(resi))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement