通过分组来防止过多的警报

  • 本文关键字: pine-script
  • 更新时间 :
  • 英文 :


有时,特别是当金字塔是高的,电视将停止警报,如果有一个突发的活动。我想对同一分钟(或会话)内发生的警报进行分组,以便只有一个警报将与订单组成一起出现。

例如,如果在同一分钟内我收到

buy 30 at 00:00:33
buy 30 at 00:00:46
buy 30 at 00:00:46

我想接收buy 90 at 00:01:00,同样,如果我收到

buy 30 at 00:00:00
sell 30 at 00:00:45
sell 30 at 00:00:59

我想接收sell 30 at 00:01:00。我可以利用什么机制来进行这样的分组吗?我见过有人使用时间戳的模来实现这一点,但我不相信,这是pine脚本的惯用方法吗?我不希望它将来坏了。

您可以使用自己的自定义alert()函数并在您决定时触发它。这样,您就可以创建一个变量并计算希望购买或出售的数量,并在秒数等于0时触发警报。例如:

var qty = 0
if second(time) == 0 and qty > 0
alert("buy " + str.tostring(qty))
qty := 0
if second(time) == 0 and qty < 0
alert("sell " + str.tostring(qty))
qty := 0
longCond = // whatever you want
shortCond = // whatever you want
if longCond
qty += 30
if shortCond
qty -= 30

主要问题是代码在酒吧关闭时运行,如果没有交易就没有酒吧,因此有时没有second(time) == 0将成为true的酒吧。

一种解决方法是在1秒时间框架图表上计算60条,并在达到60条时触发alert()功能:

var qty = 0
var barCounter = 0
barCounter += 1
longCond = // whatever you want
shortCond = // whatever you want
if longCond
qty += 30
if shortCond
qty -= 30
if barCounter == 60
if  qty > 0
alert("buy " + str.tostring(qty))
if qty < 0
alert("sell " + str.tostring(qty))
qty := 0
barCounter := 0

虽然我意识到60个1秒的小节不等于60秒,但这可能是目前最接近问题的解决方案,因为很多时候60秒内没有60小节。

相关内容

  • 没有找到相关文章

最新更新