Disparadores de indicadores
Conecta las señales de los indicadores a los workflows de TradingGoose con la API trigger()
La función trigger() es una extensión de TradingGoose para PineTS que permite que tus indicadores disparen ejecuciones de workflow cuando se cumplen las condiciones. Esto cierra la brecha entre el análisis técnico y la automatización de workflows: un indicador puede detectar una señal y activar de inmediato una acción, como enviar una notificación, colocar una operación o ejecutar un workflow complejo de varios pasos.
Sintaxis
trigger(event, options)Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
event | string | Sí | Identificador del nombre del evento |
options | object | Sí | Configuración del disparador (ver abajo) |
Objeto de opciones
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
condition | any | Sí | Condición que debe ser verdadera para que el disparador se active |
input | string | Sí | Entrada de texto que se pasa al workflow (p. ej., una descripción de lo que ocurrió) |
signal | 'long' | 'short' | 'flat' | Sí | Dirección de la señal de trading |
position | 'aboveBar' | 'belowBar' | 'inBar' | No | Posición del marcador en el gráfico (predeterminado: 'aboveBar') |
color | string | No | Color del marcador (cadena hexadecimal, p. ej., '#FF0000') |
Reglas de nombres de eventos
- Debe coincidir con el patrón:
/^[a-z][a-z0-9_]{0,63}$/ - Comienza con una letra minúscula
- Solo letras minúsculas, dígitos y guiones bajos
- Máximo 64 caracteres
Ejemplo básico
indicator('RSI Trigger Example');
const rsi = ta.rsi(close, 14);
plot(rsi, 'RSI');
hline(70, 'Overbought', '#FF0000', hline.style_dashed);
hline(30, 'Oversold', '#00FF00', hline.style_dashed);
// Fire when RSI crosses above 70 (overbought)
if (ta.crossover(rsi, 70)) {
trigger('rsi_overbought', {
condition: ta.crossover(rsi, 70),
input: 'RSI crossed above 70 — overbought signal',
signal: 'short',
position: 'aboveBar',
color: '#FF0000'
});
}
// Fire when RSI crosses below 30 (oversold)
if (ta.crossunder(rsi, 30)) {
trigger('rsi_oversold', {
condition: ta.crossunder(rsi, 30),
input: 'RSI crossed below 30 — oversold signal',
signal: 'long',
position: 'belowBar',
color: '#00FF00'
});
}Varios disparadores
Un indicador puede definir varios eventos de disparo. Cada evento puede conectarse a un workflow diferente:
indicator('Multi-Signal', { overlay: true });
const fast = ta.ema(close, 9);
const slow = ta.ema(close, 21);
const [macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9);
// EMA crossover trigger
if (ta.crossover(fast, slow)) {
trigger('ema_bullish_cross', {
condition: ta.crossover(fast, slow),
input: 'Fast EMA crossed above slow EMA',
signal: 'long',
position: 'belowBar',
color: '#26A69A'
});
}
// MACD histogram reversal trigger
if (hist > 0 && hist[1] <= 0) {
trigger('macd_positive_flip', {
condition: hist > 0 && hist[1] <= 0,
input: 'MACD histogram flipped positive',
signal: 'long',
position: 'belowBar',
color: '#2962FF'
});
}Cómo funciona
- Evaluación — En cada barra, PineTS evalúa el código de tu indicador, incluidas las llamadas a
trigger() - Comprobación de condición — La propiedad
conditionse resuelve para la barra actual. Si es falsa, el trigger se omite silenciosamente - Validación — Se validan el nombre del evento, la estructura de opciones, la entrada y la señal. Las llamadas no válidas generan advertencias (no errores)
- Captura — Los triggers válidos se capturan con sus metadatos (evento, entrada, señal, posición, color, hora de la barra, índice de la barra)
- Envío del workflow — Durante la ejecución en vivo, los eventos de trigger capturados se envían a los workflows conectados mediante el Indicator Trigger
Conexión con workflows
Para usar indicator triggers en un workflow:
- Crea un indicador con llamadas a
trigger() - En el editor de workflows, añade un bloque Indicator Trigger como punto de inicio de tu workflow
- Configúralo para escuchar los eventos de tu indicador
- El workflow recibe el texto de
inputdel trigger ysignalcomo datos de entrada del workflow
Advertencias de validación
Las llamadas de trigger no válidas generan advertencias (no errores) para que tu indicador siga ejecutándose:
| Código de advertencia | Causa |
|---|---|
indicator_trigger_invalid_event | El nombre del evento no coincide con el patrón requerido |
indicator_trigger_invalid_options | El parámetro de opciones no es un objeto |
indicator_trigger_condition_unresolved | No se pudo resolver el valor de la condición |
indicator_trigger_invalid_input | Falta la entrada o no es una cadena |
indicator_trigger_invalid_signal | La señal no es 'long', 'short' ni 'flat' |
indicator_trigger_invalid_time | La hora de apertura de la barra no está disponible |
La API trigger() es una extensión específica de TradingGoose. No existe en Pine Script ni PineTS estándar. PineTS sin las extensiones de Studio genera el error trigger is not defined al ejecutar estas llamadas. Elimínalas o adáptalas antes de ejecutar un indicador exportado fuera de TradingGoose.