我正在写一个脚本,比较两个符号之间%差异的演变,但我不明白为什么计算错误。
这是脚本:
//@version=4
study(title="Compare", shorttitle="Compare")
rocPeriod = input(1, minval = 1)
Max = input(defval = 5, type = input.float)
Min = input(defval = -5, type = input.float)
showLines = input(true)
showDelta = input(true)
sym1 = input(defval = "BINANCE:BTCUSDT", type = input.symbol)
sym2 = input(defval = "BINANCE:ETHUSDT", type = input.symbol)
perc_change = roc(close, rocPeriod)
res = ""
s1 = security(sym1, res, perc_change)
s2 = security(sym2, res, perc_change)
delta = s1 - s2
var float cumulativeDelta = 0.0
if barstate.isfirst
cumulativeDelta == delta
else
cumulativeDelta := cumulativeDelta + delta
plot(showLines ? s1 : na, "s1", color.orange)
plot(showLines ? s2 : na, "s2", color.blue)
hline(0)
plot(showDelta ? delta : na, "delta", delta > 0 ? color.lime : color.red, 1, plot.style_columns)
plot(cumulativeDelta, title = "CD", color= color.fuchsia)
bgcolor(cumulativeDelta >= Max ? color.red : na, transp=50)
bgcolor(cumulativeDelta <= Min ? color.green : na, transp=50)
起初,一切都很顺利,脚本识别第一个条形图并设置值“cumulativeDelta”=“delta”,然后正确执行第一次计算。然而,在几小节之后,“累积增量”的结果开始略有错误(例如:0.31+0.20=0.52),然后,随着小节的相继,这种差异只会变得更加明显,直到它导致最终结果与现实之间的重大差异。
错误在哪里?提前感谢您的帮助