Entradas
Define parámetros de indicador configurables con el espacio de nombres `input`
El espacio de nombres input te permite definir parámetros que los usuarios pueden configurar en la interfaz sin editar código. TradingGoose genera automáticamente un panel de configuración a partir de tus llamadas input.*().
Tipos de entrada
| Función | Devuelve | Descripción |
|---|---|---|
input.int(defval, title, minval?, maxval?, step?) | number | Entrada de entero con rango y paso opcionales |
input.float(defval, title, minval?, maxval?, step?) | number | Entrada de punto flotante |
input.bool(defval, title) | boolean | Interruptor/casilla de verificación |
input.string(defval, title) | string | Entrada de texto |
input.color(defval, title) | string | Selector de color (cadena hexadecimal) |
input.source(defval, title) | series | Selector de fuente de datos (close, open, high, low, etc.) |
input.timeframe(defval, title) | string | Selector de marco temporal |
input.price(defval, title) | number | Entrada de nivel de precio |
input.time(defval, title) | number | Entrada de marca temporal |
input.session(defval, title) | string | Entrada de sesión de trading |
input.symbol(defval, title) | string | Entrada de símbolo/ticker |
input.text_area(defval, title) | string | Entrada de texto multilínea |
input.enum(defval, title, options) | T | Selector desplegable a partir de una lista de opciones |
Ejemplos
Entradas numéricas
// Integer with range constraints
const length = input.int(14, 'RSI Length', 1, 200, 1);
// Float with step
const multiplier = input.float(2.0, 'StdDev Multiplier', 0.1, 10.0, 0.1);Booleano y cadena
const showSignals = input.bool(true, 'Show Signals');
const customLabel = input.string('Buy', 'Signal Label');Selección de fuente
// Let users choose which price data to calculate on
const src = input.source(close, 'Source');
const sma = ta.sma(src, 20);Enum (desplegable)
const maType = input.enum('SMA', 'MA Type', ['SMA', 'EMA', 'WMA', 'HMA']);
let ma;
switch (maType) {
case 'EMA': ma = ta.ema(close, length); break;
case 'WMA': ma = ta.wma(close, length); break;
case 'HMA': ma = ta.hma(close, length); break;
default: ma = ta.sma(close, length);
}Entrada de color
const bullColor = input.color('#00FF00', 'Bull Color');
const bearColor = input.color('#FF0000', 'Bear Color');
plot(close, 'Close', { color: close > open ? bullColor : bearColor });Cómo funcionan las entradas
Cuando TradingGoose carga tu indicador, analiza todas las llamadas input.*() para:
- Extraer metadatos — título, tipo, valor predeterminado y restricciones (mín/máx/paso/opciones)
- Generar controles de interfaz — renderiza los controles de formulario adecuados en el panel de configuración del indicador
- Pasar valores en tiempo de ejecución — cuando un usuario cambia un parámetro, el indicador se vuelve a ejecutar con los valores actualizados
Los parámetros de entrada se extraen de forma estática de tu código. Mantén las llamadas input.*() en el nivel superior de tu script para obtener mejores resultados; evita colocarlas dentro de condicionales o bucles.