FuturaDevelopers

Sintaxis

Variables, tipos, operadores y control de flujo en NeuroScript.

NeuroScript usa indentación para delimitar bloques (como Python, sin : ni {}). Todo script comienza con la línea de versión y la declaración del indicador — mira Primeros pasos para la anatomía completa.

Comentarios

// comentario de línea — todo lo que va después de // se ignora
length = input.int(14, "Período") // también funciona al final de la línea

Variables

Declara con = y reasigna con :=:

media = ta.sma(close, 20) // declara
media := ta.sma(close, 50) // reasigna (la variable ya existe)

El tipo se infiere del valor, pero puedes declararlo explícitamente:

int periodo = 14
float fator = 2.0
ativo = true   // bool inferido
texto = "RSI"  // string inferida

Tipos del lenguaje: int, float, bool, string, color. Los valores de mercado como close son series (series<float>) — una secuencia con un valor por candle (mira Datos de mercado).

var y varip — estado entre candles

Por defecto la variable se recalcula en cada candle. Usa var para inicializar una vez y mantener el valor entre candles:

var contador = 0
contador := contador + 1 // acumula a lo largo del gráfico

varip es parecido, pero el valor también persiste entre ticks dentro del mismo candle (intrabar).

Operadores

CategoríaOperadores
Aritméticos+ - * / %
Comparación== != < > <= >=
Lógicosand or not
Ternariocondición ? valorSiVerdadero : valorSiFalso
Históricoserie[n] — valor de n candles atrás
variacao = close - close[1]                   // histórico: candle anterior
alta = close > open and volume > 0            // lógicos
cor = close >= open ? color.green : color.red // ternario

Control de flujo

if / else

Bloques por indentación — sin : (Python) y sin {} (C):

tendencia = 0
if close > open
    tendencia := 1
else
    tendencia := -1

for

Bucle numérico con to (paso opcional con by, ej.: for i = 0 to 100 by 10):

soma = 0.0
for i = 0 to 9
    soma := soma + close[i] // suma de los últimos 10 cierres

Para recorrer un array, usa for ... in:

valores = array.from(1, 2, 3)
total = 0
for v in valores
    total := total + v

while

i = 0
while i < 10
    i := i + 1

switch

Elige un valor entre varios casos (=>), con un caso por defecto al final:

sinal = switch
    close > open => 1
    close < open => -1
    => 0

Reglas del indicador

  • La primera línea del script debe ser //@version=6.
  • plot() dentro de un if solo dibuja en los candles donde ese bloque se ejecuta (en los demás el valor queda na). Para señales, mantén plot() en el nivel superior con condición ? valor : na, style=plot.style_circles (o style_triangleup/style_triangledown) y color condicional, o usa plotshape(condición, style=shape.triangleup, location=location.belowbar) para un marcador anclado al candle. plotchar() y plotarrow() no dibujan nada en el gráfico.
  • offset= en plot()/plotshape() desplaza el dibujo en barras (positivo hacia adelante, negativo hacia atrás); la proyección más allá del último candle no se dibuja. linestyle=plot.linestyle_dashed|dotted hace la línea discontinua.
  • NeuroScript no tiene return en el nivel superior.

Siguiente

En esta página