A sintaxe de método chegou ao Pine Script®

Mar 7, 2023

A notação de pontos utilizada para métodos de extensão em outros idiomas está agora disponível em Pine Script®. Os programadores podem usar esta nova sintaxe de duas maneiras diferentes:

  • Com métodos definidos pelo usuário, que são funções especiais declaradas com a nova palavra-chave do método.
  • Com funções incorporadas de namespaces de array, box, label, line, linefill, matriz e tipos de tabela quando o primeiro parâmetro é o ID de um objeto desse tipo.

Vejamos este exemplo simples onde calculamos a média da mínima para uma janela móvel de barras ascendentes:

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

Nosso método mantainQueue() é muito semelhante a uma função regular e pode ser usado como tal, mas a palavra-chave do método também permite que ele seja usado com notação de pontos após uma variável do tipo do primeiro parâmetro. Quando o fazemos, omitimos o primeiro argumento da chamada do método, como em pricesArray.maintainQueue(low).

Observe também como usamos a notação de método com funções do espaço de nomes da array em chamadas como srcArray.push() e srcArray.shift() dentro do código do método, e pricesArray.avg() na última linha do exemplo.

Você encontrará mais informações sobre este novo recurso na página do nosso Manual do Usuário sobre métodos.

Para ver os métodos em ação, você pode ver o código atualizado de nosso indicador de Gaps built-in que usa tanto métodos built-in como métodos definidos pelo usuário para destacar as lacunas dos gráficos com boxes:

Além disso, atualizamos o código de nossa biblioteca ZigZag para usar os métodos embutidos e definidos pelo usuário:

ZigZag por TradingView

Veja objetos e métodos utilizados nos seguintes scripts por alguns de nossos PineCoders:

Flare por Fikira

Recursive Zigzag [Trendoscope] by HeWhoMustNotBeNamed

Recursive Auto-Pitchfork [Trendoscope] by HeWhoMustNotBeNamed

Para se manter informado sobre os novos recursos do Pine Script®, fique de olho nas notas de lançamento do Manual do Usuário. A conta do PineCoders também transmite atualizações de sua Squawk Box no Telegrama, de sua conta no Twitter, e do chat público do Pine Script® Q&A no TradingView.

Esperamos que você considere útil este recurso tão solicitado. Por favor, continue nos enviando seus comentários e sugestões para melhorias. Nós construímos o TradingView para você, e estamos sempre ansiosos para ouvir você.

Look first Then leap

TradingView is built for you, so make sure you're getting the most of our awesome features
Launch Chart