introduzione
Senza i giusti strumenti di trading, non sarai in grado di effettuare un’analisi tecnica efficace. Una solida strategia di trading ti aiuterà a evitare errori comuni, a migliorare la gestione del rischio e ad aumentare la tua capacità di identificare e sfruttare le opportunità.
Per molti, TradingView è la piattaforma grafica di riferimento. Offrendo un hub di strumenti di analisi tecnica, questa potente applicazione web HTML5 viene utilizzata da milioni di persone per monitorare i movimenti del Forex, delle criptovalute e dei mercati azionari tradizionali.
TradingView ha molte funzionalità potenti: ti consente di monitorare gli asset su numerose piattaforme di trading, nonché di pubblicare idee di scambio all'interno del tuo social network. In questo articolo ci concentreremo sulla sua capacità di personalizzazione. Utilizzeremo Pine Script, il linguaggio di programmazione di TradingView, che ci garantisce un controllo granulare sui nostri formati grafici.
Cominciamo!
Cos'è PineScript?
Pine Script è un linguaggio di scripting che puoi utilizzare per modificare i tuoi grafici TradingView. La piattaforma ti offre già molte funzionalità per farlo, ma Pine Script ti consente di fare un ulteriore passo avanti. Che si tratti di cambiare i colori delle tue candele o di testare una nuova strategia, Pine Editor ti consentirà di personalizzare i tuoi grafici in tempo reale come ritieni opportuno.
Il codice stesso è ottimamente documentato, quindi assicurati di consultare il manuale dell'utente per ulteriori informazioni. Il nostro obiettivo in questo tutorial è discutere alcuni dei principi di base e presentare indicatori che potrebbero essere utili per il trading di criptovalute.
Collocamento
Iniziare con Pine Script è incredibilmente semplice. Qualsiasi codice che scriviamo verrà eseguito sui server di TradingView, quindi possiamo accedere all'editor e sviluppare i nostri script da un browser, senza ulteriori download o configurazioni richieste.
In questo tutorial, "graficiamo" la coppia di valute Bitcoin/Binance USD (BTCBUSD). Se non l'hai già fatto, fai il passo e registra un account gratuito (è disponibile anche un abbonamento Pro, ma non necessario per questa guida).
Segui questo link e troverai un grafico simile al seguente:

Il tuo probabilmente sarà più aggiornato.
Una volta qui, vorremo avere il grafico completo: fai clic sul pulsante per accedervi. Questo ci fornirà una visione molto più dettagliata, strumenti di disegno e opzioni per tracciare linee di tendenza, tra le altre cose.

Grafico completo. È possibile regolare l'intervallo di tempo facendo clic sulle visualizzazioni visualizzate sopra le schede evidenziate.
Non approfondiremo come utilizzare i diversi strumenti disponibili, ma se prendi seriamente l'analisi tecnica, ti consigliamo vivamente di familiarizzare con loro. In basso a sinistra (indicato nell'immagine), vedrai una serie di schede diverse: fai clic su Pine Editor.
L'editore del pino

Questo editor è il luogo in cui avviene la magia. Gli diremo cosa vogliamo fare, quindi faremo clic su Aggiungi al grafico per vedere come appaiono le nostre annotazioni sopra. Tieni presente che le cose possono complicarsi se includiamo più annotazioni contemporaneamente, quindi le rimuoveremo tra i diversi esempi: fai clic con il pulsante destro del mouse sul grafico> Rimuovi indicatori.
Puoi vedere che abbiamo già un paio di righe di codice lì. Procediamo facendo clic su Aggiungi al grafico per vedere cosa succede.

