January 25, 2021
Nuestras nuevas alertas permiten mensajes dinámicos

Nuestras nuevas alertas de script utilizan una función `alert()` que funciona tanto en las estrategias como en los estudios, y permite generar un mensaje totalmente dinámico cuando se dispara la alerta.

Las nuevas alertas funcionan utilizando un modelo similar al de las recientes alertas de estrategia, en el que una sola alerta creada en la interfaz de usuario del gráfico puede agregar todos los disparos generados por cualquier número de llamadas a `alert()` en el script, del mismo modo que una sola alerta de estrategia agregaría todos los disparos de eventos del corredor.

Para crear las nuevas alertas:

Incluya tantas llamadas a `alert()` en su script como desee, encerrando cada una de ellas en un bloque `if` que defina la(s) condición(es) de activación.
Cree una alerta para el script utilizando el cuadro de diálogo «Crear alerta» del gráfico y seleccione un tipo de alerta que incluya la «llamada a la función alert()».
Cuando se utiliza en estrategias, los usuarios pueden elegir crear alertas que se activen sólo en eventos `alert()`, en eventos de llenado de órdenes o en ambos. También vale la pena recordar que no hay límite en el número de variables que se pueden utilizar en el mensaje de alerta dinámico y que los marcadores de posición ya no son necesarios, ya que cualquier variable utilizada en una secuencia de comandos también se puede utilizar en las nuevas llamadas de función `alert()`, siempre y cuando esté en formato de cadena.

A continuación se muestran tres ejemplos de la función `alert()`:

1) El script de alerta se activa en cada barra, y el mensaje contiene el precio de cierre de la barra:

//@version=4
study("Simple alert() example")
plot(close)
alert("Close = " + tostring(close), alert.freq_once_per_bar_close)

2) Se comprueban los valores de tres indicadores: RSI, SMA y Momentum. La alerta del script se activará si alguno de los indicadores cruza un nivel (o precio) especificado, y el mensaje contendrá el nombre del indicador y su valor actual.

//@version=4
study("alert() with multiple indicators", overlay=true)
f_triggerSma()=>
    _s  = sma(close, 14)
    _co = crossover(close, _s)
    _cu = crossunder(close, _s)
    if _co
        alert("Price (" + tostring(close) + ") crossing up SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
    else if _cu
        alert("Price (" + tostring(close) + ") crossing down SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
f_triggerRsi()=>
    _r  = rsi(close, 7)
    _co = crossover(_r, 70)
    _cu = crossunder(_r, 30)
    if _co
        alert("RSI (" + tostring(_r) + ") crossing up 70 level", alert.freq_once_per_bar)
    else if _cu
        alert("RSI (" + tostring(_r) + ") crossing down 30 level", alert.freq_once_per_bar)
f_triggerMom()=>
    _m  = mom(close, 14)
    _co = crossover(_m, 0)
    _cu = crossunder(_m, 0)
    if _co
        alert("Momentum (" + tostring(_m) + ")  crossing up 0 level", alert.freq_once_per_bar)
    else if _cu
        alert("Momentum (" + tostring(_m) + ")  crossing down 0 level", alert.freq_once_per_bar)

plot(sma(close, 14), "SMA")
f_triggerSma()
f_triggerRsi()
f_triggerMom()

3) En este ejemplo se comprueban los valores de un indicador RSI, pero en cinco símbolos a la vez. La alerta del script se activará si el RSI cruza un nivel especificado para cualquiera de los símbolos, y el mensaje contendrá el símbolo y el valor del indicador en el momento del cruce.

//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
    _r = rsi(close, 7)
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    [_co, _cu] = security(_ticker, timeframe.period, [_x, _y])
    _msg = _ticker + ", " + timeframe.period + ": "
    if _co
        _msg := _msg + "RSI (" + tostring(_r) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)
    else if _cu
        _msg := _msg + "RSI (" + tostring(_r) + ")  crossing down 30 level"
        alert(_msg,  alert.freq_once_per_bar_close)

plot(rsi(close, 7), "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

f_triggerRsi(syminfo.tickerid)
f_triggerRsi("NASDAQ:MSFT")
f_triggerRsi("FX:EURUSD")
f_triggerRsi("NASDAQ:TSLA")
f_triggerRsi("NASDAQ:PYPL")

Este script muestra cómo se puede utilizar `alert()` en una estrategia, para generar mensajes de alerta que contengan órdenes para un motor de ejecución de terceros.

Los usuarios del script pueden aprender más sobre la creación de alertas en el Centro de Ayuda. Los codificadores de Pine pueden leer sobre las nuevas alertas en el Manual de Usuario de Pine y en el Manual de Referencia.

Lea sobre todas las actualizaciones de Pine en las Notas de la versión de nuestro Manual de Usuario.

La manera más rápida de seguir los mercados

Abrir gráfico