如何修复研究错误:“'最高'函数中'长度'参数0的无效值它必须> 0在进行追踪止损时?

问题描述

我正在尝试设定 ATR 的移动止损倍数,因为出现了买入或卖出信号。我自然会尝试 baRSSince(long) 函数,以确定自买入信号以来的柱线数量。然后我使用 highest 函数找到自买入信号以来的最高 ATR 值。我的代码是:

atr = atr(input(defval=14,title="ATR"))
Multip = input(0.2,minval = 0)
lower = low - atr * Multip
upper = high + atr * Multip


baRSSincelong = baRSSince(long)
baRSSinceshort = baRSSince(short)
islong = baRSSincelong < baRSSinceshort


plotlower= highest(lower,baRSSincelong)
plotupper= lowest(upper,baRSSinceshort)


stoplossline = islong ? plotlower : plotupper


plot(stoplossline)

在上面的代码中定义了“long”和“short”,但这无关紧要。

出于某种奇怪的原因,这个脚本给出了一个研究错误内容如下:

“'highest'函数中'length'参数(0)的值无效。它必须> 0。

有人可以帮我解决这个问题吗?

解决方法

如果没有找到具有指定条件的柱线,函数 barssince 将返回值 na。这种情况在最初的酒吧是可能的。对于函数 highestlowest,必须指定大于零的参数 length。您需要在脚本中定义如何处理此类情况。