2.2 Pine Script的脚本结构
2.2.1 脚本结构简介
Pine Script的脚本结构(Script Structure)可分为以下三部分。
(1)脚本头部:通常包括开源软件协议(Mozilla Public License)、作者和版本号。脚本头部可以缺省,但强烈建议保留版本号“//@version=5”(当前Version 5是最新版本),若未指定版本号,则系统默认为“//@version=1”。
(2)主调函数indicator/strategy/library的函数声明语句:在Pine Script中有三大主调函数,即indicator、strategy和library。其中,indicator和strategy是Pine Script的两大核心函数,而library是Pine Script V5新增函数,它既可以做主调函数也可以做被调函数,可用于封装、复用有特定功能的脚本,可以起到辅助作用。
(3)脚本主体:包含变量声明、函数声明、函数调用、用户自定义函数的定义与调用、逻辑处理、数学运算、输入与输出等。
● 对于主调函数indicator,脚本主体必须至少包含一个图形/图表输出函数。
● 对于主调函数strategy,脚本主体必须至少包含一句对函数strategy.*的调用。
● 对于主调函数library,脚本主体必须至少包含一句export函数声明和一个图形/图表函数。
注
Pine Editor可自动生成基础的脚本,用户可以此作为框架编写自己的脚本。
2.2.2 由Pine Editor自动生成的基础脚本框架
在使用Pine Script时,用户可以利用系统自动生成的基础脚本作为框架,然后编写自己的脚本。
在“Pine Editor”页面中,单击右上方的“Open”选项,在弹出的菜单中显示了相应选项,如图2-5所示,这样做可以使编写脚本更加简单和方便。
图2-5 在Pine Editor页面上的Open菜单下的选项
1)指标函数indicator
在“Pine Editor”页面中,单击“Open”选项,在弹出的菜单中选择“TEMPLATES→Indicator”选项,系统自动生成代码,如下所示。
2)策略函数strategy
在“Pine Editor”页面中,单击“Open”选项,在弹出的菜单中选择“TEMPLATES→Strategy”选项,系统自动生成代码,如下所示。
3)库函数library
在“Pine Editor”页面中,单击“Open”选项,在弹出的菜单中选择“TEMPLATES→library”选项,系统自动生成代码,如下所示。
2.2.3 脚本头部
在“Pine Editor”页面中,单击“Open”选项,在弹出的菜单中选择“TEMPLATES→Indicator”、“TEMPLATES→Strategy”或“TEMPLATES→Library”,新建indicator、strategy或library脚本。系统自动生成Strategy代码,其中前4行代码为标准的Pine Script头部语句,如图2-6所示。
图2-6 标准的Pine Script头部语句
标准的Pine Script头部语句的注释包括以下内容。
● 第一行用于指定Pine Script代码所遵循的开源代码协议,通常为Mozilla Public License Version 2.0。
● 第二行包含用户名,即脚本的创建者。
● 第三行为空白。
● 第四行“//@version=5”用于标识当前Pine Script的版本号,以便编译器能够正确识别。如果未指定版本号,则系统默认为“//@version=1”,强烈建议保留版本号为“//@version=5”。
这些注释语句的目的是提供有关Pine Script代码的重要信息,例如使用的协议、脚本创建者、版本等,它们还提供了编译器所需的信息,以确保代码能够正确编译并在运行时正常工作。
2.2.4 主调函数indicator/strategy/library的声明语句
在前文中,我们介绍过“在Pine Script中,有三大主调函数indicator、strategy和library”,而每个Pine Script脚本都必须有函数indicator、strategy或library的声明语句。
2.2.5 脚本主体
脚本主体可以包含的语句有变量声明、函数声明、函数调用、用户自定义函数的定义、逻辑处理、数学运算、输入与输出等。
注
当编写函数indicator、strategy和library的脚本时,需要遵守以下规则。
● indicator脚本必须至少包含一个图形/图表输出函数,如plot、plotshape、barcolor和line.new等。
● strategy脚本必须至少包含一句对函数strategy.*的调用,例如:strategy.entry、strategy.close等。此外,函数strategy还兼有函数indicator的功能,可以用于计算和输出技术指标,并且生成图形或图表。因此,通过使用函数strategy,可以实现全面的交易策略分析和可视化。
● library脚本必须至少包含一个图形/图表输出函数(这一点类似于indicator脚本),而且还需要至少包含一句export函数声明。