Metoder kommer till Pine Script®

Mar 7, 2023

Den punktnotering som används för tilläggsmetoder i andra språk finns nu tillgänglig i Pine Script®. Programmerare kan använda den nya syntaxen på två olika sätt:

  • Med användardefinierade metoder, det vill säga speciella funktioner som deklareras med det nya nyckelordet method.
  • Med inbyggda funktioner som finns i namnområdena för typerna array, box, label, line, linefill, matrix, och table om den första parametern i en sådan funktion är en objektidentifierare av den typen.

Låt oss ta en titt på detta enkla exempel där vi beräknar genomsnittet av den lägsta nivån för ett rullande fönster med uppåtgående staplar:

//@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")

Vår maintainQueue()-metod liknar en vanlig funktion och kan användas som en sådan, men nyckelordet method gör det också möjligt att använda den med punktnotering efter en variabel av den första parameterns typ. När vi gör det utelämnar vi det första argumentet i metodanropet, som i pricesArray.maintainQueue(low).

Lägg också märke till hur vi använder metodnotation med funktioner från array-namnområdet i anrop som srcArray.push() and srcArray.shift() i metodens kod och pricesArray.avg() i exemplets sista rad.

Du hittar mer information om denna nya funktion på sidan om metoder i vår manual.

Om du vill se metoderna i praktiken kan du se den uppdaterade koden för vår inbyggda Gaps-indikator som använder både inbyggda och användardefinierade metoder för att markera gaps på diagrammet med rutor:

Dessutom har vi uppdaterat koden för vårt ZigZag-bibliotek för användningen av inbyggda och användardefinierade metoder:

ZigZag från TradingView

Se objekt och metoder som används i följande skript av några av våra PineCoders:

Flare av Fikira

Recursive Zigzag [Trendoscope] av HeWhoMustNotBeNamed

Recursive Auto-Pitchfork [Trendoscope] av HeWhoMustNotBeNamed

För att hålla dig informerad om nya Pine Script®-funktioner kan du hålla ett öga på användarhandbokens versionsnotiser.  PineCoders-kontot sänder också uppdateringar från sin Squawk Box på Telegram, sittTwitter-konto och från den öppna chatten Pine Script® Q&A på TradingView.

Vi hoppas att du gillar denna mycket efterfrågade funktion. Fortsätt att skicka din feedback och dina förslag på förbättringar till oss. Vi bygger TradingView för dig och vi vill alltid att du hör av dig.

Look first Then leap

TradingView är byggt för dig, så se till att du får ut det mesta av våra fantastiska funktioner
Community och verktyg