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的寫法轉換時,此部分只需改變函數的名稱即可執行。

種類Version4Version5
指標study(~)indicator(~)
策略strategy(~)strategy(~)

2.添加名稱的空間

可在同類函數的開頭添加相同的文字。

藉此使原始碼更加整齊劃一,後續審視原始碼時也更易於閱讀。

2-1.執行技術分析的函數ta.

以下列舉了常用的項目。

技術分析函數Version4Version5
SMAsma()ta.sma()
EMAsma()ta.ema()
Crosscross()ta.cross()
Crossovercrossover()ta.crossover()
Crossundercrossunder()ta.crossunder()
MACDmacd()ta.macd()
Bollinger bandsbb()ta.bb()
Stochasticstoch()ta.stoch()
RSIrsi()ta.rsi()
ATRatr()ta.atr()
Supertrendsupertrend()ta.supertrend()
等等

2-2.數學相關函數math.

以下也同樣列舉了常用的項目。

數學函數Version4Version5
絕對值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.

數學函數Version4Version5
平均K線heikinashi()ticker.heikinashi()
卡吉圖kagi()ticker.kagi()
新價線linebreak()ticker.linebreak()
點數圖pointfigure()ticker.pointfigure()
磚形圖renko()ticker.renko()
等等

2-4.文字列相關函數str.

文字列函數Version4Version5
顯示參數的文字列tostring(x, y)str.tostring(value, format)
將數字變更為文字列tonumber(x)str.tonumber(string)

2-5.取得外部數據request.

取得外部數據的函數Version4Version5
品種的財經類數據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帳戶

為了更好的體驗,建議先註冊免費版帳戶。

【立即註冊】

TradingView教學

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

-TradingView教學
-

© 2020 外匯交易平台比較/外匯交易商排名 Powered by AFFINGER5