Un secondo grafico viene aggiunto sotto l'originale. Il nuovo grafico rappresenta gli stessi dati. Passa il mouse sopra My Script e fai clic sulla croce per eliminarlo. Ora analizziamo il codice nel dettaglio.
studio("Il mio copione")Questa prima riga imposta semplicemente la nostra annotazione. Richiede solo il nome che vuoi dare all'indicatore ("My Script", in questo caso), sebbene ci siano anche una serie di parametri opzionali che possiamo aggiungere. Uno di questi è l'overlay, che dice a TradingView di posizionare l'indicatore sul grafico esistente (piuttosto che su un nuovo segmento). Come puoi vedere nel nostro primo esempio, per impostazione predefinita appare false. Anche se ora non lo vedremo in azione, overlay=true aggiunge l'indicatore al grafico esistente.
trama (chiudi)Questa riga è l'istruzione per contrassegnare il prezzo di chiusura di Bitcoin. plot ci fornisce semplicemente un grafico a linee, sebbene possiamo anche visualizzare candele e barre, come vedremo tra poco.
Ora, proviamo quanto segue:
//@versione=4
study("Il mio script", overlay=true)
trama(aperto, colore=colore.viola)Una volta aggiunto questo, dovresti essere in grado di vedere un secondo grafico (che sarà come quello originale spostato a destra). Tutto quello che abbiamo fatto è catturare il prezzo di apertura, e poiché l'apertura del giorno corrente è la chiusura del giorno precedente, è logico che questi presentino una forma identica.
Molto bene! Elimineremo le annotazioni attuali: ricorda, per fare ciò dobbiamo fare clic con il tasto destro e selezionare Rimuovi indicatori. Passa il mouse su Bitcoin/BUSD e fai clic sul pulsante Nascondi per cancellare anche il grafico corrente.
Molti trader preferiscono i grafici a candele poiché ci forniscono più informazioni rispetto a un semplice diagramma come quello che abbiamo appena realizzato. Procediamo ad aggiungerli di seguito.
//@versione=4
study("Il mio script", overlay=true)
plotcandle(aperto, alto, basso, chiuso)È un buon inizio, ma la mancanza di colori lo rende un po' insipido. Idealmente, dovremmo avere candele rosse quando l'apertura è maggiore della chiusura nel periodo in questione, e verdi quando la chiusura supera l'apertura. Quindi aggiungeremo una riga sopra la funzione plotcandle():
//@versione=4
study("Il mio script", overlay=true)
colori = aperto >= chiuso ? colore.rosso: colore.verde
plotcandle(aperto, alto, basso, chiuso)Questo esaminerà ciascuna candela e controllerà se l'apertura è maggiore o uguale alla chiusura. Se lo è, significa che i prezzi sono scesi durante il periodo, quindi colorerà la candela di rosso. Altrimenti lo colorerà di verde. Modifica la funzione plotcandle() per approvare questa combinazione di colori:
//@versione=4
study("Il mio script", overlay=true)
colori = aperto >= chiuso ? colore.rosso: colore.verde
plotcandle(aperto, alto, basso, chiuso, colore=colori)Elimina gli indicatori attuali se non l'hai già fatto e aggiungi questo al grafico. Ora dovremmo avere qualcosa che assomigli ad un normale grafico a candele.

Prezioso!
Tracciare le medie mobili (MA)
Alcuni degli elementi base li abbiamo già. Diamo ora un'occhiata al 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 attribuisce un peso maggiore ai dati più recenti. Tende ad essere più reattivo ai movimenti improvvisi e viene spesso utilizzato per operazioni a breve termine (come ad esempio nel day trading).
La media mobile semplice (SMA)
Potremmo anche tracciare la SMA, in modo da poter confrontare le due medie in seguito. Aggiungi questa riga al tuo script:
trama(sma(chiudi, 10))Questo traccerà la media dei dieci giorni precedenti. Regola il numero tra parentesi per vedere come cambia la curva quando si considerano lunghezze diverse.

