Molti trader, ad un certo punto della propria esperienza, scelgono di passare dal trading discrezionale alla modalità sistematica. È la risposta per chi decide di operare sulla base di regole e dati obiettivi, senza lasciare nulla al caso o alla soggettività. È anche un modo efficace per riappropriarsi delle ore passate ogni giorno davanti al monitor e per alleggerire lo stress emotivo ed i suoi effetti, dannosi sia per gli affari che per la qualità di vita in generale.

Optato per questo tipo di trading, arriva anche il momento di valutare se affidarsi totalmente ad uno dei Trading System disponibili sul mercato oppure realizzare il proprio personalmente. Noi di Algoritmica ci siamo posti l’obiettivo di incentivare la formazione di trader sistematici automatici e di aiutarli a diventare completamente autonomi nella gestione dell’infrastruttura informatica: per questo, oggi parliamo della programmazione di un Trading System.

La programmazione nel percorso di automatizzazione di Trading System

Dietro all’automatizzazione di un sistema di trading c’è un processo articolato in diverse macro-fasi, ciascuna delle quali necessita di studio e di competenze specifiche.

  1. Idea
  2. Programmazione
  3. Valutazione
  4. Ottimizzazione
  5. Validazione
  6. Portafoglio
  7. Autotrading

Nel precedente articolo abbiamo parlato della prima, ossia trovare l’idea da cui nasce un Trading System. Lo step successivo – che tratteremo qui – assolve al compito di tradurre quell’idea in una formula matematica che la rappresenti fedelmente, che metta un computer nelle condizioni di comprenderla ed eseguirla per noi.

Dovrebbe dunque essere evidente l’importanza della programmazione: un Trading System ha la capacità di eseguire tutte le azioni che può fare un trader umano, più velocemente e con maggiore efficienza, qualunque sia la strategia sottostante. Questo a patto, però, che gli si diano istruzioni precise e a lui comprensibili: se venisse a mancare questa condizione, anche la migliore delle intuizioni o dei capitali da investire non avrebbero valore.

L’approccio alla programmazione di un Trading System

In un certo senso, il codice – ossia l’insieme delle formule matematiche in cui è tradotta l’idea – deve essere una conseguenza, prima che una causa, per il Trading System. Spieghiamo meglio cosa significa. Per dar vita ad un sistema che segua esattamente la logica della nostra strategia è necessario che noi abbiamo, prima di tutto, una logica e una strategia. Può sembrare assurdo sottolinearlo, ma non lo è.

La pianificazione a monte è fondamentale. Senza avere ordine e chiarezza nelle nostre idee e un preciso metodo decisionale in mente è impossibile riuscire a sviluppare un sistema di trading: non possiamo trasformare delle intenzioni confuse nelle regole inequivocabili e trasparenti di cui il sistema ha obbligatoriamente bisogno.

La programmazione di Trading System, insomma può essere affrontata solo se si hanno da un lato la conoscenza del mercato, dall’altro una base di abilità logiche. Tutte competenze che non si possono imparare in due giorni, ma che sono essenziali per chiunque operi sui mercati e si possono perfezionare con il giusto metodo e con la pratica.

La “barriera informatica”

Quello della programmazione è il gradino della scala verso l’autotrading che più di tutti riguarda aspetti tecnico-informatici. La tecnologia informatica è uno scoglio che può scoraggiare i trader in generale: in particolare, chi vorrebbe avvicinarsi all’automatizzazione dei sistemi si domanda spesso se la programmazione possa essere alla portata di tutti, anche di chi non ha mai affrontato la scrittura di un codice.

La risposta a questo interrogativo è sì: chiunque può imparare a programmare il proprio Trading System. Negli anni sono state sviluppate diverse piattaforme, ognuna delle quali ha scelto un linguaggio di programmazione per interpretare, leggere ed applicare le istruzioni circa la strategia da mettere in atto. MetaTrader (linguaggio MQL), eSignal (linguaggio EFS) o NinjaTrader (linguaggio NinjaScript) sono solo alcuni esempi.

Sia piattaforme che linguaggi si distinguono per funzionalità a disposizione e livelli di complessità, fornendo una rosa di opzioni tra le quali valutare la più adatta alle nostre esigenze. A nostro avviso, una tra tutte si è distinta per speciali completezza ed intuitività: MultiCharts. È proprio con questo strumento che abbiamo infatti scelto di lavorare.

Non solo MultiCharts utilizza un linguaggio di programmazione semplice e di facile apprendimento (EasyLanguage), ma è anche una piattaforma integrata. Significa che dispone di un ottimo motore di backtest grazie al quale il trader può sia elaborare che testare, validare e mettere a mercato la propria strategia operativa.

Alcune precisazioni

Anche chi non ha una formazione informatica può apprendere tutto ciò che serve per la programmazione di un Trading System: basta avere la capacità di ragionare con la logica necessaria a tradurre la strategia in regole e diagrammi di flusso. Farlo, comunque, diventa più semplice e dà maggiori garanzie di efficacia in un contesto formativo strutturato. Qui, il tema della programmazione può essere affrontato in modo graduale, con i giusti mezzi e nei tempi più opportuni. Ed è esattamente ciò che il corso Diventare Quant con MultiCharts può offrire.

Prima di intraprendere un percorso di questo genere è però bene prendere coscienza del fatto che la curva di esperienza nell’apprendimento di un linguaggio di programmazione è inizialmente piatta. In altre parole, la prima impressione è quella di lavorare tanto senza concludere nulla. È così per tutti ed è normale: iniziare a capire la sintassi – il linguaggio in sé – e arrivare a ragionare sulla semantica – la logica – richiede metodo, applicazione ed esercizio nel tempo.

È bene anche sapere che senza programmazione si può vivere. Come abbiamo detto per l’idea, che potrebbe essere al limite presa da una fonte esterna, scrivere personalmente il codice del proprio Trading System non è essenziale. Potremmo utilizzarne uno già esistente o affidarne la scrittura ad un programmatore professionista.

Tuttavia, noi promuoviamo sempre il trading consapevole. Avere il controllo totale del processo che porta all’automatizzazione di un Trading System è la chiave – testata e comprovata – per ottenere i migliori risultati possibili. Al contrario, trascurare o demandare uno o più dei 7 anelli della nostra catena di automatizzazione fa sì che il fallimento arrivi prima o più velocemente. Più controllo si ha sul processo di automatizzazione e più saranno proficui i risultati del nostro operare con i Trading System.

Ecco perché, per quanto non imprescindibile, consigliamo di dedicare del tempo anche ad apprendere il linguaggio di programmazione della piattaforma che abbiamo deciso di utilizzare. Questo ci permette di comprendere meglio il sistema, di entrare nelle sue regole e di apportarvi alcune modifiche: poter dialogare con qualcuno senza il bisogno di ricorrere ad un interprete aumenta efficacia ed efficienza. Potremo approfondire insieme questo ed altri argomenti al prossimo Convegno Italiano dei Trading System, in programma per sabato 15 Settembre 2018 a Bologna.