BULLFIZZ
Member
- Platform
-
- Thinkorswim
@barbaros I found this indicator on Tradingview... Can you please help us convert it to TOS? 
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Pivot Based Trailing Maxima & Minima [LUX]",overlay=true,max_bars_back=500,max_lines_count=500)
length = input.int(14,minval=2,maxval=500)
max_color = input.color(color.teal,'Trailing Maximum Color',group='Style')
min_color = input.color(color.red,'Trailing Minimum Color',group='Style')
avg_color = input.color(#ff5d00,'Trailing Maximum Color',group='Style')
bull_fill = input.color(color.new(color.teal,80),'Uptrend Area',group='Style')
bear_fill = input.color(color.new(color.red,80),'Downtrend Area',group='Style')
//----
var max = 0.
var min = 0.
ph = ta.pivothigh(length,length)
pl = ta.pivotlow(length,length)
if ph or pl
max := high[length]
min := low[length]
max := math.max(high[length],max)
min := math.min(low[length],min)
avg = math.avg(max,min)
//----
plot1 = plot(max,'Trailing Maximum',ph or pl ? na : max_color,1,plot.style_linebr,offset=-length)
plot2 = plot(min,'Trailing Minimum',ph or pl ? na : min_color,1,plot.style_linebr,offset=-length)
fill_css = fixnan(ph ? bear_fill : pl ? bull_fill : na)
fill(plot1,plot2,ph or pl ? na : fill_css)
plot(avg,'Average',ph or pl ? na : avg_color,1,plot.style_linebr,offset=-length)
plotshape(pl ? pl : na,"Pivot High",shape.labelup,location.absolute,max_color,-length,text="▲",textcolor=color.white,size=size.tiny)
plotshape(ph ? ph : na,"Pivot Low",shape.labeldown,location.absolute,min_color,-length,text="▼",textcolor=color.white,size=size.tiny)
//----
n = bar_index
max_prev = max
min_prev = min
avg_prev = avg
max2 = max
min2 = min
if barstate.islast
for line_object in line.all
line.delete(line_object)
for i = 0 to length-1
max2 := math.max(high[length-1-i],max_prev)
min2 := math.min(low[length-1-i],min_prev)
avg2 = math.avg(max2,min2)
line1 = line.new(n-(length-i),max_prev,n-(length-1-i),max2,color=max_color)
line2 = line.new(n-(length-i),min_prev,n-(length-1-i),min2,color=min_color)
linefill.new(line1,line2,color.new(fill_css,80))
line.new(n-(length-i),avg_prev,n-(length-1-i),avg2,color=avg_color)
max_prev := max2
min_prev := min2
avg_prev := avg2
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("Pivot Based Trailing Maxima & Minima [LUX]",overlay=true,max_bars_back=500,max_lines_count=500)
length = input.int(14,minval=2,maxval=500)
max_color = input.color(color.teal,'Trailing Maximum Color',group='Style')
min_color = input.color(color.red,'Trailing Minimum Color',group='Style')
avg_color = input.color(#ff5d00,'Trailing Maximum Color',group='Style')
bull_fill = input.color(color.new(color.teal,80),'Uptrend Area',group='Style')
bear_fill = input.color(color.new(color.red,80),'Downtrend Area',group='Style')
//----
var max = 0.
var min = 0.
ph = ta.pivothigh(length,length)
pl = ta.pivotlow(length,length)
if ph or pl
max := high[length]
min := low[length]
max := math.max(high[length],max)
min := math.min(low[length],min)
avg = math.avg(max,min)
//----
plot1 = plot(max,'Trailing Maximum',ph or pl ? na : max_color,1,plot.style_linebr,offset=-length)
plot2 = plot(min,'Trailing Minimum',ph or pl ? na : min_color,1,plot.style_linebr,offset=-length)
fill_css = fixnan(ph ? bear_fill : pl ? bull_fill : na)
fill(plot1,plot2,ph or pl ? na : fill_css)
plot(avg,'Average',ph or pl ? na : avg_color,1,plot.style_linebr,offset=-length)
plotshape(pl ? pl : na,"Pivot High",shape.labelup,location.absolute,max_color,-length,text="▲",textcolor=color.white,size=size.tiny)
plotshape(ph ? ph : na,"Pivot Low",shape.labeldown,location.absolute,min_color,-length,text="▼",textcolor=color.white,size=size.tiny)
//----
n = bar_index
max_prev = max
min_prev = min
avg_prev = avg
max2 = max
min2 = min
if barstate.islast
for line_object in line.all
line.delete(line_object)
for i = 0 to length-1
max2 := math.max(high[length-1-i],max_prev)
min2 := math.min(low[length-1-i],min_prev)
avg2 = math.avg(max2,min2)
line1 = line.new(n-(length-i),max_prev,n-(length-1-i),max2,color=max_color)
line2 = line.new(n-(length-i),min_prev,n-(length-1-i),min2,color=min_color)
linefill.new(line1,line2,color.new(fill_css,80))
line.new(n-(length-i),avg_prev,n-(length-1-i),avg2,color=avg_color)
max_prev := max2
min_prev := min2
avg_prev := avg2