条形图

介绍

plotcandle () 内置函数用于绘制蜡烛图。plotbar () 用于绘制常规条形图。

这两个函数都需要四个参数,用于表示要绘制的条形图的 OHLC 价格(开盘价最高价最低价收盘价)。如果其中一个为 na,则不绘制条形图。

使用`plotcandle()`绘制蜡烛图

plotcandle()的签名 是:

plotcandle(open, high, low, close, title, color, wickcolor, editable, show_last, bordercolor, display) → void

这将在单独的窗格中绘制简单的蜡烛图,全部为蓝色,使用惯常的 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.isintradayplotcandle() 调用中)。我们这样做是因为在大于或等于 1D 的时间范围内显示每日值是没有用的。

    request.security() 函数返回非 na 值(参见gaps = barmerge.gaps_on函数调用)。

  • 我们使用元组([open, high, low, close])和 request.security() 在一次调用中获取四个值。

  • 我们仅在第 0 条线上使用 var 来声明UP_COLOR颜色DN_COLOR常量。我们使用常量是因为这些颜色在我们的代码中不止一个地方使用。这样,如果我们需要更改它们,我们只需在一个地方进行更改。

  • 我们在变量初始化中为蜡烛图主体创建更浅的透明度 bodyColor,这样它们就不会遮挡图表的蜡烛图。

使用`plotbar()`绘制条形图

plotbar()的签名 是:

plotbar(open, high, low, close, title, color, editable, show_last, display, force_overlay) → void

请注意, plotbar() 没有bordercolor或 的参数wickcolor,因为传统条形图上没有边框或灯芯。

使用与上一节第二个示例相同的着色逻辑绘制常规条形图:

//@version=5
indicator("Dual-color bars")
paletteColor = close >= open ? color.lime : color.red
plotbar(open, high, low, close, color = paletteColor)

图像

Original text
Rate this translation
Your feedback will be used to help improve Google Translate