条形图
介绍
plotcandle () 内置函数用于绘制蜡烛图。plotbar () 用于绘制常规条形图。
这两个函数都需要四个参数,用于表示要绘制的条形图的 OHLC 价格(开盘价、 最高价、 最低价、 收盘价)。如果其中一个为 na,则不绘制条形图。
使用`plotcandle()`绘制蜡烛图
plotcandle()的签名 是:
这将在单独的窗格中绘制简单的蜡烛图,全部为蓝色,使用惯常的 OHLC 值:
//@version=5
indicator("Single-color candles")
plotcandle(open, high, low, close)
要将它们染成绿色或红色,我们可以使用以下代码:
//@version=5
indicator("Example 2")
paletteColor = close >= open ? color.lime : color.red
plotbar(open, high, low, close, color = paletteColor)
请注意,该color
参数接受“系列颜色”参数,因此诸如color.red
、、、color.lime
之类的常量值"#FF9090"
以及在运行时计算颜色的表达式(如此处的
paletteColor
变量所示)都可以起作用。
您可以使用实际 OHLC 值以外的值来构建条形图或蜡烛图。例如,您可以使用以下代码计算和绘制平滑蜡烛图,该代码还根据收盘价
相对于我们指标的平滑收盘价 ( )的位置来为烛芯着色
c
:
//@version=5
indicator("Smoothed candles", overlay = true)
lenInput = input.int(9)
smooth(source, length) =>
ta.sma(source, length)
o = smooth(open, lenInput)
h = smooth(high, lenInput)
l = smooth(low, lenInput)
c = smooth(close, lenInput)
ourWickColor = close > c ? color.green : color.red
plotcandle(o, h, l, c, wickcolor = ourWickColor)
您可能会发现绘制从较高时间范围内获取的 OHLC 值很有用。例如,您可以在日内图表上绘制每日条形图:
// NOTE: Use this script on an intraday chart.
//@version=5
indicator("Daily bars")
// Use gaps to only return data when the 1D timeframe completes, `na` otherwise.
[o, h, l, c] = request.security(syminfo.tickerid, "D", [open, high, low, close], gaps = barmerge.gaps_on)
var color UP_COLOR = color.silver
var color DN_COLOR = color.blue
color wickColor = c >= o ? UP_COLOR : DN_COLOR
color bodyColor = c >= o ? color.new(UP_COLOR, 70) : color.new(DN_COLOR, 70)
// Only plot candles on intraday timeframes,
// and when non `na` values are returned by `request.security()` because a HTF has completed.
plotcandle(timeframe.isintraday ? o : na, h, l, c, color = bodyColor, wickcolor = wickColor)
注意:
-
我们在使用脚本“更多”菜单中的“视觉顺序/置于最前面”后显示脚本的图。这会导致脚本的蜡烛图显示在图表蜡烛图的顶部。
-
仅当满足两个条件时,脚本才会显示蜡烛:
- 该图表采用的是日内时间范围(请参阅
timeframe.isintraday
在 plotcandle() 调用中)。我们这样做是因为在大于或等于 1D 的时间范围内显示每日值是没有用的。- 这
request.security() 函数返回非 na 值(参见
gaps = barmerge.gaps_on
函数调用)。 -
我们使用元组(
[open, high, low, close]
)和 request.security() 在一次调用中获取四个值。 -
我们仅在第 0 条线上使用 var 来声明
UP_COLOR
颜色DN_COLOR
常量。我们使用常量是因为这些颜色在我们的代码中不止一个地方使用。这样,如果我们需要更改它们,我们只需在一个地方进行更改。 -
我们在变量初始化中为蜡烛图主体创建更浅的透明度
bodyColor
,这样它们就不会遮挡图表的蜡烛图。
使用`plotbar()`绘制条形图
plotbar()的签名 是:
请注意,
plotbar()
没有bordercolor
或 的参数wickcolor
,因为传统条形图上没有边框或灯芯。
使用与上一节第二个示例相同的着色逻辑绘制常规条形图:
//@version=5
indicator("Dual-color bars")
paletteColor = close >= open ? color.lime : color.red
plotbar(open, high, low, close, color = paletteColor)