La SMA, basata sui dieci giorni precedenti.
La media mobile esponenziale (EMA)
L’EMA sarà un po’ più difficile da capire, ma non c’è motivo di preoccuparsi. Analizziamo prima la formula:
EMA = (Chiusura - EMA del giorno precedente) * Moltiplicatore - EMA del giorno precedenteAllora, cosa ci dice questo? Ebbene, per ogni giorno calcoliamo una nuova media mobile, basata su quella del giorno precedente. Il moltiplicatore è ciò che “pesa” il periodo più recente, e si calcola con la seguente formula:
Moltiplicatore = 2 / (Lunghezza EMA + 1)Come per le medie mobili semplici, dobbiamo specificare quanto durerà l'EMA. Sintatticamente, la funzione per tracciare l'EMA è simile a quella della SMA. Traccialo accanto alla SMA in modo da poter confrontare i due:
//@versione=4
study("Il mio script", overlay=true)
trama(sma(chiudi, 10))
trama(ema(chiuso,10))
Puoi vedere che c'è una leggera differenza tra entrambi i tipi di MA.
➠ Stai pensando di iniziare nel mondo delle criptovalute? Acquista Bitcoin su Binance!
Script incorporati
Fino ad ora, abbiamo scritto il nostro codice manualmente in modo che tu ne abbia familiarità. Successivamente introdurremo un elemento che può farci risparmiare tempo, soprattutto se scriveremo script più complessi e non vogliamo farlo da zero.
In alto a destra nell'editor, fai clic su Nuovo. Ti imbatterai in un menu a discesa con tutti i tipi di indicatori tecnici diversi. Fare clic su Moving Average Exponential per vedere il codice sorgente di un indicatore EMA.

Vai avanti e aggiungilo al grafico.
Questo è diverso dal nostro: riconoscerai le funzioni input(). Sono ottimi dal punto di vista dell'usabilità, poiché puoi fare clic su questa casella...

...e modifica facilmente alcuni valori in una finestra pop-up facendo clic sulla rotella Impostazioni.

Aggiungeremo un paio di funzioni input() nel nostro prossimo script per dimostrarlo.
Contrassegna l'indicatore Relative Strength Index (RSI).
Il Relative Strength Index (RSI) è un altro indicatore essenziale dell’analisi tecnica. È noto come indicatore di “slancio”, nel senso che misura la velocità con cui gli asset vengono acquistati e venduti. Presentato su una scala da 0 a 100, un punteggio RSI tenta di informare gli investitori se gli asset sono "ipercomprati" o "ipervenduti". In genere, un asset può essere considerato ipervenduto se ha un punteggio inferiore o uguale a 30 e ipercomprato con un punteggio maggiore o uguale a 70.
Se vai su Nuovo > Strategia RSI, puoi verificarlo tu stesso. L'RSI viene solitamente misurato in periodi di 14 (ovvero 14 ore o 14 giorni), ma puoi modificare tali impostazioni per adattarle alla tua strategia.
Aggiungilo al grafico. Dovresti vedere alcune frecce visualizzate ora (definite dalla funzione strategic.entry() nel codice). RsiLE indica una potenziale opportunità di prolungare l'asset in quanto potrebbe essere ipervenduto. RsiSE evidenzia i possibili punti in cui vendere l'asset quando è ipercomprato. Tieni presente che, come per tutti gli indicatori, non dovresti necessariamente fare affidamento su di essi come prova infallibile che i prezzi aumenteranno o diminuiranno.
Backtesting
Esiste un modo per testare i nostri indicatori personalizzati. Sebbene le prestazioni passate non siano garanzia di risultati futuri, il backtest dei nostri script può darci un’idea di quanto siano efficaci nel captare i segnali.
Di seguito forniremo un esempio di un semplice script. Creiamo una strategia semplice 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$. Quindi possiamo vedere quanto questa strategia sarebbe stata storicamente redditizia.
//@versione=4
strategia("ALaLuna", overlay=true)
invio = input(11000)
uscita = ingresso(11300)
prezzo = vicino
if (prezzo <= inserisci)
strategia.entry("CompraLaCaída", strategia.long, comment="CompraLaCaída")
if (prezzo >= uscita)
strategia.close_all(comment="VendeLasNoticias")Qui abbiamo definito l'input e l'output come variabili; sono entrambi input, il che significa che possiamo modificarli sul grafico in seguito. Impostiamo anche la variabile del prezzo, che prende la chiusura di ogni periodo. Quindi, abbiamo una logica sotto forma di istruzioni if. Se la parte tra parentesi quadre è vera, verrà eseguito il blocco rientrato di seguito. Altrimenti verrà saltato.
Quindi, se il prezzo è inferiore o uguale all'ingresso desiderato, la prima espressione risulta vera e apriremo una posizione lunga. Una volta che il prezzo sarà pari o superiore all'output desiderato, verrà attivato il secondo blocco, chiudendo tutte le posizioni aperte.
Annoteremo il grafico con frecce che mostrano dove entriamo/usciamo, quindi specifichiamo cosa etichettare questi punti con il parametro commento (in questo esempio, "BuyTheDip" e "SellTheNews"). Copia il codice e aggiungilo al grafico.

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

