Come usare le variabili negli alert

Puoi usare delle sigle particolari (in gergo definite placeholder) per accedere ai valori delle variabili nei messaggi di alert. Ad esempio, puoi creare un alert su NASDAQ:AAPL ed inserire il seguente messaggio:

{{exchange}}:{{ticker}}, prezzo = {{close}}, volume = {{volume}}

Se l'alert sarà attivato, riceverai il seguente messaggio con i valori corrispondenti:

Ecco la lista delle sigle disponibili:

1. {{ticker}} — restituisce il codice identificativo (ticker), es. AAPL o BTCUSD.

2. {{exchange}} — la borsa dove viene scambiato lo strumento o il fornitore del dato (come NASDAQ, NYSE o AMEX). Se il dato è in differita viene incluso il parametro DL o DLY,  es. NYMEX_DL.

3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} — i valori corrispondenti ai dati della candela che ha attivato l’alert. Gli alert per gli indicatori, gli strumenti di disegno e i grafici non convenzionali dipendono dal timeframe, mentre gli alert di prezzo sono sempre calcolati sul grafico ad 1 minuto. {{time}} corrisponde al valore di tempo UTC della barra nel formato yyyy-MM-ddTHH: mm: ssZ. Ad esempio, 2019-08-27T09: 56: 00Z. Tutti gli altri valori sono in formato decimale, ma con il punto al posto della virgola (formato americano), es. 1245.25.

4. {{timenow}} — il momento esatto in cui l’alert è stato attivato. Viene formattato nello stesso modo già spiegato qui sopra con {{time}}. É preciso al secondo, indipendentemente dal timeframe scelto.

5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} - i valori corrispondenti alla serie di dati dell’indicatore scelto per impostare un alert. N.B.: l'elenco parte da zero. Il numero più alto è dunque 19 (si può accedere ad un massimo di 20 serie di dati). Una serie è composta dai valori che vedete nel grafico. Ad esempio, l’indicatore integrato del volume ha due serie di dati – Volume e MA Volume (MA sta per media mobile). Puoi creare un alert sull’indicatore con il seguente messaggio: 

Volume: {{plot_0}}, Volume medio: {{plot_1}}

6. {{interval}} — restituisce il timeframe/intervallo temporale del grafico in cui è stato creato l'alert. Tieni a mente che, per motivi tecnici, in alcune circostanze questa variabile risulterà uguale a "1" invece del timeframe del grafico. Gli alert tradizionali basati sul movimento di prezzo, con condizioni come "AAPL supera i 120" o "AMZN più grande di 3600", sono tutti basati sull'ultimo valore del prezzo, quindi il timeframe non è rilevante per il loro risultato. Per questo motivo, tutti gli alert di prezzo sono effettivamente calcolati sul grafico ad un minuto, e la variabile restituirà tale valore. Inoltre, anche i grafici Range sono calcolati sui dati ad 1 minuto, quindi il risultato sarà lo stesso. Per gli alert basati su indicatori o disegni, {{interval}} funzionerà come previsto.

7. {{syminfo.currency}} — restituisce il codice della valuta del simbolo corrente ("EUR", "USD", ecc.).

8. {{syminfo.basecurrency}}   restituisce il codice della valuta base del simbolo corrente se il simbolo si riferisce a una coppia di valute. Altrimenti, restituisce n/a. Ad esempio, restituisce "EUR" se il simbolo è "EURUSD".

