首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pinescript嵌套的if (或else if)条件计算交叉分隔符()的方法不同于先作为变量计算的情况

Pinescript嵌套的if (或else if)条件计算交叉分隔符()的方法不同于先作为变量计算的情况
EN

Stack Overflow用户
提问于 2020-08-10 07:16:40
回答 1查看 3.4K关注 0票数 1

所以我在笔录上编了一个指示符。在编写同一段代码的两种方法之间,嵌套if语句的行为似乎不同。

  • 在嵌套的if条件本身中计算语句
  • 预计算条件语句,并在嵌套的if条件中使用变量
代码语言:javascript
运行
复制
crossover  = crossover(tradeEntrySource, ind)
crossunder = crossunder(tradeEntrySource, ind)
代码语言:javascript
运行
复制
  // use statement directly
  longStopLossCheck := if (not crossover)
      if (crossunder(tradeEntrySource, ind))
          true
      else
          false

vs

代码语言:javascript
运行
复制
  // precalculate and use variable
  longStopLossCheck := if (not crossover)
      if (crossunder)
          true
      else
          false
代码语言:javascript
运行
复制
plot(series=longStopLossCheck?3:2, title="longStopLossCheck", color = color.red)
plot(series=crossunder?2:1, title="crossunder", color = color.blue)
plot(series=crossover?1:0, title="crossover", color = color.green)

第一个图像显示直接使用语句时返回的值,第二个图像显示使用变量时返回的值。

我似乎不明白为什么我会看到不同的价值观/行为。对于为什么会发生这种事,有什么见解吗?提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-08-13 12:16:50

需要在每个条形图上执行像crossover()这样的函数才能返回正确的结果,当从条件块中调用它们时,情况就不一样了,因为条件块阻止它们在每个条形图上执行。在进入if结构之前对这些函数进行预评估是解决方案。

请参阅关于该主题的松树用户手册,以及在这个主题上可能更容易理解的来自PineCoders常见问题的文章

公开:这个答案中的链接指向一个PineCoders常见问题条目。我是PineCoders社区的一员,我很可能写了FAQ条目。PineCoders是一个由TradingView支持的志愿松树编解码者团体,PineCoders的网站具有严格的教育性.TradingView和PineCoders都不能从向pinecoders.com发送流量中获得经济上的好处,而且该站点也不包含任何附属/推荐链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63335679

复制
相关文章

相似问题

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