Metatrader 4 e Metatrader 5 sono indubbiamente due tra le piattaforme di trading più amate dagli investitori di tutto il mondo. Questi software ci permettono di avere grafici aggiornati in tempo reale, di lavorare con l’analisi tecnica e di lavorare su più schermi.
Tante caratteristiche di MT4 sono semplicemente “migliori” rispetto alla concorrenza. Altre caratteristiche, invece, sono del tutto uniche. La prima è la possibilità di non cambiare piattaforma quando passiamo da un broker all’altro. Grazie all’ampia scelta di servizi che utilizzano Metatrader, infatti, possiamo avere più conti per le nostre varie esigenze.
La seconda caratteristica, ad alti livelli, è ancora più importante. Parliamo della possibilità di programmare dei robot di trading automatico utilizzando MQL. Si tratta di un linguaggio di programmazione appositamente pensato per questa piattaforma, che ha già raccolto un grande successo.
Certo, il trading algoritmico non è per tutti. Molte persone, specie che si basa sulle analisi macroeconomiche o sulle notizie, hanno più interesse verso il trading manuale. Grazie alle piattaforme come eToro, con costi bassi e sempre accessibili anche da smartphone, oggi c’è meno bisogno di algoritmi.
Per chi ha un sistema di trading molto meccanico, invece, questi possono essere una grande novità. Oggi vogliamo illustrare proprio le caratteristiche di MQL, considerato il “re” dei linguaggi di programmazione per i robot di trading.
Indice
A cosa serve MQL?
MQL è un linguaggio di programmazione che ci permette di delegare ad una macchina alcune delle nostre operazioni di investimento. Possiamo sfruttarlo, ad esempio, per creare una strategia basata su dei precisi segnali matematici o statistici.
In generale, questo tipo di attività piace a coloro che fanno analisi tecnica. Una volta che abbiamo una strategia di trading funzionante e comprovata, trasferirla su una macchina può liberarci del tempo prezioso. Il computer si adopererà per trovare esattamente le condizioni che noi richiediamo prima di aprire una posizione. Questo elimina due problemi tipici di chi fa trading:
- L’errore umano, perché una svista può capitare a tutti ma può anche costare cara;
- L’approccio psicologico, dal momento in cui una macchina non si fa prendere dallo sconforto né dall’entusiasmo.
Quando il trading era relegato alle banche, programmare algoritmi di trading era molto complesso. Ogni banca aveva, ed ha tuttora, un suo linguaggio di programmazione che differisce da tutti gli altri. Questo significa dover fare più investimenti, dover formare di più i programmatori e incappare più spesso in problemi di compatibilità.
Da quando il trading online ha preso il sopravvento, le cose sono diventate più semplici. Ci sono piattaforme, come quella di Metatrader, che vengono considerate uno “standard” in tutto il mondo. Questo significa che un linguaggio solo può permettere a tutti di creare un algoritmo replicabile e migliorabile facilmente da altre persone, senza bisogno di investimenti multipli in formazione e test.
Tra l’altro, come vedremo tra poco, questo linguaggio non è altro che un’integrazione di C++. Chi conosce quest’ultimo potrà imparare MQL in pochi giorni.
Le basi del linguaggio MQL
Come quasi tutti i linguaggi di programmazione per i robot di trading, anche MQL si basa sul C++. Addio alla comodità di Javascript e PHP: si ritorna alle radici della programmazione, con la necessità di dichiarare il tipo di ogni variabile e con un margine di errore minimo.
Per quanto scomodo, questo linguaggio è anche molto efficace nell’eseguire operazioni precise. Dovendo andare a specificare tanti elementi nel codice, ci potremo assicurare di tradurre puntigliosamente la nostra strategia in un algoritmo.
Chiaramente al linguaggio base si sommano delle unicità di MQL. Oltre ai vari operatori e alle funzioni già incluse nelle librerie del linguaggio di Metatrader, cambiano alcuni aspetti della sintassi del codice.
La differenza più grande è rappresentata dall’impossibilità di fare address arithmetics. Significa che non potremo utilizzare delle operazioni matematiche per muoverci lungo gli elementi che compongono un array, né utilizzare i pointer di un array nelle operazioni di confronto. Considerando quanto sovente ritornano gli array all’interno della programmazione di un algoritmo di trading, la cosa è piuttosto sconveniente.
Un’altra differenza molto importante è l’assenza dell’operatore GoTo. Significa che non potremo ordinare al programma di passare da una linea all’altra del nostro codice, ma dovremo lasciare che questo venga eseguito dall’alto in basso senza saltare nessun elemento.
Per gli sviluppatori abituati ai linguaggi utilizzati su internet, destreggiarsi in questo tipo di programmazione non è affatto facile. Per chi ha un background più classico, invece, il passo tra la teoria e la pratica è breve; la documentazione sul sito ufficiale di MQL, tra l’altro, è molto dettagliata.
Pro e contro di MQL
Per quanto MQL sia un netto passo in avanti rispetto alle soluzioni che venivano utilizzate una volta, non è perfetto. Come ogni strumento nel mondo del trading, ha dei pro e dei contro da valutare con attenzione.
Qui vogliamo fare un riassunto dei vantaggi e degli svantaggi di questa soluzione. Per quanto si tratti di punti di vista, siamo certi che alcune opinioni siano molto diffuse nella community dei trader.
Pro
Sicuramente un grande vantaggio di MQL è la facilità con cui si possono trovare delle risorse. Parliamo sia di risorse formative, sia di lavori già creati e venduti sul marketplace ufficiale del linguaggio di programmazione.
Proprio grazie alla popolarità di Metatrader, specie nei suoi anni d’oro, molte persone si sono dedicate allo sviluppo di tutorial e thread. Sui vari siti frequentati dai developer, da Stack Overflow a GitHub, si trovano ancora moltissime risorse. Anche fuori dalle community specifiche, come sui risultati dei motori di ricerca o su Youtube, si trovano tutorial e guide interessanti.
La possibilità di acquistare direttamente delle soluzioni già pronte è altrettanto interessante. Magari non troveremo un algoritmo che corrisponde perfettamente alla nostra strategia, ma troveremo qualcosa di simile che possiamo riadattare. Purtroppo non c’è la certezza che quel codice sia ordinato e scritto in modo pulito, ma solitamente è così.
Considerando quanto tempo si può risparmiare scegliendo di riadattare una soluzione già esistente rispetto all’implementazione di una nuova, è sempre utile dare un’occhiata prima di procedere con lo sviluppo da zero di un algoritmo.
Oltre alla popolarità, un altro grande vantaggio è la libertà di movimento che ci viene offerta dalle funzioni già preparate da MQL. Se hai intenzione di programmare un algoritmo con questo linguaggio, passare del tempo a studiarne la documentazione è un ottimo investimento. Molto spesso, per realizzare ciò che abbiamo in mente, possiamo ricorrere a strumenti già pronti.
Da ultimo, è interessante il fatto che questo linguaggio non sia pensato solo per creare algoritmi che operano sui grafici a tutti gli effetti. Possiamo anche sviluppare dei semplici script, che non eseguono operazioni ma ci inviano dei segnali. Se la nostra strategia non si adatta perfettamente al trading automatico, possiamo comunque delegare allo script le operazioni meccaniche per concentrarci su quelle più delicate.
Contro
Passiamo alle note dolenti. Quali sono i limiti di MQL?
La prima cosa da sapere è che le versioni di Metatrader, per quanto longeve, non sono immortali. Quando si passa da una versione all’altra, come è successo da MT4 a Mt5, moltissimi aspetti cambiano e rendono necessario rivedere il codice del nostro algoritmo. Certo, se questo risulta ancora profittevole è sicuramente un buon investimento; fin dalla prima volta, però, dobbiamo scrivere del codice molto pulito che ci permetta di riadattarlo facilmente alla versione successiva.
Il secondo grande problema è più ostico, perché non riguarda né la nostra strategia di trading né MQL in senso stretto. Piuttosto è un problema di cambiamenti nel mercato del trading online: sempre più broker, infatti, decidono di non offrire Metatrader tra le soluzioni disponibili per gli investitori.
In futuro potremmo ritrovarci con un algoritmo funzionante che, però, non trova sbocchi. Con sempre meno broker in circolazione su Metatrader, la scelta è già ristretta; se ne facciamo una questione di qualità rispetto alla quantità, la situazione è ancora più preoccupante. Ad aver abbandonato questa soluzione, infatti, sono soprattutto i marchi più seri ed apprezzati del settore.
Il problema dei broker compatibili
Dei pochi broker che continuano ad inserire Metatrader tra i software disponibili per i clienti, ancora meno sono quelli che permettono il trading automatico. Il fatto di operare su questa piattaforma, infatti, non è automaticamente legato al fatto di poter piazzare ordini attraverso i robot di trading.
Ogni broker deve ulteriormente concedere a Metatrader di operare sulla sua piattaforma utilizzando gli algoritmi. Se il server del broker non permette la comunicazione tramite API con Metatrader, allora sviluppare un algoritmo risulta pressoché inutile. Potremo ancora programmare dei tool che ci aiutano a individuare segnali di trading, certo, ma non è comodo quanto piazzare ordini e chiuderli in automatico.
Oltre ai costi che questa soluzione implica per i broker, si tratta anche di un problema sul fronte della sicurezza informatica. Concedere al proprio server di dialogare con altri, se non c’è un costante monitoraggio della sicurezza, rischia di scoprire il fianco alle vulnerabilità informatiche. Questo ci viene confermato anche da tantissimi post apparsi su Reddit negli ultimi anni a riguardo.
Il punto è molto semplice: per compilare i nostri programmi e trasformarli in input comprensibili dalla macchina, viene utilizzato un protocollo di codifica DLL. Questo tipo di compilazione del programma, per quanto efficace, risulta anche facilmente attaccabile dall’esterno. Un hacker potrebbe facilmente avere accesso alle nostre informazioni, anche se non potrebbe riuscire a rubare il nostro denaro che viene conservato direttamente dal broker.
Quindi i nostri soldi sono al sicuro, sì, ma la nostra strategia di trading tanto sudata rischia di diventare di dominio pubblico. Un’altra delle criticità importanti da segnalare riguardo a MQL e agli expert advisor sviluppati in questo modo.
La migliore alternativa a MQL
Oggi esiste una scelta più conveniente di creare un robot di trading automatico. Possiamo, infatti, copiare direttamente i migliori trader d’Europa senza preoccuparci di scrivere nemmeno una riga di codice. Potrà sembrare strano, ma questa soluzione esiste già da alcuni anni e sta riscuotendo moltissimo successo.
Grazie alla piattaforma di eToro, infatti, è nato il social trading. Tutti i trader iscritti al broker possono liberamente parlare e confrontarsi tra di loro su bacheche simili a quella di Facebook. Non solo, ma possono anche decidere di copiare chi vogliono tra le centinaia di migliaia di investitori che usano questa piattaforma.
Quando iniziamo a copiare un trader, eToro ci chiederà con quale somma vogliamo copiarlo. Basta selezionare questo parametro e tutto il resto avviene senza bisogno di trovarsi davanti al computer o al telefono. Ogni volta che quel trader apre una posizione, la stessa posizione verrà aperta anche sul nostro account. Ogni volta che il trader chiude una posizione, sarà la stessa cosa.
In questo modo potremo anche diversificare il nostro investimento su più fronti, come se avessimo tanti algoritmi che lavorano al posto nostro. La sensibilità di un trader esperto, però, permette a questa soluzione di adattarsi meglio a ogni situazione di mercato. Notoriamente, infatti, il problema degli algoritmi è che funzionano bene solo in scenari particolari o in momenti di volatilità contenuta.
Puoi provare il social trading registrandoti gratis ad eToro. Il broker ti metterà anche a disposizione 100.000€ virtuali con cui fare pratica, in modo da passare al conto reale solo quando hai preso del tutto la mano con la piattaforma.
Il 51% dei conti di investitori al dettaglio perde denaro quando negozia CFD con questo fornitore. Dovresti considerare se puoi permetterti di correre il rischio elevato di perdere i tuoi soldi.
Leggi anche:
FAQ
MQL è il linguaggio di programmazione ufficiale di Metatrader. Serve per creare algoritmi di trading automatico per MT4 e MT5, due tra le piattaforme più famose per investire online.
Il linguaggio si basa su C++, con le dovute differenze. Non potremo fare alcune operazioni comuni nel linguaggio di base, ma avremo una libreria di funzioni già fatte molto utili per chi crea robot di trading.
Con questo linguaggio si possono programmare algoritmi completi, cioè strumenti che aprono e chiudono investimenti da soli, oppure semplici script che ci danno segnali di trading ma lasciano al trader la decisione finale.