Focus sul Codice: quando si parla di “meta-codici” (linguaggi che girano su piattaforme commerciali e che non sono veri e propri linguaggi di programmazione come Python o Java) non tutte le soluzioni si equivalgono e come professionisti del coding vi diciamo la nostra in questo articolo.
Nel panorama dei codici per testare idee di trading (che consentono anche la realizzazione di una parte grafica di alto livello), segnalo il linguaggio Pine Script di Trading View. Si tratta degli stessi realizzatori del software Multicharts (forse il miglior software commerciale in circolazione per fare backtest di strategie), che hanno esteso la loro esperienza in ambito interfacciamento tra flusso dati ed API dei vari broker, realizzando una declinazione Cloud e Web Oriented.
In pratica è possibile accedere da browser a migliaia di grafici gratuiti (azionario di tutto il mondo, futures, forex, CDF, cryptovalute, indici e indicatori economici), fruire delle centinaia di indicatori, funzioni e strategie native ed accedere ad una community internazionale in continua crescita. Se oggi dovessi indirizzare un neofita del trading, questa è la soluzione che consiglierei. Un oceano di informazioni a disposizione direttamente da browser, senza dover installare alcuna piattaforma e con una flessibilità notevole. Non abbiamo la profondità di Python ma è un buon inizio (gli studenti della Python Academy riusciranno ad essere padroni del codice sin dalle prime righe).
Come fruire di tutto ciò? Basta registrarsi gratuitamente al sito www.tradingview.com e creare un account personale.

Passiamo al codice Pine Script: è possibile con poche righe scrivere indicatori grafici e strategie più o meno complesse. Una guida in italiano semplifica la vita a chi abbia dei dubbi sulla sintassi o sulle varie funzionalità. Contrariamente a prodotti stand alone come Tradestation o Multicharts, qui possiamo integrare in un unico codice sia gli aspetti grafici che quelli operativi, senza la sgradevole necessità di creare oggetti distinti (come indicators, functions e strategies).
Desidero illustrare le caratteristiche di tale linguaggio codificando qualcosa di un po’ più strutturato di un semplice esempio didattico. Ho messo a disposizione gratuitamente del pubblico un primo script di esempio per intercettare dei grandi movimenti al rialzo sull’azionario, limitandomi alla parte long (rialzista).
In riga 8 diamo un nome alla strategia e definiamo il numero di barre all’indietro su cui effettuare i calcoli sulle serie di dati. Da riga 10 a riga 14 impostiamo cinque input:
Instrument: il tipo di strumento (1 se azione o valuta Forex, 2 se future)
money: il controvalore in dollari per ciascuna operazione.
backtest_start: l’anno di inizio del backtest.
period: il period associato ad un Donchian Channel
monetary_stoploss: il valore monetario dello stop loss per singola operazione.

Si noti la pulizia del codice che ricorda Python, con la mancanza di definizione variabili e di punteggiatura a fine riga. L’editor è pulito e siamo anni luce davanti ad altri linguaggi anche più popolari.
Le sintassi condizionali ricordano ancora una volta Python, con l’indentazione (il rientro) del codice che definisce le gerarchie del codice. Da riga 16 a riga 19 diciamo alla macchina che se siamo in presenza di un future, associamo alla variabile quantity un contratto di default, altrimenti il rapporto intero tra money e la close di barra (per calcolare il numero di azioni).
In riga 20 e 21 calcoliamo il canale di Donchian superiore (massimo dei massimi) ed inferiore (minimo dei minimi) a finestra scorrevole. Associamo due livelli più reattivi (up e down) che utilizzeremo come trailing stop nella strategia.
Da riga 26 a riga 29 codifichiamo in maniera elementare la stampa degli indicatori ottenuti.
In riga 31 definiamo il setup di ingresso con il superamento del Donchian superiore da parte delle chiusure.
In riga 33 e 34 codifichiamo la condizione di ingresso, cui diamo l’etichetta “Long”, imponendo di non essere già in posizione.
In riga 36 imponiamo la condizione di attraversamento delle close sul Donchian veloce “down” e in riga 38 e 39 impostiamo la condizione di chiusura della posizione “Long” con l’etichetta “Trailing”.
Non ci rimane che creare ed impostare uno stop loss monetario. In riga 41 definiamo il livello di stop corrispondente ad una perdita monetaria definita dall’input “monetary_stoploss” e in riga 42 impostiamo un ordine stop su tale livello. In riga 43 disegniamo il prezzo corrispondente per ciascun trade.
Infine, da riga 45 a riga 48 scriviamo una label in corrispondenza dell’ultima candela utile.
Il gioco è fatto!

