Pine Script:当两个条件相继满足时绘制标签



我试图在多个条形图上一个接一个满足两个条件后绘制一个标签。

首先,四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) 

最新更新