我试图在多个条形图上一个接一个满足两个条件后绘制一个标签。
首先,四K sma穿过五K sma,然后在下一次一K sma穿过一D sma时,它会画上一个标签。
ATM脚本保存得很好,但没有画上标签,我已经没有办法解决这个问题了。
oneK=sma(stoch(close, high, low, 11), 10)
oneD=sma(oneK, 4)
fourK=sma(stoch(close, high, low, 176), 160)
fiveK=sma(stoch(close, high, low, 352), 320)
test=bool(na)
fir=bool(na)
if (crossover(fourK,fiveK))
test:=true
if (test==true) and crossover(oneK,oneD)
fir:=true
test:=false
plotshape(fir, style = shape.arrowup, location = location.belowbar, color=#ff4545, size=size.small)
问题是:
- 您在声明变量时不使用
var
关键字,因此它们是在每个栏上初始化 - 一旦
fir
设置为true,就再也不会将其重置为false
这将起作用:
//@version=4
study("SO 64706821", overlay=true, shorttitle="SO")
oneK = sma(stoch(close, high, low, 11), 10)
oneD = sma(oneK, 4)
fourK = sma(stoch(close, high, low, 176), 160)
fiveK = sma(stoch(close, high, low, 352), 320)
var bool test = na // Initializion occurs once, on first bar
bool fir = false // Initializion occurs on every bar
if crossover(fourK,fiveK)
test := true
if test and crossover(oneK,oneD)
fir := true
test := false
plotshape(fir, style = shape.arrowup, location = location.belowbar, color=color.red, size=size.small)
// Background color to make it more clear where the signals occur, because there are so few.
bgcolor(fir ? color.yellow : na, transp=80)