Nuovi alert. Nuovi messaggi dinamici. Ancora più potenza.

Jan 25, 2021

I nuovi alert basati sugli script fanno leva sulla funzione `alert()`, presente sia su indicatori che strategie, e permettono la composizione di messaggi completamente dinamici generati al momento dell’attivazione dell’alert.

Il funzionamento è simile a quello introdotto di recente con gli alert sulle strategie: un alert creato tramite l’interfaccia grafica può aggregare più segnali generati all’interno dello script con varie chiamate `alert()`, così come un alert su una strategia aggrega varie condizioni prima di attivarsi.

Per creare nuovi alert:

  1. Includi una o più funzioni `alert()` all’interno dello script, avendo cura di racchiuderle all’interno di un blocco `if` che rappresenti le condizioni di attivazione.
  2. Crea l’alert sullo script utilizzando l’apposito pulsante “Crea alert” disponibile nella parte alta del grafico, selezionando nella condizione il nome dello script contenente l’alert.

All’interno delle strategie, gli utenti possono scegliere se creare alert che si attivino solo in corrispondenza con la funzione `alert()`, con l’esecuzione di un ordine, o con entrambi. Inoltre, è importante tenere a mente che non ci sono limiti al numero di variabili che possono essere utilizzate all’interno dei messaggi dinamici degli alert, e che non sono più necessari le sigle tradizionali (placeholder), dato che ogni variabile presente in uno script può essere integrata all’interno delle chiamate `alert()` fintanto che si presenti sotto forma di stringa.

Qui sotto alcuni esempi di come usare la funzione `alert()`:

1) Lo script è attivato ad ogni barra ed il messaggio contiene il prezzo di chiusura della stessa:

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

2) Lo script controlla i valori di tre indicatori: RSI, SMA e Momentum. Si attiva se uno degli indicatori in questione supera un livello (o un prezzo) predeterminato e presenta un messaggio con il nome dell’indicatore ed il valore corrente:

//@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) Lo script esamina i valori dell’indicatore RSI su cinque diversi strumenti contemporaneamente. Se in uno di questi viene superata una certa soglia, l’alert sarà attivato e conterrà il nome dello strumento ed il valore dell’indicatore al momento del superamento.

//@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")

Gli utenti interessati possono avere maggiori informazioni su script ed alert nel nostro Centro di supporto. Tutte le informazioni utili agli sviluppatori sono state integrate nel Manuale utente Pine e nel Compendio di riferimento.

Per rimanere aggiornati su tutti le novità in ambito Pine, basta seguire le Note di rilascio.

Look first Then leap

TradingView è realizzato per te. Assicurati di sfruttare al massimo tutte le sue funzionalità
Apri grafico