在不破坏情节逻辑的情况下,情节被破坏时无法让情节停止绘画

问题描述 投票:0回答:0

我正在为 TradingView 在 Pine Script 版本 5 中构建一个反转策略。

想象这样一种情况,您收到一些反转信号,比方说突破布林带上限或下限,您想要在 ATR 的某个倍数上下画线作为止损和利润目标。我可以做到这一点,但是,我似乎无法做到的有两件事:

  1. 如果任何一条线被破坏,两条线都应该停止绘画。
  2. 如果信号来自相同的方向,则应忽略它,但如果信号来自相反的方向,则应采用,然后重新绘制线条,然后重新开始该过程。

First image, example of not stopping plotting Second image, example of multiple signals in same direction changing plots

您可以在第一张图片中看到缺陷示例。线条绘制在正确的位置。然而,当上线被突破时,它们会继续绘制,直到形成新的信号。在第二张图片中,您可以看到另一个缺陷,如果同一方向的信号出现,它会根据新信号重新定位线路,只有当信号来自相反方向时才会发生这种情况。

这里是相关代码。感谢您的任何帮助,您可以提供!即使是 ChatGPT 似乎也不知道该怎么做。

if rangeDotUp and (atr_stop or atr_target)
    stopLine := close[1] - atr[1] * atr_stop_mult
    targetLine := close[1] + atr[1] * atr_target_mult
else if rangeDotDown and (atr_stop or atr_target)
    stopLine := close[1] + atr[1] * atr_stop_mult
    targetLine := close[1] - atr[1] * atr_target_mult
else
    stopLine := stopLine[1]
    targetLine := targetLine[1]

plot(stopLine, style=plot.style_circles, color=color.gray, linewidth=1, title="ATR Stop Line")
plot(targetLine, style=plot.style_circles, color=color.gray, linewidth=1, title="ATR Target Line")
pine-script pine-script-v5 tradingview-api
© www.soinside.com 2019 - 2024. All rights reserved.