TradingView中Pine脚本(Pine Script) 的Version4与Version5区别

随着TradingView版本的更新,Pine脚本(Pine Script) 也增加了更方便使用的新功能。

此外,也大幅度解决了过去难以编辑或指标数量不够等问题。

有许多Pine Script的资产可说是以Version4制作而成,因此未来将一边活用Version4的脚本、一边透过Version5的新功能来制作脚本以提升效率。

以下将依序介绍Version5的更新项目。

1.写入编码的变更项目

最初宣告为指标或策略的部分有所变更。

透过Pine Script制作指标时,需要在一开始宣告函数,而在Version4中的写法是study(~) ,但Version5中则是indicator(~) 。

变成了不易造成混淆的用法。

原本由study(~)所显示的参数,全数皆可透过indicator(~)使用。

当进行Version4→5的写法转换时,此部分只需改变函数的名称即可执行。

种类 Version4 Version5
指标 study(~) indicator(~)
策略 strategy(~) strategy(~)

2.添加名称的空间

可在同类函数的开头添加相同的文字。

借此使原始码更加整齐划一,后续审视原始码时也更易于阅读。

2-1.执行技术分析的函数ta.

以下列举了常用的项目。

技术分析函数 Version4 Version5
SMA sma() ta.sma()
EMA sma() ta.ema()
Cross cross() ta.cross()
Crossover crossover() ta.crossover()
Crossunder crossunder() ta.crossunder()
MACD macd() ta.macd()
Bollinger bands bb() ta.bb()
Stochastic stoch() ta.stoch()
RSI rsi() ta.rsi()
ATR atr() ta.atr()
Supertrend supertrend() ta.supertrend()
等等

2-2.数学相关函数math.

以下也同样列举了常用的项目。

数学函数 Version4 Version5
绝对值 abs(number) math.abs(number)
余弦 cos(number) math.cos(number)
正弦 sin(number) math.sin(number)
正切 tan(number) math.tan(number)
平均值 avg() math.avg()
最大值 max() math.max()
最小值 min() math.min()
等等

2-3.K线的种类ticker.

数学函数 Version4 Version5
平均K线 heikinashi() ticker.heikinashi()
卡吉图 kagi() ticker.kagi()
新价线 linebreak() ticker.linebreak()
点数图 pointfigure() ticker.pointfigure()
砖形图 renko() ticker.renko()
等等

2-4.文字列相关函数str.

文字列函数 Version4 Version5
显示参数的文字列 tostring(x, y) str.tostring(value, format)
将数字变更为文字列 tonumber(x) str.tonumber(string)

2-5.取得外部数据request.

取得外部数据的函数 Version4 Version5
品种的财经类数据 financial() request.financial()
品种数据 quandl() request.quandl()
其他品种/时间周期 security(… , resolution, …) request.security( … , timeframe, …)
等等

3.无法作为函数或变数名称的单词

在Pine Script中,有部分的单词已经预先设定了其所代表的意义。

此类单词被称为保留字,并且无法被用作函数或变数的名称。

Version5中无法使用的保留字如以下所示。

catch

class

do

ellipse

in

is

polygon

range

return

struct

text

throw

try

4.可设定使用者定义函数的预设值

在过去的版本中,并无法在自制函数中指定参数的预设值。

现在将可省略参数来设定预设值,提升了制作脚本的自由度。

5.新增switch的语法

如今也能在Pine Script中使用switch的语法
switch是自if文体改良而来的项目。
当必须使用复数的分支时,可搭配if与else使其更容易书写。另外,也因易于阅读,而对减少出错有所帮助。

例:
当输入值ma_type为
「SMA」时,欲选择ta.sma函数、
「EMA」时,欲选择ta.ema函数、
「RMA」时,欲选择ta.rma函数的状况。

此时便可写入以下文字列,

result = switch ma_type
“EMA” => ta.ema(close, length)
“SMA” => ta.sma(close, length)
“RMA” => ta.rma(close, length)
=> 0

如此就能得出结果。若无符合输入值的项目,则会返回至0。

6.新增while的语法

现在也能使用便于重复执行处理的while回圈。

While会进行类似于for文体的动作。

即为「在符合条件的期间,持续重复执行」的动作。

因此,在尚未决定重复次数的状况下极为便利。

另外,亦可在中途使用break予以中断。

给TA打赏
共{{data.count}}人
人已打赏
tradingview教学

TradingView绘图面板内绘图工具有哪些?介绍其使用方法

2022-4-14 21:35:49

tradingview教学

在TradingView中设置指数移动平均线的方法

2022-4-14 22:27:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索