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íneaVariables
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 inferidaTipos 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áficovarip es parecido, pero el valor también persiste entre ticks dentro del mismo
candle (intrabar).
Operadores
| Categoría | Operadores |
|---|---|
| Aritméticos | + - * / % |
| Comparación | == != < > <= >= |
| Lógicos | and or not |
| Ternario | condición ? valorSiVerdadero : valorSiFalso |
| Histórico | serie[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 // ternarioControl de flujo
if / else
Bloques por indentación — sin : (Python) y sin {} (C):
tendencia = 0
if close > open
tendencia := 1
else
tendencia := -1for
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 cierresPara recorrer un array, usa for ... in:
valores = array.from(1, 2, 3)
total = 0
for v in valores
total := total + vwhile
i = 0
while i < 10
i := i + 1switch
Elige un valor entre varios casos (=>), con un caso por defecto al final:
sinal = switch
close > open => 1
close < open => -1
=> 0Reglas del indicador
- La primera línea del script debe ser
//@version=6. plot()dentro de unifsolo dibuja en los candles donde ese bloque se ejecuta (en los demás el valor quedana). Para señales, manténplot()en el nivel superior concondición ? valor : na,style=plot.style_circles(ostyle_triangleup/style_triangledown) y color condicional, o usaplotshape(condición, style=shape.triangleup, location=location.belowbar)para un marcador anclado al candle.plotchar()yplotarrow()no dibujan nada en el gráfico.offset=enplot()/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|dottedhace la línea discontinua.- NeuroScript no tiene
returnen el nivel superior.