问题描述
我正在尝试设定 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
。这种情况在最初的酒吧是可能的。对于函数 highest
和 lowest
,必须指定大于零的参数 length
。您需要在脚本中定义如何处理此类情况。