If statement If语句和输入变量的值-Pine脚本-Tradingview

If statement If语句和输入变量的值-Pine脚本-Tradingview,if-statement,pine-script,If Statement,Pine Script,我对使用一个变量的值作为输入值存在问题,在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 = s

我对使用一个变量的值作为输入值存在问题,在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'的语法错误”

我不知道为什么

谢谢你的帮助

  • 如果要将
    PP_display
    变量与整数进行比较,应使用
    ==
    (等于)运算符。单个
    =
    用于声明变量
  • 在脚本语法中没有
    end if
  • 不能在局部范围内使用
    plot
    函数,只能在全局范围内使用
  • 在局部作用域中使用security()函数声明变量将产生编译错误-
    无法在“if”、“for”内部调用“security”
  • 解决方案是将所有计算、安全调用和绘图函数移动到全局范围

    如果您打算用
    PP\u显示
    输入隐藏绘图,可以使用三元条件运算符
    ?:plot
    函数的串联参数中输入code>

    //@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)