无法在警报消息中传递松脚本动态变量



我在Pinescript中有一个函数,它返回基于几个指标的值:

varip a = 0.0
calculate_() =>
period = 50
basis = ta.sma(src, period)
dev = mult * ta.stdev(src, period)
upper = basis + dev
lower = basis - dev
nATR = ta.atr(period) / src
hATR = ta.highest(nATR, period)
lATR = ta.lowest(nATR, period)
nSD = ta.stdev(src, period) / src
hSD = ta.highest(nSD, period)
lSD = ta.lowest(nSD, period)
MA = ta.wma(nATR, period)
perm = 100 * math.abs(nATR - MA) / MA
pers = 100 * (nSD - lSD) / (hSD - lSD)
pera = 100 * (nATR - lATR) / (hATR - lATR)
perb = 100 * (src - lower)/(upper - lower)
per = gear == 4 or gear == 5 ? (perm + pers + pera + perb) / 4 : gear==1 ? math.min(100 , (pers + pera + perb) / 2.5) : (pers + pera + perb) / 3
EL = (100 - per) / (6-gear)
float(math.max(1,int(EL + .5)))
a:= calculate_Leverage()
plot(a, 'Leverage')
label.new(bar_index, high, str.tostring(a))

它绘制并标记正确的值。

但当我试图把它放在提醒信息中时,我只得到";NaN";保持警惕。尝试了两种方法,结果相同:

var msgLongBuy = str.format("{0,number,#.#}", a)
str.tostring(a,"#.00)")

通过用var声明msgLongBuy,它在历史上的第一个栏上初始化,并且不会重新计算,这意味着消息不会保持动态。尝试从字符串声明中删除var

最新更新