在if语句中,使用用作输入值的变量的值是有问题的,这是我的代码的一部分:
//@version=3
study(title="v5.0", shorttitle="v5.0", overlay=true)
PP_display = input(1, minval=0, maxval=1)
if (PP_display = 1)
xHigh = security(ticker,"D", high[0])
xLow = security(ticker,"D", low[0])
xClose = security(ticker,"D", close[0])
vPP = (xHigh+xLow+xClose) / 3
vR1 = vPP+(vPP-xLow)
vS1 = vPP-(xHigh - vPP)
vR2 = vPP + (xHigh - xLow)
vS2 = vPP - (xHigh - xLow)
vR3 = xHigh + 2 * (vPP - xLow)
vS3 = xLow - 2 * (xHigh - vPP)
plot(vPP, color=change(vPP) ? na : black, title="vPP", style = linebr, linewidth = width, transp=0)
end if因此,我得到了这个错误:“输入‘PP_display’时的语法错误”。
我找不到为什么..。
谢谢你的帮忙
发布于 2020-11-08 14:35:28
PP_display变量与整数进行比较,则应使用== (等于)运算符。单variables.=不是end if。在本地作用域中不能使用plot函数,只有在global.Can't call 'security' inside: 'if', 'for'解决方案是将所有的calcs、安全调用和绘图函数移到全局范围。
如果您的意图是用PP_display输入隐藏图,则可以在plot函数的系列参数中直接使用三元条件运算符? :。
//@version=3
study(title="v5.0", shorttitle="v5.0", overlay=true)
PP_display = input(1, minval=0, maxval=1)
xHigh = security(ticker,"D", high[0])
xLow = security(ticker,"D", low[0])
xClose = security(ticker,"D", close[0])
vPP = (xHigh+xLow+xClose) / 3
vR1 = vPP+(vPP-xLow)
vS1 = vPP-(xHigh - vPP)
vR2 = vPP + (xHigh - xLow)
vS2 = vPP - (xHigh - xLow)
vR3 = xHigh + 2 * (vPP - xLow)
vS3 = xLow - 2 * (xHigh - vPP)
plot(PP_display == 1 ? vPP : na, color=change(vPP) ? na : black, title="vPP", style = linebr, linewidth = 2, transp=0)https://stackoverflow.com/questions/64738755
复制相似问题