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ámetroTipoObligatorioDescripción
eventstringSíIdentificador del nombre del evento
optionsobjectSíConfiguración del disparador (ver abajo)

Objeto de opciones

PropiedadTipoObligatorioDescripción
conditionanySíCondición que debe ser verdadera para que el disparador se active
inputstringSí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'NoPosición del marcador en el gráfico (predeterminado: 'aboveBar')
colorstringNoColor 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

  1. Evaluación — En cada barra, PineTS evalúa el código de tu indicador, incluidas las llamadas a trigger()
  2. Comprobación de condición — La propiedad condition se resuelve para la barra actual. Si es falsa, el trigger se omite silenciosamente
  3. 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)
  4. 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)
  5. 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:

  1. Crea un indicador con llamadas a trigger()
  2. En el editor de workflows, añade un bloque Indicator Trigger como punto de inicio de tu workflow
  3. Configúralo para escuchar los eventos de tu indicador
  4. El workflow recibe el texto de input del trigger y signal como 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 advertenciaCausa
indicator_trigger_invalid_eventEl nombre del evento no coincide con el patrón requerido
indicator_trigger_invalid_optionsEl parámetro de opciones no es un objeto
indicator_trigger_condition_unresolvedNo se pudo resolver el valor de la condición
indicator_trigger_invalid_inputFalta la entrada o no es una cadena
indicator_trigger_invalid_signalLa señal no es 'long', 'short' ni 'flat'
indicator_trigger_invalid_timeLa 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.