如何找到上周一的柱数?交易观点

How to find the number of bars from the last Monday ? tradingview

请告诉我如何查找前一个日期的柱数。

即今天是 2021 年 3 月 12 日星期五,我在 1 分钟时间范围内的图表上

如何知道 2021 年 3 月 8 日星期一 00:00:00 的柱数?

从 2021 年 3 月 1 日星期一开始 00:00:00

谢谢

//@version=4
study("Number of bars from date", "Bars", true)

var int     i_date_start = input(timestamp("2021-03-08"), "Start date", input.time)

var int     bar_index_start = na
var int     bar_count       = na

if na(bar_index_start) and time >= i_date_start
    bar_index_start := bar_index
    
if barstate.islast
    bar_count := bar_index - bar_index_start
    label.new(bar_index, high, "Bar count = " + tostring(bar_count))

plot(na)

编辑 1,以响应

//@version=4
study("Number of bars from date", "Bars", true)

var int     bar_index_start = na
var int     bar_count       = na
var bool    start_found     = false

if dayofweek == dayofweek.monday
    if not start_found
        bar_index_start := bar_index
        start_found := true
else
    start_found := false

if barstate.islast
    bar_count := bar_index - bar_index_start
    label.new(bar_index, high, "Bar count = " + tostring(bar_count))

plot(na)

编辑 2,以响应

//@version=4
study("Number of bars from date", "Bars", true)

int         occurrence = input(2, "Number of mondays ago", minval=1)

var int     bar_index_start = na
var int     bar_count       = na
var bool    start_found     = false
var int[]   bar_indexes     = array.new_int()
var label   lbl             = label.new(na, na, "", style=label.style_label_left)

if dayofweek == dayofweek.monday
    if not start_found
        array.unshift(bar_indexes, bar_index)
        start_found := true
else
    start_found := false

if barstate.islast
    if array.size(bar_indexes) >= occurrence
        bar_count := bar_index - array.get(bar_indexes, occurrence-1)
    else
        bar_count := na

    label.set_xy(lbl, bar_index, high)
    label.set_text(lbl, "Bar count since\n" +  tostring(occurrence) + " mondays ago:\n" + tostring(bar_count))

plot(na)