E’ sufficiente salvare lo script ed applicarlo ad un grafico a piacere, avendo cura di specificare lo strumento utilizzato.

A tale scopo invito a fare un doppio click sul nome della strategia sovrapposta al grafico in alto a sinistra sotto il nome dello strumento visualizzato.

Ciascuno degli input codificati è rappresentato nella maschera di lavoro e possiamo divertirci a cambiare i valori associati.
Nel nostro esempio abbiamo applicato la strategia al titolo azionario Apple Inc. (ticker AAPL) dove sembra funzionare piuttosto bene. Possiamo visualizzare con un click il Performance Report (qui chiamato Strategy Tester) dove possiamo apprezzare una percentuale di trade vincenti del 64% ed un Profit Factor di 2.8. Nell’Overview sono presentati l’equity line dei profitti la curva di draw down, mentre nel Performance Summary possiamo analizzare in dettaglio le principali metriche del trading system.

Infine in List of Trades possiamo visionare i singoli trade processati in backtest.

Questo articolo è stato solo un primo avvicinamento alle funzionalità di TradingView. Vi invito a provarlo e credetemi se vi dico che non ricevo alcun compenso per quanto vi ho scritto. Trading View è un nuovo paradigma per il trading online ed è già possibile operare su diversi broker in modo manuale direttamente dai suoi grafici. Come osservatore non posso che prenderne atto e attendere le contromosse dei competitor.
La strada è segnata…
Questo il link per testare il codice Pine Script presentato in questo articolo!
Buon divertimento!
Giovanni Trombetta
Head of Research & Development Gandalf Project
AVVERTENZE: I contenuti di questo articolo (e degli altri contenuti in questo sito) e le opinioni espresse non devono in nessun caso essere considerati come un invito all’investimento.
Le analisi non costituiscono mai una sollecitazione all’acquisto o alla vendita di qualsivoglia strumento finanziario. Queste note hanno per oggetto analisi finanziarie e ricerca in materia di investimento. Qualora vengano espresse delle raccomandazioni, queste hanno carattere generale, sono rivolte ad un pubblico indistinto e mancano dell’elemento della personalizzazione.
Sebbene frutto di approfondite analisi, le informazioni contenute in questo e negli altri articoli possono contenere errori. Gli autori non possono in nessun caso essere ritenuti responsabili per eventuali scelte effettuate dai lettori sulla base di tali informazioni erronee. Chi decide di porre in essere una qualsiasi operazione finanziaria sulla base delle informazioni contenute nel sito lo fa assumendone la totale responsabilità.
DISCLAIMER: The contents of these notes and the opinions expressed should in no case be considered as an invitation to invest. The analyzes never constitute a solicitation to buy or sell any financial instrument.
These notes relate to financial analysis and investment research. If recommendations are made, these are of a general nature, are aimed at an indistinct audience and lack the element of personalization.
Although the result of in-depth analysis, the information contained in these notes may contain errors. The authors cannot under any circumstances be held responsible for any choices made by readers on the basis of such erroneous information. Anyone who decides to carry out any financial transaction on the basis of the information contained in the site does so assuming full responsibility.