Chiariamoci subito: Metatrader è un buon prodotto che ha saputo conquistarsi una fetta importante del pubblico di chi fa trading automatico.
Io però non mi sono mai convertito all’utilizzo di Metatrader, ne ho spiegato diverse volte i motivi ma torno sull’argomento visto le frequenti domande che mi arrivano, stavolta in modo articolato e dettagliato.
Nel 2000 io ho iniziato a programmare trading system con Easy Language di Tradestation2000 (nome esatto anche Omega Prosuite2000i), un metalinguaggio molto simile al Turbo Pascal, conciso, facile da apprendere, con vasta letteratura presente gratuita in rete già a partire dalla fine degli anni 90.
All’epoca pur essendo il top chi desiderava fare studi di portafoglio complessi, sia statici che rotazionali si accorgeva che anche Tradestation2000 aveva dei limiti che applicativi esterni come il Rina Portfolio Evaluator colmavano solo in parte. Quando hanno iniziato ad uscire piattaforme di più recente progettazione ho quindi seguito con interesse l’evoluzione del mercato per trovare alternative più complete: ho studiato prima WealthLab, poi eSignal ed imparato il suo linguaggio Javascript1.5, ho acquistato e testato Traderstudio (interessante per i test di portafoglio, simile come linguaggio a Easy Language ma poco usata e supportata) e ho seguito fin dalla prima ora (era il 2006) l’ascesa di Multicharts di cui ho fatto il beta tester per un paio di anni. La piattaforma che nel tempo è diventata più completa e pratica è proprio quest’ultima. Per me è stata una scelta naturale, avendo già centinaia di strategie realizzate con Tradestation2000, ed essendo il linguaggio di Multicharts (almeno nella fase iniziale) compatibile al 95% con l’Easy Language, non ho dovuto perdere mesi e mesi per convertirli ad altro linguaggio.
La conversione di un linguaggio ad un altro non è solo una questione di investire moltissimo tempo ma in molti casi significa gettare al vento l’intero trading system o doverlo ritarare ex novo o doverlo modificare. Traducendo un trading system da un linguaggio all’altro fa sì che i risultati cambino nella maggior parte dei casi, talvolta in modo sostanziale. La prima volta che me ne accorsi fu traducendo 12 trading system da Easy Language a Visual Trader per il mio libro sui trading system del 2004. In quella occasione VT era ancora un linguaggio “giovane”, la sintassi non era completa come quella di Omega200i ed inoltre poteva esserci il dubbio della fonte dati diversa. Con eSignal l’anno successivo accadde la stessa cosa: la fonte dati era la stessa in quanto eSignal lo usavo proprio come fonte dati per Omega2000i e per togliermi ogni dubbio che non fossi stato io a commettere errori di inesperienza di traduzione sul Javascript1.5 chiesi la collaborazione di Alexis Montenegro, uno degli sviluppatori della piattaforma… Ma non solo… Negli anni successivi, quando Multicharts iniziò ad offrire anche il backtesting di portafoglio (“Portfolio Trader”) e ad offrire indubbi vantaggi di efficienza (ad esempio il consumo di CPU) in real time, decisi di switchare i miei trading system contando sul fatto che i linguaggi Easy Language e Power Language erano compatibili. Ebbene… In alcuni casi le performance erano molto diverse (per lo più peggiori), in altri simili ma non perfettamente coincidenti.
Quando iniziò a prendere piede Metatrader, che tuttora viene offerta da un grandissimo numero di broker, non intravidi vantaggi rispetto a Multicharts sia per un backtesting meno accurato, sia per la mancanza di molte funzioni che per me erano oramai irrinunciabili nella progettazione e testing di una strategia professionale. Tradurre quindi centinaia di trading system era una operazione senza senso e in questo caso, mi limitai ad imparare a smanettare sulla piattaforma senza nemmeno imparare a programmare in MQL4 perché lo ritenevo una perdita di tempo. Ho fatto comunque convertire alcune mie strategie didattiche da ingegneri programmatori esperti sia per il libro “I segreti dei trading system”sia per qualche corso mettendo comunque in guardia (avvertimento spesso non letto o ignorato) sul fatto che i risultati, rispetto alla versione di partenza su Multicharts, erano significativamente diversi e richiedevano una ritaratura e ritesting di tutto il modello. Le differenze infatti sono fortissime, tra le maggiori che abbia mai riscontrato.
Perché accadono di questi problemi passando da un linguaggio all’altro? Le cause sono molteplici:
– Fonti dati diverse (ci sono differenze tra database di fornitori differenti in mercati regolamentati, figuratevi su dati di mercati OTC di diversi broker….);
– Formule diverse da una piattaforma all’altra per quanto riguarda il calcolo di indicatori ed oscillatori;
– Diversi arrotondamenti;
– Function diverse per eseguire determinati calcoli (talvolta può esserci anche un tema di accuratezza del backtesting).
Come ripeto spesso la scelta di una piattaforma è come quella di un’auto: occorre individuare quella più adatta al tipo di percorso ed utilizzo che intendente farne. Quando scegliete una piattaforma fate quindi valutazioni adeguate: una piattaforma non è per sempre ma non è nemmeno una cosa che si possa cambiare frequentemente con uno schiocco di dita, a meno di non disporre solo di una manciata di trading system. Fate inoltre attenzione a non prendere cantonate giudicando come spazzatura strategie progettate con altre piattaforme e poi riprogrammate con altre. Un’operazione di “fine tuning” sui dati storici del broker in vostro possesso è assolutamente doverosa e da mettere in conto.