输入变量的 If 语句和值 - Pine 脚本 - Tradingview
If statement and value of an input variable - Pine Script - Tradingview
我在 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
变量与整数进行比较,您应该使用 ==
(等于) 运算符。单=
用于声明变量。
- pinescript语法中没有
end if
- 您不能在局部范围内使用
plot
函数,只能在全局范围内使用。
- 在局部范围内使用 security() 函数声明变量将产生编译错误 -
Can't call 'security' inside: 'if', 'for'
解决方案是将所有计算、安全调用和绘图函数移动到全局范围。
如果您打算使用 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)
我在 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
变量与整数进行比较,您应该使用==
(等于) 运算符。单=
用于声明变量。 - pinescript语法中没有
end if
- 您不能在局部范围内使用
plot
函数,只能在全局范围内使用。 - 在局部范围内使用 security() 函数声明变量将产生编译错误 -
Can't call 'security' inside: 'if', 'for'
解决方案是将所有计算、安全调用和绘图函数移动到全局范围。
如果您打算使用 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)