【发布时间】:2020-11-14 20:02:18
【问题描述】:
所以我试图将此绝对强度直方图从 pine 脚本 v2 转换为 v4,但不知何故,它不允许我在同一行中初始化和自引用变量。我该如何解决这个问题?
这是我要转换的原始代码:
calc_abssio( ) =>
A=iff(close>close[1], nz(A[1])+(close/close[1])-1,nz(A[1]))
M=iff(close==close[1], nz(M[1])+1.0/osl,nz(M[1]))
D=iff(close<close[1], nz(D[1])+(close[1]/close)-1,nz(D[1]))
iff (D+M/2==0, 1, 1-1/(1+(A+M/2)/(D+M/2)))
abssi=calc_abssio()
abssio = (abssi - ema(abssi,lma))
alp=2.0/(ld+1)
mt=alp*abssio+(1-alp)*nz(mt[1])
ut=alp*mt+(1-alp)*nz(ut[1])
这是我将其转换为 pine 脚本版本 4 的尝试。以下代码未在图表上显示任何信息:
lma = input(19, title = "Ema Length")
ld = input(19, title = "Signal Length")
osl = 10
calc_abssio() =>
A = 0.0
M = 0.0
D = 0.0
A := close>close[1]? A[1]+(close/close[1])-1: A[1]
M := close==close[1]? M[1]+1.0/osl: M[1]
D := close<close[1]? D[1]+(close[1]/close)-1: D[1]
iff (D+M/2==0, 1, 1-1/(1+(A+M/2)/(D+M/2)))
abssi=calc_abssio()
abssio = (abssi - ema(abssi,lma))
alp=2.0/(ld+1)
mt = 0.0
mt:=alp*abssio+(1-alp)*nz(mt[1])
ut = 0.0
ut:=alp*mt+(1-alp)*nz(ut[1])
s=((2-alp)*mt-ut)/(1-alp)
d=abssio-s
hline(0, title="ZeroLine")
plot(abssio, color=(abssio > 0 ? abssio >= s ? color.green : color.orange : abssio <=s ? color.red
:color.orange), title="ABSSIO", linewidth=2, style = plot.style_histogram)
plot(abssio, color=color.black,title="ABSSIO_Points", linewidth=2)
plot(s, color=color.gray, title="MA")
plot(d, color=d>0?color.green:color.red)
stopLong = crossover(s, abssio)
stopShort = crossover(abssio,s)
plotshape(stopLong, style = shape.xcross, location = location.top, color = color.green)
plotshape(stopShort, style = shape.xcross, location = location.top, color = color.red)
【问题讨论】:
标签: pine-script self-reference