在两种情况下计算条数然后计算结果

Count bar number in two condition then count the result

我想开始计算条件为“close > close[1]”的绿色柱数并存储该数字直到我有 10 个绿色柱,然后比较这 10 个柱的收盘价,如果柱 2 收盘则计数 1高于柱线 1 直到 8 倍,

(200, 300, 500, 400, 600, 500, 800, 900, 1000, 1100)
       1    2         3         4    5    6      7

(假设是10根绿柱的收盘价,那么就是7倍), 计算数量时,如果这 10 个柱中有一个收盘价低于前一个, 直到满足8次条件或超过“回溯柱数”数才停止计数,然后停止计数,重新计数。

这是我的代码:

//@version=5
indicator("Count", "C")
var int     barsBack        = input.int(30, 'Number of bars lookback', 0)

var int[]   greenBars       = array.new_int(barsBack, 0)
var int[]   redBars         = array.new_int(barsBack, 0)
var int     greenBarCount   = 0
var int     redBarCount     = 0

direction = ta.change(close)
chup = close > close[1]
if chup             
    if direction > 0                
        array.push(greenBars, 1)    
        array.push(redBars,   0)    
    else if direction < 0           
        array.push(greenBars, 0)    
        array.push(redBars,   1)    

    if direction != 0              
        array.shift(greenBars)      
        array.shift(redBars)       

    greenBarCount := array.sum(greenBars)
    redBarCount   := array.sum(redBars)

//BAR    
cond = greenBarCount >= 10

var int    ingreenbar  = 0
for i = 0 to 10
    if cond[i]
        if close > close [1]
            ingreenbar := ingreenbar + 1
        else
            ingreenbar := 0

updaygreen = ingreenbar >= 8

但是好像不行...有人知道怎么做吗?请帮我解决。非常感谢!

//@version=5
indicator("Green bars", overlay = true, max_labels_count = 500)

barsBack = input.int(10)

var float[] green_bar_array = array.new_float()

if close > close[1]
    array.push(green_bar_array, close)

if array.size(green_bar_array) > barsBack
    array.shift(green_bar_array)

bool updaygreen = false
int green_count = 0

if array.size(green_bar_array) == barsBack
    for i = 1 to barsBack - 1
        if array.get(green_bar_array, i) >= array.get(green_bar_array, i - 1)
            green_count += 1
    if green_count >= 8
        updaygreen := true


if green_count > 0
    label.new(x = bar_index, y = high, style = label.style_label_down, size = size.tiny, text = str.tostring(green_count))

bgcolor(updaygreen ? color.lime : #00000000)