Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=4
- //Original by DonovanWall: https://www.tradingview.com/script/JwaPW9af-Laguerre-Multi-Filter-DW/
- study("Laguerre True Range", shorttitle="LTR", overlay=true)
- src = input(defval=hl2, title="Source")
- drawRibbon = input(false, "Draw Ribbon?")
- showcross = input(true, "Show cross over/under")
- //Gamma Inputs
- gamma1 = input(defval=0.1, step=0.001, title="Gamma 1")
- gamma2 = input(defval=0.15, step=0.001, title="Gamma 2")
- gamma3 = input(defval=0.2, step=0.001, title="Gamma 3")
- gamma4 = input(defval=0.25, step=0.001, title="Gamma 4")
- gamma5 = input(defval=0.3, step=0.001, title="Gamma 5")
- gamma6 = input(defval=0.35, step=0.001, title="Gamma 6")
- gamma7 = input(defval=0.4, step=0.001, title="Gamma 7")
- gamma8 = input(defval=0.45, step=0.001, title="Gamma 8")
- gamma9 = input(defval=0.5, step=0.001, title="Gamma 9")
- gamma10 = input(defval=0.55, step=0.001, title="Gamma 10")
- gamma11 = input(defval=0.6, step=0.001, title="Gamma 11")
- gamma12 = input(defval=0.65, step=0.001, title="Gamma 12")
- gamma13 = input(defval=0.7, step=0.001, title="Gamma 13")
- gamma14 = input(defval=0.75, step=0.001, title="Gamma 14")
- gamma15 = input(defval=0.8, step=0.001, title="Gamma 15")
- gamma16 = input(defval=0.85, step=0.001, title="Gamma 16")
- gamma17 = input(defval=0.9, step=0.001, title="Gamma 17")
- gamma18 = input(defval=0.95, step=0.001, title="Gamma 18")
- //Laguerre Filter
- laguerre(a, b) =>
- l0 = 0.0
- l1 = 0.0
- l2 = 0.0
- l3 = 0.0
- l0 := (1 - b) * a + b * nz(l0[1])
- l1 := -b * l0 + nz(l0[1]) + b * nz(l1[1])
- l2 := -b * l1 + nz(l1[1]) + b * nz(l2[1])
- l3 := -b * l2 + nz(l2[1]) + b * nz(l3[1])
- laguerre = (l0 + 2 * l1 + 2 * l2 + l3) / 6
- laguerre
- //Filter Values
- lag1 = laguerre(src, gamma1)
- lag2 = laguerre(src, gamma2)
- lag3 = laguerre(src, gamma3)
- lag4 = laguerre(src, gamma4)
- lag5 = laguerre(src, gamma5)
- lag6 = laguerre(src, gamma6)
- lag7 = laguerre(src, gamma7)
- lag8 = laguerre(src, gamma8)
- lag9 = laguerre(src, gamma9)
- lag10 = laguerre(src, gamma10)
- lag11 = laguerre(src, gamma11)
- lag12 = laguerre(src, gamma12)
- lag13 = laguerre(src, gamma13)
- lag14 = laguerre(src, gamma14)
- lag15 = laguerre(src, gamma15)
- lag16 = laguerre(src, gamma16)
- lag17 = laguerre(src, gamma17)
- lag18 = laguerre(src, gamma18)
- //Average Laguerre True Range
- altr = (laguerre(tr, gamma1) + laguerre(tr, gamma2) + laguerre(tr, gamma3) +
- laguerre(tr, gamma4) + laguerre(tr, gamma5) + laguerre(tr, gamma6) +
- laguerre(tr, gamma7) + laguerre(tr, gamma8) + laguerre(tr, gamma9) +
- laguerre(tr, gamma10) + laguerre(tr, gamma11) + laguerre(tr, gamma12) +
- laguerre(tr, gamma13) + laguerre(tr, gamma14) + laguerre(tr, gamma15) +
- laguerre(tr, gamma16) + laguerre(tr, gamma17) + laguerre(tr, gamma18)) / 18
- amlag = (lag1 + lag2 + lag3 + lag4 + lag5 + lag6 + lag7 + lag8 + lag9 + lag10 + lag11 +
- lag12 + lag13 + lag14 + lag15 + lag16 + lag17 + lag18) / 18
- //Bands
- hb1 = amlag + altr * 1.618
- hb2 = amlag + 2 * altr * 1.618
- lb1 = amlag - altr * 1.618
- lb2 = amlag - 2 * altr * 1.618
- fcolor = amlag >= amlag[1] ? color.lime : color.red
- bcolor = #651FFF
- //Band Plots
- hplot2 = plot(hb2, color=bcolor, linewidth=2, title="High Band 2", transp=60)
- hplot1 = plot(hb1, color=bcolor, linewidth=2, title="High Band 1", transp=60)
- alplot = plot(amlag, color=bcolor, linewidth=1, title="Average Laguerre Filter", transp=80)
- lplot1 = plot(lb1, color=bcolor, linewidth=2, title="Low Band 1", transp=60)
- lplot2 = plot(lb2, color=bcolor, linewidth=2, title="Low Band 2", transp=60)
- //Band Fills
- fill(hplot1, hplot2, color=bcolor, title="High Band Fill", transp=80)
- fill(lplot1, lplot2, color=bcolor, title="Low Band Fill", transp=80)
- //Ribbon Plots
- plot(drawRibbon ? lag18 : na, color=lag18 >= lag18[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 18")
- plot(drawRibbon ? lag17 : na, color=lag17 >= lag17[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 17")
- plot(drawRibbon ? lag16 : na, color=lag16 >= lag16[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 16")
- plot(drawRibbon ? lag15 : na, color=lag15 >= lag15[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 15")
- plot(drawRibbon ? lag14 : na, color=lag14 >= lag14[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 14")
- plot(drawRibbon ? lag13 : na, color=lag13 >= lag13[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 13")
- plot(drawRibbon ? lag12 : na, color=lag12 >= lag12[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 12")
- plot(drawRibbon ? lag11 : na, color=lag11 >= lag11[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 11")
- plot(drawRibbon ? lag10 : na, color=lag10 >= lag10[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 10")
- plot(drawRibbon ? lag9 : na, color=lag9 >= lag9[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 9")
- plot(drawRibbon ? lag8 : na, color=lag8 >= lag8[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 8")
- plot(drawRibbon ? lag7 : na, color=lag7 >= lag7[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 7")
- plot(drawRibbon ? lag6 : na, color=lag6 >= lag6[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 6")
- plot(drawRibbon ? lag5 : na, color=lag5 >= lag5[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 5")
- plot(drawRibbon ? lag4 : na, color=lag4 >= lag4[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 4")
- plot(drawRibbon ? lag3 : na, color=lag3 >= lag3[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 3")
- plot(drawRibbon ? lag2 : na, color=lag2 >= lag2[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 2")
- plot(drawRibbon ? lag1 : na, color=lag1 >= lag1[1] ? color.lime : color.red, linewidth=1, title="Laguerre Filter 1")
- crossdn = high < hb2[1] and high[1] >= hb2[1] //and src < src[1]
- crossup = low > lb2[1] and low[1] <= lb2[1] //and src > src[1]
- plotshape(showcross and crossdn ? hb2 : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1)
- plotshape(showcross and crossup ? lb2 : na, location=location.absolute, style=shape.labelup, color=color.green, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1)
- barcolor(fcolor)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement