Site icon Trading

Struttura del codice di Pine Script

Cominciamo a prendere contatto con il codice di Pine Script di TradingView. Iniziamo da zero, ovvero dalle basi.

La prima cosa che si incontra nel codice è la dichiarazione della versione da utilizzare. Potrà sembrare bizzarro ma si fa con un commento che nel caso del codice è simile a Javascript è si innesca con due barre “//” (il simbolo alternativo al tasto numero 7 della tastiera italiana). La dichiarazione completa sarà seguita da @version e il numeo di versione, come da esempio di seguito:

//@version=4

La versione 4 al momento in cui viene redatto questo articolo, è l’ultima e faremo riferimento a questa. Se non viene dichiarato nulla il sistema prenderà come base la versione 1 di Pine Script.

Tuttavia abbiamo appreso come si scrivono i commenti sul codice, questi possono anche essere messi dopo del codice valido purché nella stessa riga e al termine della stessa.

La dichiarazione successiva sarà quella di indicare se stiamo per indicare un codice che è relativo a “Study” o a “Strategy”. Qui ovviamente ci fermiamo un attimo perché è necessario che si comprendano bene le differenze.

Study vs Strategy

Study di fatto permette di applicare oggetti, calcoli e perfino attivare degli allarmi ma non è in grado di computare azioni (simulate o meno) di vendita o acquisto .

Questo lo può fare lo Strategy, che in realtà è anche in grado di verificare perdite e guadagni di questa strategia. Lo possiamo vedere come un prototipo di trade-bot poiché in base a determinate scelte sul codice può potenzialmente effettuare ordini e vendite.

Quindi per andare sul pratico Study o Strategy si applicano in questo modo:

study("Il mio Script") // dichiaro uno study
strategy("La mia Strategia") // dichiaro una strategy

Come si può vedere la sintassi è semplice, si deve solo avere l’accortezza di dare un nome alla strategy o allo study.

Loop invisibile

Una seconda nota da prendere in considerazione è il tipo di applicazione. Nei programmi informatici un codice quando viene eseguito, ovvero ha un inizio, e in base alle istruzioni arriva ad un risultato, cioè una fine. E’ possibile re-iterare questo codice in un ciclo, detto “loop”. Nel caso di Pine Script il loop è invisibile, poiché non ci dobbiamo preoccupare di istruire il sistema a effettuare un loop, questo è già garantito dal sistema stesso. Quindi si parla di “loop invisibile” e l’applicazione del codice molto probabilmente sarà applicata al termine di esecuzione di un candela.

Ovviamente nel caso di una strategia che prevede un back-test nel passato questa andrà ad applicarsi anche ai dati esistenti nel sistema.

Comandi

Quindi dopo la dichiarazione di Study o Strategy, il codice avrà delle differenze che scopriremo con il proseguo, in questa fase non è importante saperlo o doversi ricordare questa cosa.

Partiamo da un comando piuttosto importante che ovviamente è ambivalente, ovvero Plot. Questo comando serve per disegnare qualcosa sul grafico, vediamo il codice base che ci propone:

//@version=4
study("Il mio Script")
plot(close)

in questo caso viene disegnato il valore di chiusura della candela sul grafico, creando un nuovo grafico di tipo lineare, che mostra l’andamento di tutte le chiusure.

Per applicare quanto sopra, una volta scritto il codice è stato sufficiente premere il tasto “aggiungi al grafico” posto nella testata dell’editor medesimo.

Per eliminare questo indicatore, sarà sufficiente avvicinare il mouse al titolo del nostro oggetto “il mio script” in questo caso, dove apparirà un menu a scomparsa con tutta una serie di icone, tra cui “elimina“.

E’ interessante notare che il grafico che abbiamo creato venga mostrato in una nuova sezione, generalmente sul fondo e che dal punto di vista dello “spazio” sullo schermo, riduce la dimensione dello stesso. Infatti il comando study porta in dote delle opzioni di default che se non esplicitamente dichiarate vengono inserite dal sistema in automatico.

Se noi scriviamo il codice sopra in questo modo avremo il medesimo risultato:

//@version=4
study("Il mio Script", overlay=false)
plot(close)

Come si può notare abbiamo aggiunto overlay=false che indica di non sovrapporre il grafico delle chiusure, sopra il grafico del prezzo. Se invece di false indichiamo il valore true, questo sarà messo in sovraimpressione sul prezzo

Nei prossimi post vedremo alcune tipologie di tipi di dato che saranno utili per il proseguo della guida.

Exit mobile version