首页 > 解决方案 > 仅在交易视图中运行 pine 脚本一次

问题描述

我以前看过这个问题几次,但没有看到明确的答案。我只想运行一次 pine 脚本研究,即在我将脚本添加到图表时与最新的柱相关联。我不希望脚本在新条出现时继续运行。可以这样做吗?实际上,我希望我的脚本画一条线,然后在图表上出现新条时保持不变。

标签: pine-script

解决方案


您不能停止脚本本身运行,而是创建仅在第一个实时柱上运行一次的条件,然后在后续柱上不执行任何操作。

设置行后,您可以使用barstate.islastvar 声明的布尔变量来存储。

var plotted = false

var l1 = line.new(x1 = na, y1 = na, x2 = na, y2 = na, xloc = xloc.bar_index, extend = extend.right, color = color.red)

drawCondition = barstate.islast and plotted == false

if drawCondition
    line.set_xy1(l1, x = bar_index, y = open)
    line.set_xy2(l1, x = bar_index + 50, y = open)
    plotted := true

历史柱drawCondition将是假的,并且不会绘制线,因为barstate.islast将返回假。在第一个barstate.islast为 true 的柱上(即添加脚本时的当前实时柱),plotted仍将为 false,因此满足条件,将绘制线并将其plotted设置为true。在任何后续的柱上,plottedwill 仍然是这样,即使will be也不会满足true绘制线 ( ) 的条件,因此不会修改/重绘线。drawCondition == falsebarstate.islasttrue


推荐阅读