在循环内绘图,无法在局部范围内使用“plot”。(TradingView Pine 脚本)

Bre*_*ett 7 pine-script

我在尝试清理代码时无法确定正确的实现,并且发现了一个似乎适合 For 循环的部分,但是,我收到以下错误:

Cannot use 'plot' in local scope. 
Run Code Online (Sandbox Code Playgroud)

当尝试执行以下示例时:

a = 10
b = 5
for i = 1 to b
    j = a * i
    plot(highest(j), title="Resistance", color=b, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
Run Code Online (Sandbox Code Playgroud)

我原来的代码如下:

a=10
plot(highest(a*1), title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plot(highest(a*2), title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plot(highest(a*3), title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plot(highest(a*4), title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plot(highest(a*5), title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
Run Code Online (Sandbox Code Playgroud)

我最终希望绘图的数量(b 变量)可以从 0 调整到 20,因此仅仅写出所有绘图线并不能真正起作用。

在 Pine 中实现这一点的正确方法是什么?

谢谢你!

Pin*_*ucF -2

正确的方法是代码最后部分中的长方法。您可以使用如下内容使其更容易维护:

//@version=4
study("", "", true)
noOfPlots = input(12, minval = 0, maxval = 20)
a=10
d=0
plotNo = 0
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
plotNo := plotNo + 1, plot(plotNo <= noOfPlots ? highest(a* plotNo) : na, title="Resistance", color=color.green, linewidth=2, style=plot.style_line, transp=d, offset=-9999, trackprice=true)
Run Code Online (Sandbox Code Playgroud)