需要帮助将 Tradingview pine 脚本从版本 2 转换为版本 5

Need help converting Tradingview pine script from version 2 to version 5

我是 TradingView Pine 脚本的新手。 我正在寻求有关当前版本 2 的 pine 脚本的帮助,但我正在尝试将其转换为版本 5 并且出现很多编译错误。

以下是我尝试从 V2 转换为 V5 的完整脚本以及我遇到的错误。 我在转换时遇到这些错误 转换失败,原因:源pine不正确。第 12 行:变量 sum 声明为整型。无法为其分配类型系列的表达式 '''

//@version=2
study("Trend Signal", overlay=true)
RISK= input(title="RISK", type=integer, defval=14)
value10=3+RISK*2
value11=value10
x1=67+RISK
x2=33-RISK

range(length) =>
    sum = 0
    for i = 1 to length-1
        sum := sum + abs(high[i]-low[i])
    sum / length

MRO1(length, range) =>
    true_count = 0
    counter = 0
    for i = 1 to length-1
        x = if abs(open[i]-close[i+1]) >= range*2.0
            true_count := true_count + 1
            counter = i
            break
    mro = if true_count >= 1
        counter
    else
        -1  
mro
MRO2(length, range) =>
    true_count = 0
    counter = 0
    for i = 1 to length-1
        x = if abs(close[i+3]-close[i]) >= range*4.6
            true_count := true_count + 1
            counter = i
            break
    mro = if true_count >= 1
        counter
    else
        -1  
    mro

wpr(length) =>
    upper = highest(length)
    lower = lowest(length)
    out = 100 * (close - upper) / (upper - lower)
    out
    
rng = range(10)
mro1=MRO1(10,rng)
mro2=MRO2(7,rng)

rez = if mro1>-1
    3
else
    value10
    
value11:=rez
rez1 = if mro2>-1
    4
else
    value10
value11:=rez1

value2 = 100-abs(wpr(value10))

Table_value2=value2

notset=false
ii1 = 1
for i1 = 1 to 300
    if ((Table_value2[i1] < x2 or Table_value2[i1] > x1) and notset==false)
        notset:=true
        ii1 := i1

z=Table_value2[ii1]
up = if value2 < x2
    if Table_value2[ii1] > x1
        ii1
    else
        0
else
    0


plotshape(up, style=shape.labeldown, location=location.abovebar, size=size.normal, color=aqua, text="Sell")

dn = if value2 > x1
    if Table_value2[ii1] < x2
        ii1
    else
        0
else
    0


plotshape(dn, style=shape.labelup, location=location.belowbar, size=size.normal, color=aqua, text="Buy")

'''

首先将其转换为v3。只需将 //@version=2 更改为 //@version=3 即可编译。

之后使用 Tradingview 提供的自动转换器将其升级到 v4,然后对 v5 进行同样的操作。

在转换为 v4 之前,请务必进行以下更改:

sum=0sum=0.0:

range(length) =>
    sum = 0.0
    for i = 1 to length - 1 by 1
        sum := sum + abs(high[i] - low[i])
        sum
    sum / length

在两个 MRO 函数中执行以下操作。 x 应该删除,因为没有分配给它。

if abs(open[i] - close[i + 1]) >= range * 2.0
    true_count := true_count + 1
    counter = i
    break