问题
I am having trouble figuring out the proper implementation while trying to clean up my code and I found a section that seemed ripe for a For-loop, however, I receive the following error:
Cannot use 'plot' in local scope.
When trying to do the following example:
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)
My original code is as follows:
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)
I ultimately would like to have the number of plots(the b variable) adjustable from say 0 to 20 and thus just writting out all the plot lines doesn't really work.
What is the proper way to implement this in Pine?
Thank you!
回答1:
The proper way is the long way as in the last part of your code. You can make it somewhat easier to maintain using something like this:
//@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)
来源:https://stackoverflow.com/questions/61579897/plotting-within-a-loop-cannot-use-plot-in-local-scope-tradingview-pine-scri