NeuroScriptNeuroScript®

Linguagem

Explore os blocos de construção e recursos do NeuroScript®

Linguagem NeuroScript®

Estrutura Básica de um Script

Todo script NeuroScript segue esta estrutura:

NeuroScript
NeuroScript®
// 1. Declaração do indicador
indicator("Nome do Indicador", overlay=true)

// 2. Parâmetros de entrada (opcional)
length = input.int(14, "Período")

// 3. Cálculos
value = ta.sma(close, length)

// 4. Visualização
plot(value, "SMA")

// 5. Return (opcional)
return value

Declaração de Indicador

A função indicator() é obrigatória e define as propriedades do script:

NeuroScript
NeuroScript®
indicator(title, shorttitle="", overlay=true)

Parâmetros:

  • title (string): Nome completo do indicador
  • shorttitle (string): Nome abreviado (opcional)
  • overlay (bool): Se true, plota sobre o gráfico de preços. Se false, cria painel separado

Exemplos:

NeuroScript
NeuroScript®
// Indicador sobre o gráfico
indicator("SMA 20", overlay=true)

// Indicador em painel separado
indicator("RSI", shorttitle="RSI", overlay=false)

Variáveis

Declaração

NeuroScript
NeuroScript®
// Variáveis simples
length = 20
multiplier = 2.0
showSignals = true
label = "SMA"

// Variáveis calculadas
sma = ta.sma(close, length)
upper = sma + multiplier * ta.stdev(close, length)

var e const

Use var para variáveis que persistem entre barras e const para valores constantes:

NeuroScript
NeuroScript®
// var persiste o valor entre barras (não reseta a cada candle)
var counter = 0
counter += 1  // incrementa a cada barra

// const não pode ser reatribuído
const period = 20

Assignment Operators

NeuroScript
NeuroScript®
x = 10
x += 5   // x = 15
x -= 3   // x = 12
x *= 2   // x = 24
x /= 4   // x = 6

Built-in Variables

NeuroScript fornece variáveis automáticas com dados do candle:

VariávelTipoDescrição
openseriesPreço de abertura
highseriesPreço máximo
lowseriesPreço mínimo
closeseriesPreço de fechamento
volumeseriesVolume negociado
bar_indexintÍndice da barra atual (0, 1, 2...)
timeintTimestamp da barra (Unix)

Exemplo:

NeuroScript
NeuroScript®
indicator("OHLC Info", overlay=true)

// Usar variáveis built-in
candleSize = high - low
bodySize = close - open
isGreen = close > open

plot(candleSize, "Tamanho do Candle")

Acesso Histórico (Séries)

Acesse valores de barras anteriores com [n]:

NeuroScript
NeuroScript®
// close[0] = preço atual (mesmo que close)
// close[1] = preço da barra anterior
// close[2] = preço de 2 barras atrás

indicator("Variação", overlay=false)

variacao = close - close[1]
plot(variacao, "Variação", color=variacao > 0 ? color.green : color.red)

Funciona com qualquer variável ou série:

NeuroScript
NeuroScript®
sma = ta.sma(close, 20)
smaAnterior = sma[1]  // SMA da barra anterior
mudou = sma > sma[1]  // SMA subindo?

Tipos de Dados

Tipos Básicos

int - Números inteiros

NeuroScript
NeuroScript®
length = 14
maxBars = 500

float - Números decimais

NeuroScript
NeuroScript®
multiplier = 2.5
threshold = 0.618

bool - Booleanos

NeuroScript
NeuroScript®
showLabels = true
useEMA = false

string - Textos

NeuroScript
NeuroScript®
title = "Meu Indicador"
label = "SMA"

color - Cores

NeuroScript
NeuroScript®
lineColor = color.blue
fillColor = color.red
customColor = #FF5733

Tipos Series

Valores que mudam a cada barra:

NeuroScript
NeuroScript®
sma = ta.sma(close, 20)  // series<float>
rsi = ta.rsi(close, 14)  // series<float>

Operadores

Aritméticos

NeuroScript
NeuroScript®
soma = 10 + 5        // 15
sub = 10 - 5         // 5
mult = 10 * 5        // 50
div = 10 / 5         // 2
mod = 10 % 3         // 1

