在两种情况下计算条数然后计算结果
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)
我想开始计算条件为“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)