Le sigle con il prefisso "strategy" possono essere usate solo per gli alert nelle strategie:

  • {{strategy.position_size}} - restituisce il valore della parola chiave su Pine (in questo caso, la dimensione della posizione corrente).
  • {{strategy.order.action}} - restituisce la stringa “buy” o “sell”  per l'ordine eseguito.
  • {{strategy.order.contracts}} - restituisce il numero dei contratti per l'ordine eseguito.
  • {{strategy.order.price}} - restituisce il livello di prezzo a cui l'ordine è stato eseguito.
  • {{strategy.order.id}} - restituisce l'ID dell'ordine eseguito (la stringa usata come primo parametro in una delle funzioni che generano gli ordini: strategy.entry, strategy.exit o strategy.order).
  • {{strategy.order.comment}} - restituisce il commento per l'ordine eseguito (la stringa usata nel parametro comment in una delle funzioni che genera ordini: strategy.entry, strategy.exit o strategy.order). Se non c'è alcun commento, viene usato il valore di strategy.order.id.
  • {{strategy.order.alert_message}} - restituisce il valore del parametro alert_message, che può essere usato nel codice Pine della strategia quando si invoca una delle funzioni per generare ordini: strategy.entry, strategy.exit o strategy.order. Questa funzionalità è supportata solo su Pine v4.
  • {{strategy.market_position}} - restituisce la posizione corrente della strategia in formato stringa: “long”, “flat”, o “short”.
  • {{strategy.market_position_size}} - restituisce la dimensione della posizione corrente in valore assoluto (es. come numero non negativo).
  • {{strategy.prev_market_position}} - restituisce la posizione precedente della strategia in formato stringa: “long”, “flat”, o “short”.
  • {{strategy.prev_market_position_size}} - restituisce la dimensione della posizione precedente in valore assoluto (es. come numero non negativo).

Quando l’alert viene attivato, vedrai i valori corrispondenti:

La stessa regola si applica agli script Pine. Le serie sono contate a seconda dell’ordine di chiamata usato nel codice. Le serie appartenenti alla lista delle funzioni elencate qui sotto possono essere usate nei messaggi di notifica:

  • plot;
  • plotshape;
  • plotchar;
  • plotarrow;
  • plotbar;
  • plotcandle.

Se l’argomento series di queste funzioni contiene un valore booleano, questo sarà sostituito da 0 o 1 nel testo della notifica. Tieni a mente che alcune funzioni — plotcandle e plotbar — hanno 4 serie ciascuna, ed ognuna di queste sarà considerata nella numerazione.

Tuttavia, questo metodo di richiamare valori non è sempre conveniente. Per rendere il tutto più facile, abbiamo aggiunto il supporto al richiamo tramite nome. Per utilizzarlo, devi usare la sigla {{plot(“Nome”)}}, con il nome esatto della serie al posto di Nome.

Per gli indicatori integrati, gli unici nomi supportati sono quelli usati in lingua inglese (presenti nel codice). Nell’esempio dell’indicatore di volume, per accedere alle serie con i loro nomi dovresti includere il seguente messaggio:

Volume: {{plot(“Volume”)}}, MA Volume: {{plot(“Volume MA”)}}

Allo stesso modo, per accedere alle serie contenute su uno script Pine devi specificare il nome utilizzando il titolo dell’argomento della funzione corrispondente (ad eccezione delle funzioni plotcandle e plotbar), pertanto la lingua utilizzata non è rilevante. Se non c’è la possibilità di accedere al codice sorgente, il nome può essere visto nelle sezione Stile delle impostazioni.

Ad esempio, per accedere ai valori di questo script:

//@version=4
study("My script")
plot(close, title="series")

Devi includere {{plot(“series”)}} nel messaggio di alert.

Lo stesso nome viene mostrato nelle impostazioni dello script:

Quando utilizzi i vari indicatori in un singolo alert, puoi solo richiamare i valori del primo – quello indicato nel primo menù a cascata. Ecco un esempio qui sotto.

In questo caso, ad esempio, si può solo far riferimento ai valori MA. Per accedere ai valori dello script “My script”, dovrebbe essere selezionato nel primo nel menù a discesa.

Puoi anche specificare nuove sigle nell’argomento del messaggio della funzione alertcondition. Ad esempio:

//@version=4
study("My script")
alertcondition(close>open, message="price {{ticker}} = {{close}}")

Il messaggio dal parametro argomento viene estratto ed inserito in automatico nella finestra di messaggio durante la creazione dell’alert.

Quando viene creato un alert con una condizione che proviene dalla funzione alertcondition, la sostituzione del valore sarà applicabile solo se lo script è v4 e superiore.

I valori ottenuti dagli alert attivati possono essere usati in sinergia con i webhook, inviando le variabili contenute nel messaggio all'indirizzo desiderato. O utilizzando applicazione di terze parti come TradingView Alerts to MT4/MT5, che sono già in grado di utilizzare valori dinamici. Alcuni esempi di utilizzo sono disponibili in questo script di esempio. Queste opzioni aprono ancora più possibilità per chi fa frequente uso di alert.