Pine Script™和图表的关系更加紧密

Jul 12, 2022

chart命名空间中的新内置函数现在为脚本提供了对图表属性的更多可见性。有了它们,我们还为您的Pine脚本引入了一种新的行为类型,它允许它们仅在可见K线上重新计算和重新绘制,当交易者滚动或缩放图表时自动重新调整。

Chart properties图表属性

新的chart.bg_color内置函数返回图表背景的颜色。您可以使用它来调整脚本的配色方案以适应图表的上下文。它的chart.fg_color伙伴返回一种颜色,该颜色将提供与图表背景颜色的最佳对比度,无论它是什么。

另一组新的布尔内置函数可以检测脚本运行的图表类型。他们是:

最后一个将在所有标准图表类型(返回非综合close价的那些)上返回true:美国线、K线图、空心K线图、柱状图、线形图、面积图或基准线。

可见K线和动态重新计算

新的chart.left_visible_bar_timechart.right_visible_bar_time内置函数返回图表最左侧和最右侧可见K线的开盘时间。当交易者在图表上滚动或缩放时 — 导致图表上可见K线的范围发生变化 — 使用这些新内置函数的脚本将自动重新执行,以便计算和视觉效果可以适应新的环境。这为一种全新的脚本打开了大门,这些脚本可以根据可见K线范围的变化进行动态调整。

此示例从第一个可见K线的open到最后一个可见K线的close绘制一个箭头,并显示该范围的盈利/亏损:

//@version=5
indicator("Chart gain/loss", "", true)

// Save the `open` of the leftmost visible bar.
var float chartOpen = na
if time == chart.left_visible_bar_time
    chartOpen := open
else if time == chart.right_visible_bar_time
    // Run the following code on the chart's rightmost visible bar.
    color arrowColor = close > chartOpen ? color.lime : color.fuchsia
    // Draw arrow once, then modify it.
    var line arrow = line.new(na, na, na, na, xloc.bar_time, extend.none, na, line.style_arrow_right, 3)
    line.set_xy1(arrow, chart.left_visible_bar_time, chartOpen)
    line.set_xy2(arrow, chart.right_visible_bar_time, close)
    line.set_color(arrow, arrowColor)
    // Draw percentage label once, then modify it.
    var label percentage = label.new(na, na, na, xloc.bar_time, yloc.price, #00000000, label.style_label_down, size = size.huge)
    int midTime = int(math.avg(chart.left_visible_bar_time, chart.right_visible_bar_time))
    label.set_xy(percentage, midTime, math.avg(chartOpen, close))
    label.set_text(percentage, str.tostring((close - chartOpen) / chartOpen * 100, format.percent))
    label.set_textcolor(percentage, arrowColor)

请注意,由于使用此功能的脚本将比正常脚本更频繁地重新执行,因此如果想要保持TradingView图表的通常响应能力,则必须注意使用高效代码并保持计算轻松。

我们发布了一个图表VWAP指标作为如何使用这一新功能的示例。它会自动锚定在可见K线上:

PineCoders 帐户还发布了一个VisibleChart库,以帮助Pine Script™程序员充分利用这一新功能。

要随时了解新的Pine Script™功能,请留意用户手册的发行说明PineCoders帐户还通过Telegram上的Squawk BoxTwitter帐户和TradingView上的“Pine Script™ Q&A”公共聊天广播更新。

我们希望大家发现这些需求度很高的功能很有用。请继续向我们发送您的反馈和改进建议。我们为您打造TradingView,总是渴望收到您的来信。


 

还没有关注我们的中文微信公众号?快来扫二维码吧!

Look first Then leap

TradingView专门为您而打造,请确保您充分利用我们出色的功能
开启图表