Pine:如何根据条件设置背景色

时间:2020-04-08 21:46:42

标签: pine-script

如果最后一个收盘价高于收盘价50格,我试图根据某种条件(例如绿色)对整个背景上色,如果低于收盘价则为红色。
我尝试了不同的方法,并且可以更改颜色,但是最终并不能为整个背景着色,而是仅对某些区域着色。

我的脚本:

bgcolor(close[50] >= open[1] ? color.red : color.green, transp=70)

split colors in background

在这种情况下,整个背景应为红色,因为最后一个收盘价低于收盘价50格(用黄色标签表示)以下。
关于我需要更改的任何想法吗?

1 个答案:

答案 0 :(得分:0)

这将根据您的情况为背景着色。它使用了很宽的线条来完成此操作,并且由于该指示器占据了所有背景,因此某些图表功能(例如测量工具)无法与Shift-Click一起使用,但是如果您明确选择其工具,它将可以使用。 / p>

如果不想让背景覆盖整个图表,则可以使用背景的位置和宽度。

背景很浅。如果要更改其亮度,则需要在两个color.new()调用中使用透明度,因为无法通过输入对其进行控制:

//@version=4
study("", "", true)

offsetCalc  = input(50,     "Close lookback", minval = 2)
offstBg     = input(100,    "Background: Horizontal Offset to its Center", minval = 0, step = 5)
lineWidth   = input(10000,  "Background: Width", minval = 0, step = 100)

condUp      = barstate.islast and close[1] > close[offsetCalc]
condDn      = barstate.islast and close[1] < close[offsetCalc]
c_lineColor = condUp ? color.new(color.green, 97) : condDn ? color.new(color.maroon, 97) : na

if barstate.islast
    var line bg = na
    line.delete(bg)
    bg := line.new(bar_index[offstBg], low - tr, bar_index[offstBg], high + tr, color = c_lineColor, extend = extend.both, width = lineWidth)