首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tradingview pine脚本中的if语句问题

tradingview pine脚本中的if语句问题
EN

Stack Overflow用户
提问于 2019-12-02 16:41:26
回答 2查看 854关注 0票数 1

我尝试在我的tradingview pine脚本中加入一个简化的switch-statement:

代码语言:javascript
复制
//@version=3
study("my_test",shorttitle="bands",overlay=true)

string VOLA_INDEX = ""

if (ticker == "USOIL")
   VOLA_INDEX := "OVX"
if (ticker == "GOLD")
   VOLA_INDEX := "GVZ"
if (ticker == "GER30")
   VOLA_INDEX := "DV1X"   


src = security(ticker,"D",close[1])
vola = security(VOLA_INDEX,"D",close[1])

bands1 = src * vola/100 * sqrt(0.00273972602) 
bands3 = src * vola/100 * sqrt(0.00821917808) 

upper1 = src + bands1
lower1 = src - bands1

plot( src, title="mean", color=black, style=linebr, linewidth=2, transp=100, trackprice = true,offset=-9999)
plot( upper1, title="upper", color=blue, style=linebr, linewidth=2, transp=40, trackprice = true,offset=-9999)
plot( lower1, title="lower", color=blue, style=linebr, linewidth=2, transp=40, trackprice = true,offset=-9999)

不知何故,这可能会失败。

有人知道语法有什么问题吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-12-02 18:59:23

您需要先初始化VOLA_INDEX,然后再为其赋值。

string VOLA_INDEX = "“

票数 0
EN

Stack Overflow用户

发布于 2019-12-02 23:48:09

这不会像您希望的那样工作,因为security不能接受可变参数(即VOLA_INDEX字符串)。我通过?-operator修复了您的代码,因此代码显示了如何实现您的想法。顺便说一句,我已经将代码翻译成了pine v.4,这里我的建议是使用v.4,因为以前的版本不支持,所以可能会有一些问题。

代码语言:javascript
复制
//@version=4
study("my_test",shorttitle="bands",overlay=true)


vola = syminfo.ticker == "USOIL" ? security("OVX", "D", close[1]) :
  syminfo.ticker == "GOLD" ? security("GVZ", "D", close[1]) :
  syminfo.ticker == "GER30" ? security("DV1X", "D", close[1]) :
  na // I'm not sure about this. What should be here if none of the symbols matches

src = security(syminfo.ticker, "D", close[1])


bands1 = src * vola/100 * sqrt(0.00273972602) 
bands3 = src * vola/100 * sqrt(0.00821917808) 

upper1 = src + bands1
lower1 = src - bands1

plot(src, title="mean", color=color.black, style=plot.style_linebr, linewidth=2, transp=100, trackprice = true,offset=-9999)
plot(upper1, title="upper", color=color.blue, style=plot.style_linebr, linewidth=2, transp=40, trackprice = true,offset=-9999)
plot(lower1, title="lower", color=color.blue, style=plot.style_linebr, linewidth=2, transp=40, trackprice = true,offset=-9999)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59135220

复制
相关文章

相似问题

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