Nossos novos alertas permitem mensagens dinâmicas

Jan 25, 2021

Nossos novos alertas de script utilizam uma função `alert()` que funciona tanto em estratégias quanto em estudos, e permite que uma mensagem totalmente dinâmica seja gerada quando o alerta é acionado.

Os novos alertas funcionam utilizando um modelo semelhante aos recentes alertas de estratégia, onde apenas um alerta criado na interface de usuário do gráfico pode agregar todos os gatilhos gerados por qualquer número de chamadas de alerta no script, da mesma forma que um único alerta de estratégia agregaria todos os gatilhos de eventos de corretagem.

Para criar os novos alertas:

  1. Inclua tantas chamadas de `alert()` em seu script quantas desejar, encerrando cada uma delas em um bloco de ‘if’ definindo a(s) condição(ões) de acionamento.
  2. Crie um alerta para o script utilizando a caixa de diálogo “Criar Alerta” do gráfico e selecione um tipo de alerta incluindo “alert() function call”.

Quando utilizado em estratégias, os usuários podem optar por criar alertas que acionem somente em eventos `alert()`, em eventos de preenchimento de ordem, ou em ambos. Também vale lembrar que não há limite no número de variáveis que podem ser utilizadas na mensagem de alerta dinâmica e que não são mais necessários placeholders, pois qualquer variável utilizada em um script também pode ser utilizada na nova chamada de função `alert()`, desde que esteja em formato de string.

Abaixo estão três exemplos da função `alert()`:

1) O alerta de script é acionado em cada barra, e a mensagem contém o preço de fechamento da barra:

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

2) Os valores de três indicadores são verificados: RSI, SMA e Momentum. O alerta do script será acionado se algum dos indicadores cruzar um nível especificado (ou preço), e a mensagem conterá o nome do indicador e seu valor atual.

//@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) Neste exemplo, os valores de um indicador RSI são verificados, mas em cinco símbolos ao mesmo tempo. O alerta do script será acionado se o RSI cruzar um nível especificado para qualquer um dos símbolos, e a mensagem conterá o símbolo e o valor do indicador no momento da travessia.

//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
    _r = rsi(close, 7)
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    _rt = barstate.isrealtime
    [_rsi, _co, _cu, _rt_bar] = security(_ticker, timeframe.period, [_r, _x, _y, _rt])
    _msg = _ticker + ", " + timeframe.period + ": "
    if _co and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)
    else if _cu and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ")  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=color.new(#9915FF,90), title="Background")

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

Os usuários do script podem aprender mais sobre a criação de alertas na Central de Ajuda. Os programadores de Pine podem ler sobre os novos alertas no Manual do Usuário do Pine e no Manual de Referência.

Leia sobre todas as atualizações do Pine nas Notas de Lançamento de nosso Manual do Usuário.

Look first Then leap

TradingView is built for you, so make sure you're getting the most of our awesome features
Launch Chart