需要帮助将 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=0
到 sum=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
我是 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=0
到 sum=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