如何更改当天或特定会话期间最大实体蜡烛的条形颜色

时间:2021-07-05 13:39:56

标签: pine-script

任何帮助将不胜感激 我对编码很陌生

我想确定并突出当天最大的酒吧。它必须开始查看一天的开始,如果它是迄今为止最大的条形,则将条形着色为白色。

我正在努力找出一种方法来确保它比之前的所有条都大。

我提出的代码只有在我继续手动将当前蜡烛与所有以前的蜡烛进行比较时才有效(在 A := if 行中...)这不切实际,也不起作用具有更多蜡烛的更短时间范围 这代表的另一个问题是,例如,如果我放入 100 根蜡烛来回顾它,它总是会回顾 100 根蜡烛,所以在一天开始的 15 分钟时间范围内,它会回顾到让我们说前一天中午

有人可以帮助新手吗?

当前代码:

1//设置值

OEcop = 开放 OECcl = 关闭

//确定牛/熊蜡烛及其开盘价和收盘价之间的差异

OECDif = 如果 OECop < OECcl

OECcl - OECop

其他

OECop - OECcl

///////////////////////////////////////////// /////////////////////

//测试条件 - 最大的蜡烛必须大于之前所有的蜡烛,而不仅仅是某些蜡烛 - 它必须是当天/会话中最大的蜡烛

变量 A = 0

A := if ((OECDif > OECDif[1]) and (OECDif > OECDif[2]) and (OECDif > OECDif[3]) and.....

1

其他 0

OECcolor = 如果 A > 0 color.new(color.white,10) 别的 没有

///////////////////////////////////////////// ///////////////////////

//绘图

barcolor((A > 0) ? OECcolor : na,title="最大蜡烛")

1 个答案:

答案 0 :(得分:0)

new_day = change(time("D")) != 0
range = abs(close - open)

var float todays_largest_range = na
bool new_largest_range = false


if new_day
    todays_largest_range := range
else
    if range >= todays_largest_range
        todays_largest_range := range
        new_largest_range := true

barcolor(new_largest_range ? color.white : na)
bgcolor(new_day ? color.blue : na)

我们可以使用 var 声明的变量 todays_largest_range 来存储当天的最高范围。在新的一天,我们将其重置为当天范围的第一根柱线以用作开始比较。之后的每个新柱线我们都会将新柱线的范围与存储的值进行比较,如果更大,则它成为存储在 todays_largest_range 中的新值。

我们可以使用布尔值 new_largest_range 存储是否找到了新的更大范围。当它为 true 时,我们可以使用它来设置条形颜色。