获取自上次条件以来的柱状图

Get bars since pre-last condition

我遇到以下问题:我想获取今天与上次条件为真时的天数。比较容易:

condition = ........
days_since_last_con = barssince(condition)

是否可以获取条件为真时的今天与上次时间之间的天数?最好是在上次之前?

感谢您的帮助!

是的,我们可以通过使用 var 声明的变量从条件发生时开始计数,然后使用 valuewhen 获取条件迭代发生之前在柱上计数的柱数。

//@version=5
indicator("condition counting with valuewhen", overlay = true)

m1 = ta.ema(close, 30)
m2 = ta.ema(close, 100)

plot(m1, color = color.red)
plot(m2, color = color.yellow)

cond = ta.crossover(m1, m2)

var int count = na

if cond
    count := 0
else
    count += 1

since_last = ta.barssince(cond)
since_prev = ta.valuewhen(cond, count[1], 0)
since_prev2 = ta.valuewhen(cond, count[1], 1)

xo_text = "Bars since last crossover : " + str.tostring(since_last) + "\nBars since previous crossover : " + str.tostring(since_prev + since_last + 1) + "\nBars since 2nd previous crossover : " + str.tostring(since_prev2 + since_prev + since_last + 1)

l = label.new(x = bar_index, y = close, style = label.style_label_left, text = xo_text)
label.delete(l[1])