introduzione
Senza i giusti strumenti di trading, non è possibile eseguire un'analisi tecnica efficace. Una solida strategia di trading ti aiuterà a evitare errori comuni, a migliorare la gestione del rischio e la tua capacità di identificare e sfruttare le opportunità.
Per molti, TradingView è la migliore piattaforma di grafici. La potente applicazione web HTML5 offre numerosi strumenti di analisi tecnica e viene utilizzata da milioni di utenti per tenere traccia dei movimenti nei mercati azionari, Forex e criptovaluta.
TradingView ha molte funzionalità potenti: ci consente di monitorare gli asset su più piattaforme di trading e condividere idee di trading sui social media. In questo articolo parleremo delle opzioni di personalizzazione. Utilizzeremo PineScript, il linguaggio di programmazione di TradingView, che ci dà il controllo sui layout dei nostri grafici.
Iniziamo!
Cos'è PineScript?
Pine Script è un linguaggio di scripting utilizzato per personalizzare i grafici TradingView. La piattaforma fornisce già molte funzionalità a questo scopo, ma Pine Script offre alcune opzioni aggiuntive. Sia che tu voglia cambiare i colori delle candele o testare una nuova strategia, Pine Editor ti consente di personalizzare i tuoi grafici in tempo reale nel modo che preferisci.
Il codice dispone di una documentazione molto solida, quindi assicurati di consultare il manuale dell'utente per ulteriori informazioni. Il nostro obiettivo in questo tutorial è discutere alcune nozioni di base e presentare indicatori utili per il trading di criptovalute.
Configurazione
È molto semplice iniziare a utilizzare Pine Script. Tutto il codice viene eseguito sui server di TradingView, quindi possiamo accedere all'editor e sviluppare i nostri script da un browser: non sono richiesti download o configurazioni aggiuntivi.
In questo tutorial utilizzeremo la coppia di valute Bitcoin/Binance USD (BTCBUSD). Se non hai ancora un account, creane uno gratuitamente (esiste anche un'opzione di abbonamento Pro, ma non è necessaria per questo tutorial).
Vai a questo link e vedrai un grafico come questo:

Il tuo probabilmente sarà più aggiornato.
Qui utilizzeremo la modalità grafico completa: fai clic sul pulsante per accedervi. In questa modalità, abbiamo una vista più dettagliata, strumenti di disegno e opzioni per tracciare le linee di tendenza, tra le altre funzioni.

Il grafico completo. Puoi regolare il periodo di tempo facendo clic sulle opzioni sopra le schede evidenziate nell'immagine.
Non discuteremo di come utilizzare i vari strumenti disponibili, ma se utilizzi l'analisi tecnica ti consigliamo di familiarizzare con essi. Nell'angolo in basso a sinistra (mostrato nell'immagine), vedrai alcune schede diverse: fai clic su Pine Editor.
Redattore di Pine

Questo editor è il luogo in cui avviene la magia. Inseriamo le istruzioni. Fare clic su Aggiungi al grafico per visualizzare le annotazioni precedenti. Tieni presente che le cose possono complicarsi se includiamo più annotazioni contemporaneamente, quindi le rimuoveremo per i prossimi esempi (fai clic con il pulsante destro del mouse sul grafico > Rimuovi indicatori).
Come possiamo vedere, abbiamo già alcune righe di codice. Facciamo clic su Aggiungi al grafico e vediamo cosa succede.

Una seconda grafica verrà aggiunta sotto l'originale. Il nuovo grafico ora mostra gli stessi dati. Passa il mouse sopra My Script e fai clic sulla croce per rimuoverlo. Ora, approfondiamo il codice.
studio("Il mio copione")Questa prima riga sta solo impostando le nostre annotazioni. Dobbiamo solo definire un nome per l'indicatore ("My Script" in questo caso), ma possiamo aggiungere anche alcuni parametri facoltativi. Uno di questi è l'overlay, che indica a TradingView di inserire l'indicatore nel grafico esistente (invece di utilizzare un nuovo segmento). Come possiamo vedere nel primo esempio, il valore predefinito è false. Il parametro overlay = true aggiunge l'indicatore al grafico esistente, ma non lo utilizzeremo ora.
trama(chiudi)Questa riga è un'istruzione per tracciare il prezzo di chiusura di Bitcoin. Il parametro plot ci fornisce semplicemente un grafico a linee, ma è anche possibile visualizzare candele e barre, come vedremo tra poco.
Ora, proviamo quanto segue:
//@version=4 study("Il mio script", overlay=true) plot(open, color=color.purple)Dopo aver aggiunto questo parametro, vedremo un secondo grafico (che assomiglia all'originale, ma spostato a destra). Tutto quello che abbiamo fatto è stato tracciare il prezzo di apertura. Poiché l'apertura del giorno corrente corrisponde alla chiusura del giorno precedente, è logico che abbiano un formato identico.
OK! Eliminiamo le note attuali (ricorda, lo facciamo facendo clic con il tasto destro e selezionando Rimuovi indicatori). Passa il mouse su Bitcoin/BUSD e fai clic su Nascondi per cancellare anche il grafico corrente.
Molti trader preferiscono i grafici a candele perché ci forniscono più informazioni rispetto a un semplice grafico come quello che abbiamo appena realizzato. Li aggiungeremo successivamente.
//@version=4 study("Il mio script", overlay=true) plotcandle(open, high, low, close)È un buon inizio, è una buona idea aggiungere alcuni colori. Generalmente utilizziamo candele rosse quando il prezzo di apertura è superiore al prezzo di chiusura per un determinato periodo e candele verdi se il prezzo di chiusura è superiore al prezzo di apertura. Aggiungiamo una riga sotto la funzione plotcandle():
//@version=4 study("Il mio script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close)Questa funzione analizza ogni candela e controlla se il valore di apertura è maggiore o uguale al valore di chiusura. Se lo è, significa che i prezzi sono scesi nel corso del periodo, quindi la candela diventerà rossa. Altrimenti sarà verde. Modifica la funzione plotcandle() per impostare questa combinazione di colori su:
//@version=4 study("Il mio script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close, color=colors)Rimuovi gli indicatori attuali se non l'hai già fatto e aggiungi questo al grafico. Ora dovremmo avere qualcosa di simile a un normale grafico a candele.

Eccellente!
Tracciamento delle medie mobili (MM)
Esaminiamo alcune nozioni di base. Tracciamo il nostro primo indicatore personalizzato: la media mobile esponenziale o EMA. Questo è uno strumento prezioso in quanto ci consente di filtrare qualsiasi rumore di mercato e attenuare l’azione dei prezzi.
L'EMA differisce leggermente dalla media mobile semplice (SMA) in quanto pone maggiore enfasi sui dati più recenti. Tende ad essere più reattivo ai movimenti improvvisi e viene spesso utilizzato per strategie a breve termine (come il trading giornaliero, ad esempio).
Media mobile semplice (SMA)
Tracciamo anche la media mobile semplice (SMA), in modo da poter confrontare le due in seguito. Aggiungi questa riga al tuo script:
plot(sma(chiudi, 10))Questo valore rappresenta la media degli ultimi dieci giorni. Regola il numero tra parentesi per vedere come cambia la curva quando si considerano periodi diversi.

MMS, basato sugli ultimi dieci giorni.
Media mobile esponenziale (EMA)
MME è un po' più complicato, ma non preoccuparti. Diamo prima un'occhiata alla formula:
EMA = (Chiusura - EMA del giorno precedente) * Moltiplicato - EMA del giorno precedenteCosa significa questo? Per ogni giorno calcoliamo una nuova media mobile basata sulla media del giorno precedente. Il moltiplicatore considera il “peso” del periodo più recente e calcola utilizzando la formula:
Moltiplicatore = 2 / (Periodo EMA + 1)Come con le medie mobili semplici, dobbiamo specificare la durata dell'EMA. Sintatticamente, la funzione per tracciare l'EMA è simile all'MMS. Traccialo accanto all'MMS in modo da poter confrontare i due:
//@version=4 study("Il mio script", overlay=true) plot(sma(close, 10)) plot(ema(close,10))
Possiamo notare una leggera differenza tra i due tipi di medie mobili.
➠ Stai pensando di investire in criptovalute? Acquista Bitcoin su Binance!
Script incorporati
Finora abbiamo scritto il nostro codice manualmente in modo che tu possa farti un'idea. Ma usiamo qualcosa che possa farci risparmiare tempo, soprattutto se stiamo scrivendo script più complessi e non vogliamo farli da zero.
In alto a destra nell'editor, fai clic su Nuovo. Vedrai un menu a discesa con tutti i tipi di indicatori tecnici. Fare clic su Media mobile esponenziale per visualizzare il codice sorgente di un indicatore EMA.

Aggiungi questo al grafico.
Questo è diverso dal nostro: qui vediamo le funzioni input(). Sono buoni in termini di usabilità, perché possiamo fare clic su questa casella...

...e modifica facilmente alcuni valori in una nuova finestra facendo clic su Impostazioni.

Aggiungeremo alcune funzioni input() nel nostro prossimo script per dimostrarlo.
Indicatore di tracciamento o indice di forza relativa (RSI).
Il Relative Strength Index (RSI) è un altro indicatore essenziale di analisi tecnica. È noto come indicatore di momentum, ovvero misura il tasso di acquisto e vendita degli asset. Il punteggio RSI è presentato su una scala da 0 a 100 e tenta di informare gli investitori se gli asset sono ipercomprati o ipervenduti. In genere, un asset è considerato ipervenduto se ha un punteggio inferiore o uguale a 30 e ipercomprato con un punteggio maggiore o uguale a 70.
Puoi andare su Nuovo > Strategia RSI e verificarlo tu stesso. Generalmente, l'RSI viene misurato in periodi di 14 ore o 14 giorni, ma puoi modificare questa impostazione per adattarla alla tua strategia.
Aggiungi questo al grafico. Ora vedrai alcune frecce (definite dalla funzione strategic.entry() nel codice). RsiLE indica una potenziale opportunità di posizione lunga per l'asset, che potrebbe essere ipervenduto. RsiSE evidenzia i possibili punti per posizioni corte sull'asset, quando è ipercomprato. Tieni presente che, come per tutti gli indicatori, non dovresti necessariamente fare affidamento su di essi come prova infallibile del fatto che i prezzi diminuiranno/aumenteranno.
Backtesting
Esiste un modo per testare gli indicatori personalizzati. Sebbene la storia di un asset non sia garanzia di risultati futuri, il backtest dei nostri script può darci un'idea della sua efficacia nel catturare segnali.
Successivamente, utilizzeremo un semplice esempio di script. Creiamo una strategia che entra in una posizione long quando il prezzo di BTC scende sotto gli 11.000 $ ed esce dalla posizione quando il prezzo supera gli 11.300 $. Possiamo quindi vedere quanto questa strategia sarebbe stata storicamente redditizia.
//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price <= enter) strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip") if (price >= exit) strategy.close_all(comment="SellTheNews")Qui definiamo l'entrata e l'uscita come variabili: entrambi sono input, il che significa che puoi modificarli nel grafico in seguito. Configuriamo anche la variabile prezzo, price, che considera la chiusura di ogni periodo. Poi abbiamo l'uso della logica sotto forma di funzioni if. Se la parte tra parentesi quadre è vera, verrà eseguito il blocco sottostante. Altrimenti il blocco verrà ignorato.
Pertanto, se il prezzo è inferiore o uguale alla voce desiderata, la prima espressione risulterà vera e apriremo una posizione long. Non appena il prezzo sarà pari o superiore all'uscita desiderata, verrà attivato il secondo blocco, chiudendo tutte le posizioni aperte.
Utilizzeremo il grafico con le frecce che mostrano dove entriamo/usciamo; Pertanto specifichiamo come etichettare questi punti con il parametro comment, comment (in questo esempio “BuyTheDip” e “SellTheNews”). Copia il codice e aggiungilo al grafico.

Ora possiamo vedere gli indicatori sul grafico. Potrebbe essere necessario rimpicciolire.
TradingView applica automaticamente le sue regole ai dati più vecchi. Noterai anche che passa dall'editor Pine alla scheda Strategy Tester. Ciò ti consente di avere una panoramica dei tuoi possibili profitti, un elenco delle operazioni e ciascuna delle loro prestazioni individuali.

Posizioni di entrata e di uscita.
Associazione delle informazioni
È tempo di scrivere la nostra sceneggiatura utilizzando alcuni dei concetti che abbiamo visto finora. Combiniamo EMA e RSI e utilizziamo i loro valori per colorare i grafici a candele, generando informazioni che possiamo facilmente visualizzare.
Ciò non deve essere interpretato come un incoraggiamento agli investimenti o una consulenza finanziaria: non esiste un modo oggettivamente corretto per utilizzare questo indicatore. Come tutti gli altri, dovrebbe essere utilizzato con altri strumenti per sviluppare la propria strategia.
Ora lavoriamo sul nostro nuovo script. Rimuovi tutti gli indicatori dal grafico e nascondi il grafico Bitcoin/BUSD in modo da poter lavorare su una tela pulita.
Iniziamo definendo il nostro studio. Sentiti libero di chiamarlo come preferisci, ma ricorda di impostare il parametro overlay=true.
studio(titolo="Script di Binance Academy", sovrapposizione=vero)Ricorda la nostra formula EMA di prima. Dobbiamo fornire al moltiplicatore il periodo EMA. Usiamo un input che richiede un numero intero (quindi nessuna cifra decimale). Definiremo anche un valore minimo (minval) e un valore predefinito (defval).
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0)Usando questa nuova variabile, possiamo calcolare il valore EMA per ogni candela sul nostro grafico:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)Eccellente. Ora la RSI. Definiremo un periodo in modo simile:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)E poi possiamo calcolarlo:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)In questa fase, assembleremo la logica che colora i grafici a candele in base ai valori EMA e RSI. Consideriamo una situazione in cui (a) il prezzo di chiusura della candela supera l'EMA e (b) l'RSI è maggiore di 50.
Perché? Bene, puoi decidere di utilizzare questi indicatori insieme per ottenere segnali lunghi o brevi per il trading di Bitcoin. Ad esempio, potresti pensare che soddisfare entrambe le condizioni significhi che è un buon momento per aprire una posizione long. Oppure puoi usarlo per informarti su quando la posizione non dovrebbe essere short, anche se altri indicatori segnalano il contrario.
Quindi la nostra riga successiva sarà simile a questa:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal e rsiVal > 50 ? color.green : color.redUsando un linguaggio semplice, il codice dice semplicemente che se il valore EMA supera il prezzo di chiusura e il punteggio RSI è maggiore di 50, il colore della candela sarà verde. Altrimenti sarà rosso.
Successivamente, tracciamo l'EMA:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal e rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA")Infine, traccia le candele, assicurandoti di includere il parametro del colore, color:
study(title="Script di Binance Academy", overlay=true) emaLength = input(title="Lunghezza EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal e rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors)E questa è la sceneggiatura! Aggiungilo al grafico per vederlo funzionare.

Grafico BTC/BUSD con l'indicatore EMA/RSI.
Considerazioni finali
In questo articolo, esaminiamo alcuni esempi di base di cosa puoi fare con Pine Editor di TradingView. Ora dovresti essere in grado di personalizzare i grafici dei prezzi per ottenere ulteriori approfondimenti utilizzando i tuoi indicatori.
Qui abbiamo trattato solo alcuni indicatori, ma l'idea è la stessa per quelli più complessi: puoi selezionare gli script integrati in Nuovo o scriverli tu stesso.
Poco ispirato? I seguenti articoli potrebbero fornirti alcune idee per il tuo prossimo progetto:
Una breve guida sull'indicatore SAR parabolico
Guida ai ritracciamenti di Fibonacci
Indicatori anticipatori e ritardati
Come funziona l'indicatore MACD