Posizioni in cui siamo entrati e usciti.
Metti insieme i pezzi
È tempo di scrivere la nostra sceneggiatura utilizzando alcuni dei concetti che abbiamo visto finora. Combineremo EMA e RSI e utilizzeremo i loro valori per colorare le candele, che restituiranno informazioni che possiamo facilmente visualizzare.
Ciò non deve essere interpretato come 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 anche il grafico Bitcoin/BUSD, così avremo una tela pulita su cui lavorare.
Iniziamo definendo il nostro studio. Sentiti libero di chiamarlo come preferisci, assicurati solo di impostare overlay = true.
studio(titolo="Binance Academy Script", overlay=true)Ricorda la nostra formula EMA di prima. Dobbiamo fornire al moltiplicatore la lunghezza dell'EMA. Convertiamolo in un input che richiede un numero intero (quindi senza cifre decimali). Imposteremo anche un minimo che può essere (minval) e un valore predefinito (defval).
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)Usando questa nuova variabile, possiamo calcolare il valore EMA per ogni candela sul nostro grafico:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)Eccellente. A proposito dell'RSI. Gli daremo una lunghezza in modo simile:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)
rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)E ora possiamo calcolarlo:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)
rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(chiudi, rsiLength)In questa fase, metteremo insieme la logica che colora le candele in base ai valori EMA e RSI. Prendiamo una situazione in cui (a) il prezzo di chiusura della candela supera l'EMA e (b) dove l'RSI è superiore a 50.
Perché? Bene, puoi decidere che questi indicatori possano essere utilizzati insieme per dirti quando acquistare Bitcoin a breve o lungo termine. Ad esempio, potresti pensare che soddisfare entrambe le condizioni significhi che è un buon momento per aprire una posizione long. O al contrario, puoi usarlo per informarti quando non andare short, anche se altri indicatori dicono il contrario.
Quindi la nostra riga successiva sarà simile a questa:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)
rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(chiudi, rsiLength)
colori = chiudi > emaVal e rsiVal > 50 ? colore.verde: colore.rossoSe lo traduciamo in un linguaggio semplice, stiamo semplicemente dicendo che se il valore EMA supera il prezzo di chiusura e il punteggio RSI supera 50, coloreremo la candela verde. Altrimenti lo coloreremo di rosso.
Successivamente, traccia l'EMA:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)
rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(chiudi, rsiLength)
colori = chiudi > emaVal e rsiVal > 50 ? colore.verde: colore.rosso
trama(emaVal, "EMA")Infine, traccia le candele, assicurandoti di includere il parametro del colore:
studio(titolo="Binance Academy Script", overlay=true)
emaLength = input(title="Lunghezza EMA", type=input.intero, defval=25, minval=0)
emaVal = ema(chiudi, emaLength)
rsiLength = input(title="Lunghezza RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(chiudi, rsiLength)
colori = chiudi > emaVal e rsiVal > 50 ? colore.verde: colore.rosso
trama(emaVal, "EMA")
plotcandle(aperto, alto, basso, chiuso, colore=colori)E questa è la sceneggiatura! Aggiungilo al grafico per vederlo in azione.

Un grafico BTC/BUSD con l'indicatore EMA/RSI.
Insomma
In questo articolo, esaminiamo alcuni esempi di base di cosa puoi fare con l'editor Pine di TradingView. A questo punto, dovresti assicurarti di fare semplici annotazioni sui grafici dei prezzi per ottenere ulteriori informazioni dai tuoi indicatori.
Qui siamo interessati solo a un paio di indicatori, ma è facile generare indicatori più complessi, selezionando gli script integrati di New o scrivendoli tu stesso.
Mancanza di ispirazione? I seguenti articoli potrebbero fornirti alcune idee per il tuo prossimo progetto:
Breve guida all'indicatore SAR parabolico
Guida per padroneggiare i ritracciamenti di Fibonacci
Introduzione agli indicatori anticipatori e ritardati (indicatori anticipatori/ritardati)
Spiegazione dell'indicatore MACD
