首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >输入变量的If语句和值- Pine脚本- Tradingview

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

Stack Overflow用户
提问于 2020-11-08 13:43:50
回答 1查看 2.2K关注 0票数 0

在if语句中,使用用作输入值的变量的值是有问题的,这是我的代码的一部分:

代码语言:javascript
复制
//@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’时的语法错误”。

我找不到为什么..。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-08 14:35:28

  1. 如果要将PP_display变量与整数进行比较,则应使用== (等于)运算符。单variables.
  2. There用于在语法中声明=不是end if。在本地作用域中不能使用plot函数,只有在global.
  3. Declaring中使用本地作用域中使用security()函数的变量才会产生编译错误- Can't call 'security' inside: 'if', 'for'

解决方案是将所有的calcs、安全调用和绘图函数移到全局范围。

如果您的意图是用PP_display输入隐藏图,则可以在plot函数的系列参数中直接使用三元条件运算符? :

代码语言:javascript
复制
//@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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64738755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档