简体   繁体   中英

Struggling to convert Pine Script from v1 to v5

Please see below an indicator I found on Trading View. I want to convert it to v5 but there is no options appearing in tradingview pinescript. could anybody please help me to fix this?

Many thanks

study("Supertrend V1.0 - Buy or Sell Signal", overlay = true)

Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))


TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)

The auto convert tool works starting from v3 . So, you need to update it to v3 yourself and then let the tool do its job.

The only thing you need to pay attention to is self referenced variables are removed .

//@version=5
indicator('Supertrend V1.0 - Buy or Sell Signal', overlay=true)

Factor = input.int(3, minval=1, maxval=100)
Pd = input.int(7, minval=1, maxval=100)

Up = hl2 - Factor * ta.atr(Pd)
Dn = hl2 + Factor * ta.atr(Pd)

TrendUp = 0.0
TrendUp := close[1] > TrendUp[1] ? math.max(Up, TrendUp[1]) : Up
TrendDown = 0.0
TrendDown := close[1] < TrendDown[1] ? math.min(Dn, TrendDown[1]) : Dn

Trend = 0.0
Trend := close > TrendDown[1] ? 1 : close < TrendUp[1] ? -1 : nz(Trend[1], 1)
Tsl = Trend == 1 ? TrendUp : TrendDown

linecolor = Trend == 1 ? color.green : color.red

plot(Tsl, color=linecolor, style=plot.style_line, linewidth=2, title='SuperTrend')

plotshape(ta.cross(close, Tsl) and close > Tsl, 'Up Arrow', shape.triangleup, location.belowbar, color.new(color.green, 0), 0)
plotshape(ta.cross(Tsl, close) and close < Tsl, 'Down Arrow', shape.triangledown, location.abovebar, color.new(color.red, 0), 0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title='Up Entry Arrow', colorup=color.new(color.lime, 0), maxheight=60, minheight=50)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title='Down Entry Arrow', colordown=color.new(color.red, 0), maxheight=60, minheight=50)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM