介绍Pine Script v4!

Jun 25, 2019

瞧瞧新版本的Pine Script v4编程语言!它包含了许多新功能。我们改进了语言的结构并修复了一些问题。然而,最关键和期待已久的功能是绘图对象的支持。我们将简要提及此博客文章中的新功能。如果您想了解详细信息,请仔细阅读文档参考手册(请注意,您可以直接进入绘图对象描述部分)。

标签绘图对象
label.new函数允许您在图表上绘制标签,包括包含任意文本的标签。下面是一个脚本的示例,该脚本绘制包含最后一个柱的关闭的标签:

//@version=4
study("Last Bar Price", overlay=true)

l = label.new(bar_index, na, 'last price is '+tostring(close), 
  color=close >= open ? color.green : color.red, 
  textcolor=color.white,
  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])


使用label* 创建标签对象后,可以编辑删除标签对象。以下是使用标签的更复杂脚本的示例 -  Pivot Points High / Low线条绘图对象

line.new函数允许您在图表上绘制线条。下面是一个简单脚本的示例,该脚本绘制一条连接当前柱的高点和第10个历史柱的低点的线:

//@version=4
study("Line", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])



可以使用line.* 的相应函数编辑和删除线对象。以下是使用线对象的更复杂脚本的示例 -  Zig Zag

请注意,我们目前可以在图表上为每个脚本显示大约50-55个单一类型(标签或直线)的绘图。这是旨在防止过多服务器使用的预期限制。新的行和直线数据类型通过允许您在用户脚本中实现流行指标背后的复杂逻辑,极大地增强了Pine Script的功能。示例可以在文档中找到。

系列字符串

我们现在支持一系列字符串数据类型的变量。以下是在标签中使用系列字符串的示例:

//@version=4
study("Series string", overlay = true)
draw_label(title) =>
    label.new(bar_index, high, text=title)
t = close >= open ? "green" : "red"
draw_label(t)

 

Var关键字

以通常方式声明的变量在每次计算脚本时重新初始化。这需要脚本显式传播变量的先前值。 var关键字声明一个变量并仅初始化一次。这允许变量的值从初始化时刻或最后一次赋值后自动保存在条形之间。以下是计算图表上绿条数量的脚本示例:

//@version=4
study("My Script")
var s = 0.0
if close >= open
    s := s + 1
plot(s)

每次收盘价> =开盘价时,s变量的值将增加1。初始化值可以是任何算术表达式。

使用var关键字声明变量的语法避免使用以下代码:s:= nz(s [1],s)。使用绘图时,使用var修饰符声明变量非常有用。

重命名内置常量,变量和函数

颜色常数(例如红色)被移动到color.*命名空间(例如color.red)。
颜色功能已重命名为color.new。
输入类型的常量(例如整数)被移动到input.* namespace (e.g.  input.integer).
绘图样式常量(例如直方图样式)被移动到plot.style_* namespace (e.g. plot.style_histogram).
hline函数的样式常量(例如,虚线样式)将移动到 hline.style_* namespace (e.g. hline.style_dotted).
一周中的常数(例如星期日)的常量被移动到dayofweek.* namespace (e.g.  dayofweek.sunday).
当前图表时间范围的变量(例如,周期,isintraday)被移动到timeframe.*namespace (e.g. timeframe.periodtimeframe.isintraday).
区间变量已重命名为 timeframe.multiplier.
股票代码和tickerid变量分别重命名为syminfo.tickersyminfo.tickerid
包含条形索引值的n变量已重命名为bar_index
重命名以上所有内容的原因是构建标准语言工具并使代码处理更容易。新名称根据公共前缀下的分配进行分组。例如,如果在编辑器中键入“color”并按Ctrl + Space,则会看到包含所有可用颜色常量的列表。

 

显式变量类型声明

在Pine Script v4中,不再可能在声明时创建具有未知数据类型的变量(请参阅na值)。 这样做是为了避免在变量类型初始化后使用na值更改时出现的许多问题。 从现在开始,在使用na值声明变量时,需要使用关键字或类型函数(例如,float)显式指定其类型:

//@version=4
study("NA", overlay=true)
float a = na
a := if close >= open
    high
else
    low
plot(a)

试试新的Pine Script v4吧! 一些用户已经测试了新功能,并使用绘图编写了几个令人印象深刻的脚本:

例如,里卡多桑托斯编写了一系列脚本,您可以在下面看到:

 

Joris Duyck编写了Trendlines脚本,说明了线条绘制的可能性。

 

我们希望这些例子能够激励您! 您可以在我们的聊天中提出问题,讨论问题并分享反馈。 我们要感谢所有Pinescripters社区成员,他们参与了beta测试并为我们提供了很多帮助! 您还可以在Stack Overflow页面上询问与代码相关的问题。

Look first Then leap

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