Comparação

NeuroScript
NeuroScript®
igual = 10 == 10     // true
diferente = 10 != 5  // true
maior = 10 > 5       // true
menor = 5 < 10       // true
maiorIgual = 10 >= 10  // true
menorIgual = 5 <= 10   // true

Lógicos

NeuroScript
NeuroScript®
e = true and false   // false
ou = true or false   // true
nao = not true       // false

Operador Ternário

NeuroScript
NeuroScript®
// Sintaxe: condição ? valorSeVerdadeiro : valorSeFalso

cor = close > open ? color.green : color.red
tamanho = volume > 1000 ? 3 : 1

Exemplo prático:

NeuroScript
NeuroScript®
indicator("Cor Dinâmica", overlay=true)

sma20 = ta.sma(close, 20)

// Cor baseada em tendência
trendColor = close > sma20 ? color.green : color.red

plot(sma20, "SMA", color=trendColor, linewidth=2)

Condicionais (if/else)

NeuroScript
NeuroScript®
indicator("Sinais", overlay=true)

sma = ta.sma(close, 20)
rsi = ta.rsi(close, 14)

if close > sma and rsi < 30
    plot(low, "Compra", color=color.green)
else if close < sma and rsi > 70
    plot(high, "Venda", color=color.red)
else
    plot(close, "Neutro", color=color.gray)

Loops

for

NeuroScript
NeuroScript®
indicator("Soma Customizada", overlay=false)

// Soma os últimos 10 closes
var soma = 0.0
for i = 0 to 9
    soma += close[i]

media = soma / 10
plot(media, "Média Custom")

while

NeuroScript
NeuroScript®
indicator("Contagem", overlay=false)

var count = 0
var i = 0
while i < 20 and close[i] > ta.sma(close, 50)
    count += 1
    i += 1

plot(count, "Barras acima da SMA")

Arrays

Arrays permitem armazenar coleções de valores:

NeuroScript
NeuroScript®
indicator("Array Example", overlay=false)

// Criar array de floats com 5 elementos
var prices = array.new<float>(5, 0.0)

// Adicionar valores
array.set(prices, 0, close)
array.push(prices, high)

// Ler valores
firstPrice = array.get(prices, 0)
maxPrice = array.max(prices)
minPrice = array.min(prices)
total = array.size(prices)

plot(maxPrice, "Máximo")
plot(minPrice, "Mínimo")

Funções de array disponíveis:

FunçãoDescrição
array.new<float>(size, val)Cria array de floats
array.new<int>(size, val)Cria array de inteiros
array.new<bool>(size, val)Cria array de booleanos
array.set(arr, index, val)Define valor no índice
array.get(arr, index)Obtém valor do índice
array.push(arr, val)Adiciona ao final
array.pop(arr)Remove do final
array.size(arr)Retorna tamanho
array.max(arr)Retorna maior valor
array.min(arr)Retorna menor valor

Comentários

NeuroScript
NeuroScript®
// Comentário de linha única

// Comentários podem explicar código
length = 20  // Período da média

/* Comentário de
   múltiplas linhas */

Expressões e Cálculos

Expressões Simples

NeuroScript
NeuroScript®
// Aritmética básica
resultado = (high + low) / 2

// Usando funções
media = ta.sma(close, 20)
desvio = ta.stdev(close, 20)

// Combinando
upperBand = media + 2 * desvio

Expressões Condicionais

NeuroScript
NeuroScript®
// Detectar cruzamentos
crossUp = close > sma and close[1] <= sma[1]
crossDown = close < sma and close[1] >= sma[1]

// Ou usar funções built-in
crossUp = ta.crossover(close, sma)
crossDown = ta.crossunder(close, sma)

// Múltiplas condições
compra = close > sma20 and rsi < 70 and volume > ta.sma(volume, 20)

Limitações Atuais

As seguintes features do Pine Script v6 ainda não são suportadas:

  • strategy.entry() / strategy.close() — execução real de ordens (backtesting)
  • request.security() — acesso a dados de outro timeframe
  • alert() — notificações em tempo real
  • Strings dinâmicas (concatenação)
  • plotshape() — renderização visual (stub implementado)