【问题标题】:How to use alertcondition with an if statement inside a for loop如何在 for 循环中使用带有 if 语句的 alertcondition
【发布时间】:2022-01-04 01:49:51
【问题描述】:

我想在我的 pinescript 指示器的 for 循环中执行警报函数

这是一个例子

for x
    triggerShort = if y
        true
    else
        false

alertcondition(condition=triggerShort,title='test', message='test2')

提前感谢您的帮助

【问题讨论】:

  • 您能告诉我们为什么要在循环中触发警报吗?
  • 因为为了触发我的 if 条件,我需要循环一些我通过循环获取的数据(代码只是一个过于简化的版本)
  • 但是你为什么不像例子中那样在循环内设置一个变量并将其用作循环外alertcondition的条件呢?
  • 你能简化你的代码并分享它吗?
  • 那是因为它将失去其在 for 块之外的范围。尝试通过在顶层声明它来给它一个全局范围(在任何函数之外,if/for 块等)。

标签: pine-script


【解决方案1】:

如果需要在循环内生成多个警报,则需要使用alert() 函数。

//@version=5
indicator("My Script")


var allowTrigger = false
var triggerShort = false
for x = 1 to 10
    if close > open and allowTrigger   // "some calculations resulting in true or false" 
        alert('test2')
        allowTrigger := true

// some additional event    
allowTrigger  : = false

【讨论】:

  • 感谢您的回答 我试过了,但我发现了一个新问题,我的脚本在整个图表中触发了 300bar 范围内的多头和空头信号,我无法降低该范围,因为数据可能不可靠较低的范围。但是,通过上述解决方案,问题是每次在图表中触发我的 if 条件时都会触发我的警报。但我只希望它在一个事件和一个新的信号点时触发(例如,我从 1 天前开始收到 4 个长信号,但我只希望在第五个信号生成时发出警报)
  • 您可以添加任何var 变量并控制何时触发警报。更新示例。
猜你喜欢
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
相关资源
最近更新 更多