用於其他語言擴充方法的點記法(dot notation)現可用於Pine Script®。程式設計師可以透過兩種不同的方式使用這種新語法:
- 使用用戶定義的語法,這些語法是用新method關鍵字宣告的特殊函數。
- 當第一個參數是該類型對象的ID時,使用來自array、box、label、line、linefill、matrix,和table類型的命名空間的內建函數。
讓我們看一下這個簡單的例子,我們在其中計算上升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 Box、Twitter帳戶以及TradingView上的Pine Script® Q&A公共聊天廣播中更新。
我們希望您發現這個功能很實用。請繼續向我們發送您的反饋和改進建議。我們為您建構TradingView,我們始終渴望收到您的來信。