Pine Script®的方法語法

Mar 7, 2023

用於其他語言擴充方法的點記法(dot notation)現可用於Pine Script®。程式設計師可以透過兩種不同的方式使用這種新語法:

  • 使用用戶定義的語法,這些語法是用新method關鍵字宣告的特殊函數。
  • 當第一個參數是該類型對象的ID時,使用來自arrayboxlabellinelinefillmatrixtable類型的命名空間的內建函數。

讓我們看一下這個簡單的例子,我們在其中計算上升K線滾動視窗的平均low點:

//@version=5
indicator("Long stop", "", true)
int lengthInput = input(20)
var pricesArray = array.new<float>(lengthInput)

method maintainQueue(array<float> srcArray, float value) =>
    // Append a new value to the end of the array.
    srcArray.push(value)
    // Remove the oldest value from the beginning of the array.
    srcArray.shift()

if close > open
    // Track the `low` values of up bars.
    pricesArray.maintainQueue(low)

plot(pricesArray.avg(), "Stop")

我們的maintainQueue()語法與常規函數非常相似,可以這樣使用,但是method關鍵字還允許它在第一個參數類型的變數之後使用點記法。當我們這樣做時,我們從語法呼叫中省略了第一個參數,如:pricesArray.maintainQueue(low)

還要注意我們如何在呼叫中使用記號法和array命名空間中的函數,例如:語法程式碼中的srcArray.push()srcArray.shift(),以及範例最後一行中的pricesArray.avg()

您可以在我們的用戶手冊的methods頁面中找到有關此新功能的更多資訊。

要查看實際方法,您可以查看我們內建缺口指標的更新程式碼,該指標使用內建和用戶定義的語法,來突顯帶方框的圖表跳空:

此外,我們更新了ZigZag程式庫的程式碼,以使用內建和用戶定義的語法:

ZigZag,由TradingView發佈

請參閱一些PineCoder在以下腳本中使用的對象和方法:

Flare,由Fikira發佈

Recursive Zigzag [Trendoscope],由HeWhoMustNotBeNamed發佈

Recursive Auto-Pitchfork [Trendoscope],由HeWhoMustNotBeNamed發佈

要隨時了解新的Pine Script®功能,請留意用戶手冊的發行說明PineCoders帳戶還透過Telegram上的Squawk BoxTwitter帳戶以及TradingView上的Pine Script® Q&A公共聊天廣播中更新。

我們希望您發現這個功能很實用。請繼續向我們發送您的反饋和改進建議。我們為您建構TradingView,我們始終渴望收到您的來信。

Look first Then leap

TradingView專門為您打造,請確保您充分利用我們出色的功能
開啟圖表