TradingView教學

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予以中斷。

TradingView教學

介紹電腦(PC)版,手機版(iPhone與Android)的TradingView使用教學內容。

-TradingView教學
-