Pine script Pinescript-3级确认条件,时间间隔为?

Pine script Pinescript-3级确认条件,时间间隔为?,pine-script,Pine Script,我正试图找出如何编写一个指标,该指标只有在满足一个条件,然后在满足另一个条件之后(在时间范围内)和第二个条件之后才有效。它与趋势变化分析相关,有两个确认: 出现条件1 ->测试1正常,移至等待条件2 ->测试NOK,等待条件出现 条件2出现,条件1在条件2出现的5条内正常 ->测试2正常,移至等待条件3 ->测试NOK,等待条件在5条时间范围内出现。如果没有,请返回等待条件1 条件3出现,条件2在条件3出现的5条内正常 ->测试3正常,绿灯以市场价格下订单 ->测试NOK,等待条件在5条时间范

我正试图找出如何编写一个指标,该指标只有在满足一个条件,然后在满足另一个条件之后(在时间范围内)和第二个条件之后才有效。它与趋势变化分析相关,有两个确认:

  • 出现条件1 ->测试1正常,移至等待条件2 ->测试NOK,等待条件出现
  • 条件2出现,条件1在条件2出现的5条内正常 ->测试2正常,移至等待条件3 ->测试NOK,等待条件在5条时间范围内出现。如果没有,请返回等待条件1
  • 条件3出现,条件2在条件3出现的5条内正常 ->测试3正常,绿灯以市场价格下订单 ->测试NOK,等待条件在5条时间范围内出现。如果没有,请返回等待条件2;如果超出了时间范围,请返回等待条件1
您将如何编写代码的结构?我是否需要使用嵌套的if/for? 松树脚本可以吗

谢谢

编辑: 我正在合并您提供的2个Scritp,但我不明白为什么我的barssince/bar_索引逻辑不起作用

(如果条形图索引在条形图condA和condA+5之间,则CondB正常)

/@version=4
//@author=LucF,适用于PineCoder
研究(“AB或BA”,正确)
//----触发条件。
WMA1=wma(关闭,20)
WMA2=wma(关闭,50)
WMA3=wma(关闭,100)
WMA4=wma(关闭,200)
调节器=交叉(WMA1、WMA3)
condBTrigger=交叉线(WMA2、WMA3)
康达=假
condB=false
var LastCondWasA=false
如果是Conditrigger而不是LastCondWasA
康达:=真的
LastCondWasA:=真
其他的
如果condBTrigger和LastCondWasA和(barssince(condA)//@version=4
//@author=LucF, for PineCoders
study("AB or BA", "", true)

// ————— Trigger conditions.
WMA1  = wma(close, 20)
WMA2 = wma(close, 50)
WMA3  = wma(close, 100)
WMA4  = wma(close, 200)

condATrigger = crossover(WMA1,WMA3)
condBTrigger = crossover(WMA2,WMA3)

condA = false
condB = false

var LastCondWasA = false

if condATrigger and not LastCondWasA
    condA := true
    LastCondWasA := true
else
    if condBTrigger and LastCondWasA and (barssince(condA) < bar_index) and (bar_index <= barssince(condA) + 5)
        condB := true
        LastCondWasA := false
    else
        condB := false

plotchar(condA, "condA", "▲", location.belowbar, color.lime, 30, size = size.tiny, text = "A")
plotchar(condB, "condB", "▼", location.abovebar, color.red, 30, size = size.tiny, text = "B")