Come abbiamo creato la piattaforma di trading più potente basata sull'apprendimento automatico: L'evoluzione di MQL e MetaTrader attraverso archivi, forum e nuove versioni.
Dai primi Expert Advisor all’assistente IA Agentica, MCP e OpenBLAS: Come si è evoluto l'ecosistema MQL.
La storia di MQL è la storia della sua trasformazione da un semplice linguaggio per strategie di trading in un ambiente completo di sviluppo e analisi. Oggi l'ecosistema combina MetaEditor, MQL5, Python, ONNX, l'assistente IA Agentica, il Model Context Protocol (MCP), OpenBLAS e l'infrastruttura Git di Algo Forge.

Dal linguaggio degli Expert Advisor ad un IDE
Oggigiorno, è difficile considerare MetaEditor semplicemente come un editor di codice. Include documentazione, un compilatore, un debugger, un profiler, strumenti di gestione dei progetti, integrazione con MQL5.COM, archiviazione centralizzata del codice sorgente, integrazione con Python, supporto ONNX, un assistente IA, supporto per database SQLite e la possibilità di lavorare con file CSV come tabelle modificabili. Tuttavia, questa evoluzione non è avvenuta dall'oggi al domani.
Fin dalle prime generazioni delle sue piattaforme, MetaQuotes si è mossa in un'unica direzione: offrire ai trader non solo un grafico e un pulsante di trading, ma anche la possibilità di descrivere un'idea di trading tramite codice, testarla su dati storici e metterla in pratica senza intervento umano. La storia di MQL è la storia di come un semplice linguaggio per Expert Advisor si sia gradualmente evoluto in un ambiente di ingegneria completo.
Internet non ha preservato tutto. Alcune delle vecchie pagine sono scomparse del tutto; alcune rimangono solo nella Internet Archive Wayback Machine; e alcune possono essere trovate in vecchi archivi di forum e articoli di notizie. Tuttavia, rimane materiale sufficiente per rivelare il principale percorso evolutivo:
Grafici Forex → MetaQuotes → MetaTrader → MetaTrader 4 → MetaTrader 5
Questa distinzione è importante. Gli archivi contengono vari numeri di build, designazioni di versione interne e titoli di vecchie discussioni del forum. Tuttavia, la storia pubblica della piattaforma è meglio comprensibile come una progressione di prodotti e idee piuttosto che come una sequenza di numeri di versione. Al centro di questa storia non ci sono le nuove versioni del software, bensì la graduale trasformazione di un terminale di trading in uno spazio di lavoro per sviluppatori.
Gli expert advisor sono arrivati prima del linguaggio
Il primo riferimento d'archivio al sito web MetaQuotes risale a febbraio 2001. MetaQuotes Software Corp. è stata ufficialmente costituita il 27 novembre 2000, ma le discussioni sulla futura piattaforma e sull'automazione del trading erano iniziate ancora prima. L'archivio contiene un post del forum datato 23 novembre 2000 - quattro giorni prima della registrazione formale della società.

Ciò che rende questa scoperta precoce particolarmente interessante non è né l'aspetto del sito web né i suoi dettagli tecnici. Il punto fondamentale è che MQL non esisteva ancora, mentre l'idea degli Expert Advisor era già presente. Fin dall'inizio, l'attenzione non si è concentrata solo su grafici e quotazioni, ma sulla programmazione di sistemi di trading.
Questo ha definito la direzione di tutto ciò che è seguito. Fin dal primo giorno, MetaQuotes ha concepito il terminale non come una finestra passiva per il monitoraggio del mercato, bensì come un ambiente in cui gli utenti potevano formalizzare una strategia e delegarne l'esecuzione al software.
MetaQuotes e la prima versione di MQL
La prima menzione pubblica di MQL è apparsa nel novembre 2001. Fu allora che venne rilasciata la versione 1.78 di MetaQuotes, introducendo la possibilità di creare strategie di trading personalizzate — Expert Advisor — utilizzando il MetaQuotes Language interno della piattaforma.
L'annuncio di allora delineava già la visione a lungo termine della piattaforma: Gli Expert Advisor dovevano definire la logica di trading, essere testati su dati storici, eseguire automaticamente operazioni sul conto e gestire le posizioni aperte senza intervento umano.
Secondo gli standard odierni, la prima MQL appariva decisamente modesta. Tutte le sue specifiche rientravano in una singola pagina HTML. Il linguaggio non prevedeva cicli, array o la struttura tipica di un programma completo. Per i calcoli era stato utilizzato un piccolo insieme di variabili a virgola mobile predefinite.
Tuttavia, giudicare questo traguardo basandosi esclusivamente sulla sua sintassi sarebbe errato. La vera svolta non risiedeva nell'espressività del linguaggio, bensì nel suo livello di integrazione. Gli Expert Advisor venivano eseguiti direttamente all'interno del terminale client gratuito, accedevano a serie temporali e indicatori tecnici, potevano analizzare il mercato e inviare ordini di trading al server.
Questo segnò l'emergere di un principio che sarebbe poi diventato lo standard per l'intero ecosistema MQL: una strategia di trading non è un segnale esterno che deve essere importato manualmente nel terminale, bensì un programma eseguibile all'interno della piattaforma di trading.
MetaTrader: Una nuova piattaforma, una nuova scala
Nel maggio 2002 sono iniziati i test pubblici per la nuova piattaforma MetaTrader. Non si trattava di un semplice aggiornamento estetico, bensì di una profonda riprogettazione dei componenti del server e del gestore. Gli annunci menzionavano il supporto per centinaia di strumenti, tra cui i mercati Forex, CFD, future e azionari, nuovi protocolli di comunicazione e la capacità di servire migliaia di utenti online.
Questa fase è importante nella storia di MQL per due motivi.
In primo luogo, il terminale è entrato a far parte di un ecosistema più ampio. Il trading automatizzato non era più concepito come un'applicazione autonoma, ma come un sistema integrato con un server, strumenti di gestione, un'ampia base di utenti e diverse classi di strumenti finanziari.
In secondo luogo, divenne chiaro che il vecchio linguaggio non era sufficiente. Se ci si aspettava che gli utenti non si limitassero a eseguire Expert Advisor preconfigurati, ma che descrivessero effettivamente la logica di trading, il linguaggio doveva avvicinarsi alla programmazione convenzionale.
MQL II: Il linguaggio comincia ad assomigliare a un vero linguaggio di programmazione
Nell'autunno del 2002, la versione 2.03 di MetaTrader ha introdotto una nuova versione del linguaggio: MQL II.

Non poteva più essere considerato semplicemente un insieme di formule per la creazione di Expert Advisor. La documentazione di MQL II era circa tre volte più lunga di quella di MQL originale, sebbene stesse comunque bene su una singola pagina HTML. Il linguaggio ha introdotto variabili reali, stringa e booleane, array, cicli for e while e un insieme ampliato di funzioni integrate. Tra queste figuravano le funzioni matematiche Abs, Ceil, Cos, Exp, Floor, Log, Mod, Pow, Round, Sin, Sqrt e Tan.
Quello è stato un passo avanti significativo. Gli utenti lavoravano ancora all'interno di un framework piuttosto rigido: ogni file sorgente definiva essenzialmente una funzione eseguibile che veniva eseguita al verificarsi di un tick per uno strumento finanziario. All'interno di questo framework, tuttavia, era già possibile implementare logiche più complesse e utilizzare condizioni, cicli, array e calcoli matematici.
In seguito, è diventato possibile richiamare file compilati esternamente, risolvendo parzialmente il problema dell'impossibilità di avere funzioni personalizzate all'interno di un singolo file sorgente. Internamente, l'implementazione era ancora ben lontana dai futuri MQL4 e MQL5: il codice girava su una macchina basata su stack costruita attorno alla Notazione Polacca Inversa. Per gli utenti, tuttavia, questa non era la cosa più importante. Il punto chiave era che una strategia di trading si stava gradualmente evolvendo da un insieme di condizioni a un vero e proprio programma.
In termini di sintassi, MQL II somigliava al Pascal. Anche questo è stato intenzionale. Il Pascal era considerato uno dei linguaggi più accessibili per imparare a programmare, e ciò si allineava perfettamente con la filosofia di MetaQuotes dell'epoca: ogni utente del terminale di trading avrebbe dovuto avere l'opportunità di sviluppare la propria strategia di trading.
Indicatori personalizzati: MQL va oltre gli Expert Advisor
Nella primavera del 2003, lo sviluppo di MQL ha compiuto un altro importante passo avanti. A marzo, al terminale sono stati aggiunti nuovi indicatori integrati e funzioni per la gestione dei file: FileOpen, FileClose, FileDelete, FileSize, FileTell, FileSeek, FileWrite, FileReadNumber, FileReadString e altri.
Ma la svolta decisiva arrivò nell'aprile del 2003: La versione 3.10 di MetaTrader ha introdotto il supporto per indicatori e funzioni personalizzati in MQL.

Ciò ha ampliato il ruolo del linguaggio. Fino ad allora, MQL era principalmente associato agli Expert Advisor: l'utente descriveva una strategia di trading e il terminale la eseguiva a ogni tick. Gli indicatori personalizzati hanno introdotto un caso d'uso diverso: i trader potevano ora programmare non solo le decisioni di trading, ma anche i propri metodi di analisi del mercato.
Pertanto, MQL ha iniziato a coprire due aspetti distinti del lavoro di un trader: prendere decisioni di trading e costruire strumenti analitici. Col tempo, questa combinazione sarebbe diventata standard in MetaTrader 4: Expert Advisor, indicatori, script e librerie verrebbero trattati come diversi tipi di programmi all'interno di un unico ambiente.
Una fase di transizione: Dalla semplicità a un linguaggio a tutti gli effetti
Verso la metà del 2003, era ormai chiaro che la futura piattaforma principale non poteva essere semplicemente un'estensione della vecchia architettura esistente. Servivano un nuovo prodotto, un nuovo linguaggio e un nuovo ambiente.
Nel corso del processo di sviluppo, sono state adottate soluzioni transitorie che non hanno lasciato quasi traccia su internet. Ma la direzione dei cambiamenti era chiara. Gli sviluppatori hanno deciso di abbandonare il modello "un file sorgente = una funzione", l'esecuzione basata su stack e la sintassi eccessivamente didattica. Il linguaggio del futuro sarebbe più simile ai linguaggi di tipo C, supporterebbe strutture di programma più complesse e consentirebbe agli utenti di creare non solo semplici Expert Advisor, ma anche sofisticati sistemi di trading.
Ciò segnò anche un cambiamento di filosofia. Inizialmente, l'idea era più o meno questa: ogni trader doveva essere in grado di programmare la propria strategia. Al momento dello sviluppo di MQL4, quest'idea era diventata più precisa: qualsiasi utente esperto avrebbe dovuto essere in grado di programmare una strategia di trading di qualsiasi complessità senza uscire dal terminale.
Allo stesso tempo, la semplicità è rimasta una priorità. Le strategie semplici dovevano rimanere semplici. Ma il limite di complessità doveva essere innalzato drasticamente.
MetaTrader 4 e MQL4: Il terminale diventa un IDE
Lo sviluppo di MetaTrader 4 è iniziato nell'estate del 2003. Nelle discussioni dell'epoca, gli sviluppatori rivelarono gradualmente le sue future funzionalità: test più avanzati, accesso a serie temporali per diversi simboli e timeframe, funzioni di trading ampliate, script, indicatori personalizzati con un gran numero di buffer di indicatori e chiamate a funzioni esterne da DLL. Il 5 febbraio 2004, è stato pubblicato un esempio di codice sorgente di un programma MQL4 affinché gli sviluppatori potessero esaminarlo.
All'inizio del 2004, era ormai chiaro che non si sarebbe trattato di un aggiornamento di poco conto. Il sistema veniva essenzialmente riscritto da zero. Ci è voluto più tempo del previsto, ma è proprio per questo che MetaTrader 4 alla fine è diventato non solo un insieme di miglioramenti, ma una nuova piattaforma.
Il 18 novembre 2004, MetaQuotes ha annunciato l'imminente rilascio della versione beta di MetaTrader 4. L'annuncio è stato significativo non solo per le sue funzionalità di trading e analisi. Per la prima volta, un singolo prodotto ha riunito un modello chiaro per il trading algoritmico di massa: il terminale, il linguaggio di programmazione MetaQuotes Language 4, l'IDE MetaEditor 4, gli Expert Advisor, gli indicatori personalizzati e gli script.

Da quel momento in poi, MetaTrader non è più stato semplicemente un terminale di trading con funzionalità di automazione. MetaTrader 4 è diventata una piattaforma che ha fornito agli sviluppatori uno spazio di lavoro dedicato.
Sul sito web MetaQuotes, la documentazione MQL4 era straordinariamente compatta: tipi di dati, operazioni ed espressioni, istruzioni, funzioni, variabili, il preprocessore e, successivamente, la sintassi del linguaggio. Tuttavia, la documentazione di riferimento completa è stata integrata in MetaEditor. Si è trattato di una decisione progettuale fondamentale: gli sviluppatori non dovevano più passare a un browser ogni volta che avevano bisogno della documentazione. Il materiale di riferimento, il codice sorgente e gli strumenti di compilazione erano tutti disponibili in un unico luogo.

MQL4 era già un linguaggio di programmazione procedurale a tutti gli effetti. Ha introdotto funzioni definite dall'utente, una struttura di programma più familiare, script per l'esecuzione una tantum, librerie sotto forma di file EX4 e la possibilità di richiamare funzioni da DLL esterne.
MetaEditor è diventato molto più di un semplice editor di testo. Offriva funzionalità di navigazione guidata, evidenziazione della sintassi, compilazione, supporto per diversi tipi di programmi MQL e documentazione integrata. A questo punto, la formula che avrebbe reso MetaTrader 4 una piattaforma ampiamente utilizzata per il trading algoritmico era ormai pienamente definita:
TERMINALE + LINGUAGGIO + EDITOR + AIUTO + TEST + COMMUNITY
Il 1° luglio 2005, dopo un lungo processo di sviluppo, MetaTrader 4 è stata rilasciata come piattaforma di trading completa. Da quel momento in poi, la storia non riguardava più solo l'evoluzione di un linguaggio di programmazione, ma anche la nascita dell'ecosistema: un sito web dedicato agli sviluppatori, Code Base, articoli, campionati di robot di trading e un'enorme comunità di utenti MQL4.
Questo sarà l'argomento della prossima parte.
MQL4.COM: La linguaggio diventa una community
Dopo il rilascio di MetaTrader 4, è apparso chiaro che la sola piattaforma non era sufficiente. Se da un lato gli utenti potevano scrivere Expert Advisor, indicatori, script e librerie, dall'altro avevano bisogno anche di documentazione, esempi, discussioni, articoli e un luogo dove condividere il codice.
L’8 novembre 2005, un sito web dedicato agli sviluppatori MQL4, MQL4.COM, venne lanciato.
Questo è stato un passo importante: MQL4 non era più solo un linguaggio integrato nel terminale di trading. Stava diventando il centro di un ecosistema di sviluppatori a sé stante. Sul sito web furono pubblicati un forum, la documentazione, il Code Base e degli articoli. In seguito, i materiali iniziarono ad essere pubblicati non solo in russo e in inglese, ma anche in cinese.
Il Code Base si riempì rapidamente di programmi già pronti. A meno di un mese dal suo lancio, il Code Base conteneva già più di 50 Expert Advisor, circa 200 indicatori, 35 script e 17 librerie. Expert Advisor, indicatori, script e librerie hanno trasformato MQL4 da un linguaggio "per addetti ai lavori" in uno strumento pratico di uso comune. Gli utenti potevano non solo scrivere programmi da zero, ma anche studiare il codice di altri, modificare soluzioni esistenti, porre domande ai loro autori e gradualmente avvicinarsi allo sviluppo software.
È significativo che già nel 2006 una delle pubblicazioni della community presentasse un Expert Advisor che utilizzava l’intelligenza artificiale — una rete neurale a singolo strato. All'epoca, questo era tutt'altro che comune. All'epoca non c'era tutto questo clamore intorno all'intelligenza artificiale e all'apprendimento automatico. Eppure l'idea stessa era già presente all'interno della community: una strategia di trading poteva essere costruita non solo sulla base di regole e indicatori, ma anche su un modello addestrabile.
Questo episodio aiuta a spiegare perché la successiva evoluzione di MQL ha portato naturalmente a Python, ONNX, Assistente IA e OpenBLAS. L'interesse per l'apprendimento automatico non è nato dal nulla. Semplicemente, ci è voluto del tempo perché la piattaforma, il linguaggio e le capacità di calcolo raggiungessero il livello necessario per supportarlo.
Campionato di trading automatizzato: Gli expert advisor salgono sul palco
La successiva tappa fondamentale è stata il Campionato di Trading Automatizzato. Il primo concorso per sistemi di trading scritti in MQL4 ha avuto luogo alla fine del 2006. Era molto più di una semplice competizione per un premio in denaro. Il campionato è servito come dimostrazione pubblica del concetto fondamentale alla base di MetaTrader 4: Gli Expert Advisor potevano operare in modo autonomo, mentre le loro prestazioni essere monitorate in tempo reale.
Al campionato del 2006 hanno partecipato complessivamente 258 sviluppatori. Il montepremi era di 80.000 dollari e la competizione è durata 12 settimane. All'epoca, si trattava di una dichiarazione pubblica di grande impatto: il trading automatizzato non era più un argomento riservato a un ristretto gruppo di programmatori. Era diventato uno spettacolo che trader, broker e sviluppatori potevano seguire con interesse.
Ma nemmeno i premi erano la parte più importante. Il campionato è servito da test di stress per l'intera infrastruttura. Gli organizzatori hanno preparato hardware server per questo, lanciato numerosi terminali, assicurato condizioni operative identiche per gli Expert Advisor e dato agli spettatori l'opportunità di monitorare i risultati online.
Questa pratica ha dato origine a numerose idee che si sono poi rivelate utili all'interno dell'ecosistema MetaTrader: controlli automatici degli Expert Advisor, protezione del software, hosting VPS, terminali client leggeri, terminali web, segnali di trading e infine, il marketplace delle applicazioni.
Nel 2007 il numero dei partecipanti è cresciuto fino a 603 e nel 2008 ha raggiunto 705. Non si trattava più di un evento isolato, ma di un'indicazione della portata raggiunta dalla community. Le persone scrivevano robot di trading, discutevano di algoritmi, confrontavano approcci, studiavano interviste con altri partecipanti e cercavano di capire perché alcuni sistemi riuscivano a sopravvivere al trading reale mentre altri si bloccavano dopo le prime settimane.
Vale anche la pena notare che le reti neurali hanno continuato a comparire nei campionati. Il vincitore del 2007, Alexander Topchilo, ha utilizzato un approccio basato sulle reti neurali nel suo Expert Advisor, sviluppando e testando inizialmente il sistema in C++ e successivamente adattandolo a MQL4. Intervista ad Alexander Topchilo (Better)
Nel 2008, Leonid Velichkovsky ha presentato un Expert Advisor che utilizzava una rete neurale addestrata in NeuroShell. Intervista a Leonid Velichkovsky (LeoV)
Si tratta di un dettaglio importante per l'intero articolo. La storia di MQL non è solo la storia della sua sintassi. È la storia di trader che cercano di introdurre nel terminale concetti sempre più complessi: da semplici regole basate su indicatori a statistiche, ottimizzazione, reti neurali e apprendimento automatico.
Il campionato non si è svolto nel 2009. MetaQuotes stava ultimando lo sviluppo della sua futura piattaforma principale, MetaTrader 5, insieme al nuovo linguaggio MQL5.
MQL5: La nuova piattaforma inizia con il linguaggio
Le discussioni sul futuro di MQL5 sono iniziate ben prima del lancio pubblico di MetaTrader 5. Già nel 2007, gli utenti di MQL4.COM discutevano attivamente di ciò che si aspettavano dal nuovo linguaggio. Una ricerca per "MQL5" nell'ottobre 2007 ha restituito più di 15 pagine di collegamenti a post sul forum di MQL4.COM. Gli utenti chiedevano prestazioni più veloci, un design più strutturato, nuove funzionalità di test, una gestione dei dati più semplice e un modello di programmazione più moderno.
Internamente, la direzione dello sviluppo fu ancora più radicale. Il nuovo linguaggio è stato progettato per allontanarsi dalla rappresentazione intermedia caratteristica di MQL4 e generare invece codice nativo. Ciò implicava un livello di prestazioni diverso e un livello diverso di requisiti architetturali per il linguaggio stesso.
La prima menzione archiviata del dominio MQL5.COM risale a novembre 2007. Il fatto stesso che fosse emerso un dominio separato dimostrava che non si trattava solo di una nuova sintassi, ma di un futuro ecosistema.

Il 31 marzo 2008, il nuovo linguaggio MQL5 è stato annunciato ufficialmente in un'intervista in cui si discuteva delle caratteristiche del linguaggio in arrivo. L'intervista in sé non è giunta fino a noi negli archivi pubblici, ma la data è significativa: ancor prima del rilascio di MetaTrader 5, gli sviluppatori avevano iniziato a preparare la community a un nuovo modello di programmazione.
Entro l’estate 2009, il sito web MQL5.COM prometteva già esplicitamente un lancio imminente.

Il 12 ottobre 2009, ebbe inizio il beta test di MetaTrader 5. Un mese dopo, il 18 novembre 2009, la versione beta di MQL5.community — un nuovo sito web per gli sviluppatori MQL5 — fù lanciato.
MQL5.community: Non solo un forum, ma un'infrastruttura.
Fin dall'inizio, MQL5.community non è stato concepito come un forum ordinario. Fu concepito come parte integrante di un ecosistema più ampio: documentazione, forum, Code Base, articoli, materiali didattici e nuovi servizi che potevano essere aggiunti con l'evoluzione della piattaforma.
Gli sviluppatori si sono impegnati a preservare ciò che già funzionava su MQL4.COM: discussioni, Code Base, articoli e il familiare modello di condivisione delle conoscenze. Ma il nuovo sito web era stato concepito per essere più completo. MQL5 era più complesso, MetaTrader 5 era più ambiziosa e di conseguenza, la comunità necessitava di un'infrastruttura più solida.
Un gesto importante è stata la migrazione degli account da MQL4.COM. Gli utenti non hanno dovuto ricominciare da zero: potevano accedere al nuovo sito utilizzando i loro account esistenti. Questo ha fatto da ponte tra le due epoche e ha dimostrato che MQL5 non ha scartato l'esperienza accumulata con MQL4, ma l'ha sviluppata ulteriormente a un nuovo livello.
Questo ha creato un nuovo hub: il linguaggio, la documentazione, gli articoli, il codice, il forum e i servizi futuri sono stati tutti riuniti in un unico luogo. MQL5.community non era più un componente aggiuntivo del terminale, ma parte integrante della piattaforma stessa.
MetaTrader 5 e MQL5: Il linguaggio diventa uno strumento di ingegneria
Il 1 giugno 2010 è stata rilasciata la piattaforma di trading MetaTrader 5. A differenza della generazione precedente, è stata progettata non solo per il Forex, ma anche per il trading sui mercati azionari. Ciò ha richiesto modifiche non solo al terminale, ma anche al linguaggio.
MQL5 ha rappresentato un notevole passo avanti rispetto a MQL4. Si trattava già di un linguaggio di programmazione orientato agli oggetti, simile al C++. I programmi MQL5 venivano compilati in codice nativo x86 o x64, offrendo un nuovo livello di prestazioni. Allo stesso tempo, il concetto fondamentale di MQL è rimasto invariato: gli utenti dovrebbero essere in grado di scrivere sia programmi semplici che sistemi di trading sofisticati.
Anche il modello di trading è diventato più complesso. MetaTrader 5 ha introdotto entità separate per ordini, transazioni e posizioni. Le operazioni di trading sono state avvicinate alla realtà delle infrastrutture di borsa, ma per gli sviluppatori ciò ha significato dover gestire un maggior numero di dettagli. Per cui, la libreria standard è stata sviluppata insieme al linguaggio, includendo classi di trading per semplificare il lavoro con i casi d'uso comuni.
Al momento del lancio, MQL5 contava circa 400 funzioni integrate — all'incirca lo stesso numero di funzioni che MQL4 aveva all'epoca. Ma il numero di funzioni non era il punto più importante. Ciò che contava era la direzione dello sviluppo. MQL5 è stato concepito come un linguaggio per la creazione di sistemi su larga scala: con classi, gestione degli eventi, una libreria standard, test, ottimizzazione e servizi futuri sviluppati attorno alla piattaforma.
È stata creata una sezione separata della documentazione per gli utenti MQL4 spiegando come migrare a MQL5. Era necessario: il nuovo linguaggio era più potente, ma richiedeva un modo di pensare diverso. Se MQL4 aveva reso il trading algoritmico accessibile a un pubblico di massa, MQL5 si proponeva di renderlo più orientato all'ingegneria.
Campionati MQL5: La nuova piattaforma viene sottoposta a test pubblici.
Nel 2010 è tornato l'Automated Trading Championship, questa volta come competizione per Expert Advisor MQL5. Si trattava di un passo logico: la nuova piattaforma necessitava di una dimostrazione pubblica e gli sviluppatori dovevano vedere come si comportava MQL5 non solo negli esempi della documentazione, ma in una vera e propria competizione di tre mesi tra robot di trading.
Il campionato del 2010 ha registrato 314 partecipanti. Nel 2011, ce n’erano 395, e nel 2012, 451. Queste competizioni non solo rappresentavano la continuazione della tradizione dei campionati MQL4, ma anche una vetrina per i vantaggi della nuova piattaforma: prestazioni superiori, un nuovo Strategy Tester, un modello di trading più sofisticato e la possibilità di sviluppare Expert Advisor su larga scala.
I campionati, ancora una volta, hanno assolto a molteplici scopi. Per i trader, rappresentavano un intrattenimento e un'opportunità per vedere in azione il trading automatizzato. Per gli sviluppatori, rappresentavano un banco di prova pratico per testare le idee. Per MetaQuotes, hanno generato feedback sul linguaggio, sul terminale, sullo Strategy Tester, sull'infrastruttura e sul comportamento del programma in condizioni reali. E, naturalmente, hanno contribuito a diffondere il linguaggio MQL5.
Nuovo MQL4: l'influenza inversa di MQL5
Dopo il rilascio di MetaTrader 5, si poteva pensare che lo sviluppo di MQL4 sarebbe gradualmente passato in secondo piano. Ma accadde l'esatto contrario. L'enorme base di utenti di MetaTrader 4 e il codice accumulato nel corso degli anni richiedevano un aggiornamento accurato, non un blocco.
Nel Luglio 2013, sono stati annunciati importanti cambiamenti a MetaTrader 4 e MQL4. L'idea era insolita: invece di obbligare tutti a convertire il proprio codice da MQL4 a MQL5, MetaQuotes avrebbe integrato in MQL4 il maggior numero possibile di funzionalità della nuova tecnologia.
Ciò ha portato a un compilatore unificato per MQL4 e MQL5, a un MetaEditor unificato, al supporto per nuovi strumenti di sviluppo, a una maggiore protezione per i file EX4/EX5 e alla possibilità di utilizzare il Market per le applicazioni in MetaTrader 4.
Si è trattato di una decisione importante per l'intero ecosistema. MQL4 non è rimasto un "linguaggio di vecchia generazione". Ora includeva classi, strutture, nuovi tipi di dati, gestori di eventi, un modello di compilazione più rigoroso, supporto per le risorse, nuove funzionalità grafiche e lo stesso set di strumenti di sviluppo di MQL5.
Solo un mese dopo, è stata rilasciata una versione beta dell'IDE di MetaTrader 4, che include un nuovo compilatore ed editor MQL4. Alla fine del 2013, è iniziato il test pubblico per la versione aggiornata di MetaTrader 4 con il nuovo MQL4 e il Market per le applicazioni. Il 3 febbraio 2014 è stata rilasciata la build 600 del terminale client MetaTrader 4.
Questa release ha di fatto diviso la storia di MQL4 in due ere. Il vecchio MQL4 era un linguaggio semplice, simile al C, ben adatto agli Expert Advisor e agli indicatori. La nuova versione di MQL4 si avvicinò molto a MQL5: presentava la programmazione orientata agli oggetti, un MetaEditor unificato, un nuovo compilatore e la possibilità di creare applicazioni più complesse.
Allo stesso tempo, MetaTrader 4 ha mantenuto il suo più grande vantaggio: la sua vasta base di utenti, programmi e conoscenze preesistenti non è stata abbandonata. Al contrario, al vecchio ecosistema è stata data una nuova base tecnologica.
Pertanto, MQL4 e MQL5 non sembravano più due mondi completamente diversi. Un linguaggio è nato dalla diffusa pratica del trading automatizzato, mentre l'altro è emerso dallo sforzo di costruire una piattaforma ingegneristica più rigorosa e potente. Dopo la build 600, è apparso un livello comune tra di loro: MetaEditor, il compilatore, lo stile di sviluppo, la protezione del programma e i servizi di MQL5.community.
A questo punto, la storia di MQL si era da tempo evoluta ben oltre il semplice ruolo di "linguaggio per Expert Advisor". Attorno ad esso si era formato un intero ecosistema: terminali, un editor, documentazione, Code Base, articoli, campionati, il Market, segnali, VPS e un'enorme community. Ma la fase successiva dello sviluppo richiederebbe ancora di più: dati esterni, calcolo distribuito, apprendimento automatico, matrici, reti neurali e algebra lineare avanzata.
Questo sarà l'argomento della prossima parte.
L'evoluzione di MQL5: Il linguaggio si evolve
Dopo il lancio di MetaTrader 5, lo sviluppo di MQL5 è proseguito su diversi binari paralleli. Un aspetto su cui ci si è concentrati riguardava il linguaggio stesso: stava diventando sempre più simile al C++ e più adatto a progetti su larga scala. Il secondo riguarda gli ambienti di runtime: I programmi MQL5 non erano più limitati agli Expert Advisor e agli indicatori visualizzati sui grafici. Il terzo riguardava il calcolo: Strategy Tester, l'ottimizzazione cloud, OpenCL, le matrici, Python e ONNX hanno gradualmente ampliato i limiti di ciò che si poteva fare all'interno della piattaforma.
Considerati singolarmente, questi aggiornamenti potrebbero sembrare un lungo elenco di release. Presi insieme, tuttavia, rivelano una trasformazione più importante: MQL5 si stava evolvendo da linguaggio per robot di trading in un ambiente universale per lo sviluppo, il calcolo, l'analisi dei dati e l'integrazione con tecnologie esterne.
Il linguaggio si avvicina al C++
Inizialmente, MQL5 è stato sviluppato come successore più rigoroso e veloce di MQL4. Ma già nei primi anni divenne chiaro che la sintassi di base della programmazione orientata agli oggetti non era sufficiente. Gli sviluppatori avevano bisogno di strumenti per progetti più ampi: riutilizzo del codice, algoritmi generici, ereditarietà più sicura, namespace e supporto per tipi di dati complessi.
Le risorse sono state introdotte il 19 gennaio 2011. Terminale Client MetaTrader 5 build 384. Ciò ha reso possibile incorporare immagini, dati e altri file ausiliari direttamente in un programma. In seguito, furono introdotte le variabili di risorsa: Il codice OpenCL, i dati binari o il testo possono essere inclusi in un programma MQL5 senza trasformare il progetto in una raccolta di dipendenze esterne.
Le funzioni template sono state introdotte il 16 novembre 2012, con il Terminale di Trading MetaTrader 5 build 722.
I template di classe sono stati introdotti il 23 ottobre 2015, con MetaTrader 5 build 1200: cronologia dei tick e pagamento diretto per i servizi. Questi furono passi importanti verso la programmazione generica. Lo stesso codice potrebbe essere utilizzato per diversi tipi di dati senza dover riscrivere manualmente gli algoritmi.
Nel 2016, il linguaggio ha acquisito diverse funzionalità familiari agli sviluppatori C++:
Le classi astratte sono state introdotte il 1 aprile 2016, con MetaTrader 5 build 1295.
Il casting dinamico dei tipi con dynamic_cast è stato introdotto nel giugno 2016.
Le interfacce sono state introdotte il 15 agosto 2016.
I modificatori final e override sono stati aggiunti il 16 settembre 2016 - Nuova piattaforma MetaTrader 5 build 1430: Scheda Esposizione aggiornata.
Nessuno di questi cambiamenti era puramente estetico. Hanno reso possibile la creazione di gerarchie di classi più rigorose e sicure, la definizione esplicita delle intenzioni dello sviluppatore e l'individuazione di determinate classi di errori in fase di compilazione.
I namespaces sono stati introdotti il 5 ottobre 2019 con MetaTrader 5 build 2170: Scope in MQL5, un importante aggiornamento dello Strategy Tester e hosting integrato . Questo è particolarmente importante per i progetti di grandi dimensioni e le librerie di terze parti: i nomi di classi, funzioni e variabili non entrano più in conflitto tra loro, mentre il codice può essere organizzato in moduli in modo più pulito.
Il tipo di dati complex è stato aggiunto il 21 maggio 2021 con MetaTrader 5 build 2940: Posizionamento delle vetrine dei Servizi MQL5 nell'area di lavoro e design aggiornato. Non si trattava più di una funzionalità "per Expert Advisor", ma di un passo avanti verso il calcolo ingegneristico e scientifico. I numeri complessi vengono utilizzati nell'analisi spettrale, nell'algebra lineare, nell'elaborazione dei segnali e in numerosi metodi numerici.
I tipi matrix e vector sono stati aggiunti il 28 gennaio 2022 - MetaTrader 5 build 3180: Vettori e matrici in MQL5 e usabilità migliorata. Ciò ha rappresentato un ulteriore passo avanti verso il calcolo ingegneristico e scientifico, ponendo le basi per l'integrazione con ONNX e il futuro utilizzo della libreria OpenBLAS.
I tipi di dati complexf, vectorcf e matrixcf sono stati aggiunti il 27 settembre 2024. MetaTrader 5 build 4570: Miglioramenti alla versione Web e integrazione di OpenBLAS in MQL5 .
MQL5 stava gradualmente acquisendo le caratteristiche di un linguaggio adatto non solo a scrivere la logica di trading, ma anche a costruire grandi librerie, moduli computazionali, wrapper di modelli e codice infrastrutturale.
Lo Strategy Tester come ambiente di calcolo
Una linea di sviluppo separata è correlata allo Strategy Tester. Lo Strategy Tester è sempre stato fondamentale in MetaTrader: senza test storici, il trading automatizzato si riduce a una serie di congetture. Ma in MQL5, lo Strategy Tester ha iniziato ad andare oltre il semplice test di un Expert Advisor.
Nel 2012 sono stati introdotti i gestori di eventi OnTesterInit, OnTesterDeinit e OnTesterPass, insieme alle funzioni per lavorare con i data frame: FrameAdd, FrameFirst, FrameNext e FrameInputs. Ciò consentiva agli agenti di test di inviare al terminale non solo un singolo risultato finale, ma anche dati arbitrari.
È facile sottovalutare l'importanza di questo aggiornamento. In pratica, ha trasformato l'ottimizzazione in un processo computazionale più flessibile. Un Expert Advisor non solo può restituire il criterio di ottimizzazione, ma anche trasmettere una serie di risultati intermedi, statistiche, metriche personalizzate o dati per ulteriori analisi.
Insieme alla MQL5 Cloud Network, ciò ha aperto le porte al calcolo distribuito. Formalmente, tutto rimaneva all'interno dell'infrastruttura dello Strategy Tester, ma in pratica MQL5 aveva acquisito un meccanismo per l'elaborazione parallela di attività che non dovevano necessariamente limitarsi alle tradizionali analisi dei parametri di un robot di trading.
Questo è un altro esempio di una tendenza generale: gli strumenti originariamente creati per il trading algoritmico si stanno gradualmente rivelando utili per una gamma più ampia di scenari computazionali.
MQL5 va oltre il grafico
Il modello di programma MQL classico era legato a un grafico: un Expert Advisor opera su un simbolo, un indicatore viene visualizzato in una finestra e uno script esegue un'azione una tantum. MQL5 ha gradualmente ampliato questo modello.
Il supporto per OpenCL venne aggiunto il 3 febbraio 2012, con il Terminale di Trading MetaTrader 5 build 581. Ciò ha reso possibile l'utilizzo del calcolo parallelo sui dispositivi disponibili e l'accelerazione di attività particolarmente adatte all'elaborazione di grandi quantità di dati.
Le funzioni per lavorare con i simboli personalizzati sono state aggiunte il 20 dicembre 2017 - MetaTrader 5 build 1730: progetti in MetaEditor e strumenti sintetici. Gli sviluppatori hanno acquisito la capacità di creare i propri simboli, popolarli con dati storici, aggiornare i tick e costruire strumenti sintetici. Questo era importante per la ricerca: le idee potevano essere testate non solo su dati standard dei broker, ma anche su serie temporali personalizzate, strumenti aggregati e set di quotazioni specializzati.
Il supporto nativo per le librerie .NET sono state aggiunte il 26 ottobre 2018 - MetaTrader 5 build 1930: Finestre di grafici flottanti e librerie .NET in MQL5 . MetaEditor ha automatizzato parte del processo di importazione delle funzioni, offrendo agli sviluppatori un modo più semplice per utilizzare codice esterno senza dover scrivere manualmente wrapper complessi.
Il 21 febbraio 2019 è stato introdotto un nuovo tipo di programma MQL5, Servizi (programmi non associati ad alcun grafico), con MetaTrader 5 build 2005: Calendario economico, programmi MQL5 come servizi e un'API per il linguaggio R . Un servizio può essere eseguito in background, avviarsi insieme al terminale ed eseguire attività infrastrutturali. Questo cambia radicalmente il concetto di programma MQL: non deve più essere necessariamente un Expert Advisor, un indicatore o uno script.
Anche le funzioni di rete per stabilire connessioni TCP sono state aggiunte il 21 febbraio 2019, nell'aggiornamento della build 2005 di MetaTrader 5. Un programma MQL5 ha acquisito la capacità di scambiare dati con sistemi esterni tramite socket, a condizione che gli indirizzi pertinenti fossero esplicitamente autorizzati nelle impostazioni del terminale. Ciò ha ampliato la gamma di scenari di integrazione: fonti di dati personalizzate, servizi locali, analisi esterne e scambio di dati tra applicazioni.
Il supporto al database e il supporto per DirectX è stato aggiunto il 6 dicembre 2019, con MetaTrader 5 build 2265: Funzioni DirectX per la visualizzazione 3D in MQL5 e configurazione dei simboli nello Strategy Tester . Questi aggiornamenti possono sembrare scollegati, ma condividono un'idea comune: MQL5 non era più limitato alle chiamate di funzioni di trading e ai buffer degli indicatori. Ha acquisito strumenti per l'archiviazione dei dati, la visualizzazione, l'integrazione esterna e l'elaborazione in background.
Python: Un ponte verso l'analisi dei dati e l'apprendimento automatico.
Il 14 giugno 2019, è stata aggiunta l'integrazione con Python a MetaTrader 5: Integrazione con Python, supporto per il Market e i Segnali in Wine (Linux/macOS) e importanti ottimizzazioni dello Strategy Tester in MetaTrader 5 build 2085. Rappresentava uno dei ponti più importanti tra la piattaforma di trading e il più ampio mondo dell'analisi dei dati.
A quel punto, Python era già diventato lo strumento standard per l'apprendimento automatico, la statistica, l'elaborazione dei dati e la visualizzazione. Il supporto per Python ha reso possibile recuperare i dati da MetaTrader 5 e utilizzarli in flussi di lavoro di ricerca esterni: creazione di modelli, test di ipotesi, preparazione di set di dati, analisi dei risultati e successivo inserimento delle informazioni ricavate nella piattaforma di trading.
Ancora una volta, si può osservare la stessa logica di sviluppo. MetaTrader non si propone di sostituire completamente il mondo esterno. La piattaforma, invece, offre agli sviluppatori un ponte: i dati e l'infrastruttura di trading rimangono nel terminale, mentre i flussi di lavoro di ricerca e apprendimento automatico possono essere eseguiti dove esiste già un ricco ecosistema di librerie.
ONNX: I modelli di apprendimento automatico arrivano su MQL5
Il passo successivo ha avvicinato ulteriormente l'apprendimento automatico alla piattaforma. Il 10 marzo 2023, MetaTrader 5 ha aggiunto il supporto per ONNX, un formato aperto per lo scambio di modelli di apprendimento automatico - MetaTrader 5 build 3620: Miglioramenti al terminale web, supporto ONNX e moltiplicazione di matrici accelerata in MQL5 .
Il concetto ONNX si adatta perfettamente a una piattaforma come MetaTrader. È possibile addestrare il modello al di fuori del terminale — ad esempio in Python utilizzando librerie familiari — per poi esportarlo in ONNX e utilizzarlo all'interno di un programma MQL5. Questo separa due compiti: l'addestramento del modello e la sua applicazione nella logica di trading.
Questa è una semplificazione notevole per gli sviluppatori. Non è necessario riscrivere manualmente una rete neurale in MQL5 o costruire l'intera infrastruttura di addestramento all'interno del terminale. Per la preparazione del modello si possono utilizzare strumenti esterni, mentre MQL5 può concentrarsi sull'integrazione del modello in un Expert Advisor, un indicatore o un'applicazione di ricerca.
Pertanto, il consolidato interesse della comunità MQL per le reti neurali ha assunto una forma tecnologica più matura. Mentre gli Expert Advisor basati su reti neurali erano esperimenti isolati condotti da appassionati tra il 2006 e il 2008, ONNX ha fornito agli sviluppatori un metodo standard per integrare i modelli addestrati in MQL5.
Assistente IA: Da un prompt a un agente a tutti gli effetti
La prima versione dell’Assistente IA è apparsa in MetaEditor il 14 giugno 2023. Ha già abbreviato il percorso da una domanda al codice: uno sviluppatore poteva evidenziare un frammento di codice, chiedere una spiegazione, ricevere l'implementazione di una funzione o una correzione, e quindi integrare manualmente il risultato nel programma. Questo era utile, ma dal punto di vista meccanico rappresentava comunque un'evoluzione del formato tradizionale della chat: una domanda, una risposta testuale, copia e verifica.
Il 24 luglio 2026, in MetaTrader 5 build 6060, la piattaforma è passata ad un modello diverso. Il terminale e MetaEditor hanno ottenuto il supporto integrato per il Model Context Protocol (MCP) e l'intelligenza artificiale agentica. L'Assistente IA non si limita più a generare testo: è in grado di pianificare una sequenza di azioni e richiamare gli strumenti forniti dalla piattaforma — come leggere dati, trovare e modificare file, creare progetti, analizzare l'ambiente di trading e restituire risultati strutturati.
Gli sviluppatori hanno descritto esplicitamente la differenza: invece della modalità "domanda-risposta-copia", ormai obsoleta, la piattaforma ha introdotto un agente a tutti gli effetti, capace di svolgere compiti complessi. Ciò rappresenta un cambiamento di scala significativo. L'Assistente non è più solo un generatore di frammenti di codice MQL5; sta diventando parte integrante del flusso di lavoro di sviluppatori e trader.

MCP: Un ponte standard tra l'intelligenza artificiale e MetaTrader
Il Model Context Protocol (MCP) è uno standard aperto attraverso il quale un agente di intelligenza artificiale si connette ai dati e alle funzioni di un'applicazione. Per MetaTrader, questo significa che il terminale e MetaEditor non sono semplici finestre con una chat aperta al loro interno, ma veri e propri fornitori di strumenti specializzati. Anziché ricevere una descrizione astratta della piattaforma, il modello ottiene un'interfaccia programmatica controllata per operazioni specifiche.
In MetaEditor, un agente può recuperare informazioni sull'area di lavoro, cercare file e testo, leggere e modificare il codice sorgente, creare nuovi programmi, controllare la sintassi, compilare singoli file e creare progetti. Nel terminale, ha accesso ai dati di mercato, ai grafici aperti, ai parametri del conto, alle posizioni, agli ordini e alla cronologia di trading. I singoli server MCP possono aggiungere fonti esterne, come quotazioni pubbliche, notizie e altri dati per l'analisi.
Questa architettura funziona in entrambe le direzioni. L'assistente IA integrato utilizza gli strumenti MetaTrader e MetaEditor MCP, ma gli stessi server possono essere collegati a sistemi agentici esterni compatibili con il protocollo, tra cui OpenAI Codex, Claude Code e altre soluzioni. Gli utenti non sono quindi vincolati a una singola interfaccia o modello: la piattaforma fornisce gli strumenti e l'agente viene selezionato in base al compito da svolgere.
Il sistema supporta le chiavi API personali degli utenti per OpenAI, Anthropic, Gemini, DeepSeek, Ollama e altri provider compatibili. Per gli utenti che accedono con il proprio account MQL5.community, il piano gratuito MQL5 Lite viene attivato automaticamente: le impostazioni dell'Assistente IA vengono sincronizzate tra il terminale e MetaEditor.
L’Assistente IA nel terminale di trading
L'assistente integrato in MetaTrader 5 opera all'interno del terminale stesso. Può spiegare la situazione attuale di un particolare strumento, esaminare le quotazioni storiche, visualizzare gli strumenti del Market Watch, analizzare le posizioni aperte e la cronologia delle transazioni, identificare le operazioni rischiose e generare un report.

Grazie alla connessione con strumenti di rete, l'agente può combinare i dati interni del terminale con informazioni esterne. Uno degli scenari illustrati nell'annuncio mostrava l'assistente che recuperava le ultime notizie su uno strumento, esaminava il materiale passo dopo passo e lo confrontava con le quotazioni. Non si tratta più di una singola richiesta a una fonte di riferimento, bensì di un'analisi in più fasi in cui l'agente raccoglie autonomamente le parti necessarie del contesto.
Le operazioni di trading sono soggette a controlli separati. Nelle impostazioni, è possibile disattivarli completamente, consentirli o richiedere la conferma manuale. Le richieste di rete e le operazioni da riga di comando possono essere controllate separatamente. I suggerimenti dell'assistente hanno scopo puramente informativo: la decisione finale e la responsabilità delle operazioni di trading spettano all'utente.
Assistente IA in MetaEditor
In MetaEditor, l'agente può creare un nuovo programma MQL5 a partire da una descrizione in linguaggio naturale, analizzare un progetto esistente, individuare errori, suggerire correzioni, effettuare il refactoring del codice, migliorarne la leggibilità e spiegare un algoritmo complesso. La differenza principale rispetto alla prima versione è che il risultato non si limita necessariamente al testo della chat: l'agente può creare o modificare un file, eseguire la compilazione e verificare il risultato.

Per le basi di codice di grandi dimensioni, questo è particolarmente essenziale. L'assistente può cercare definizioni e utilizzi di identificatori in più file, leggere i moduli include correlati, tenere conto della struttura del progetto ed eseguire l'attività come una serie di operazioni. La cronologia delle richieste viene salvata nella scheda "Chat" del Navigatore, in modo che la collaborazione con l'agente diventi parte integrante del progetto anziché un suggerimento di programmazione isolato.
La build 6060 ha anche migliorato l'editor stesso: i blocchi di codice ora possono essere ripiegati e tutte le occorrenze di un identificatore selezionato vengono evidenziate. Queste caratteristiche non sono direttamente correlate all'intelligenza artificiale, ma rafforzano lo stesso scenario — l'analisi e la manutenzione di progetti su larga scala.
Dalla scrittura del codice al ciclo "Sviluppo - Test - Miglioramento"
L'area di sviluppo più importante riguarda lo Strategy Tester. Le risposte nel descrivono il target del flusso di lavoro automatizzato:
- sviluppare una strategia basata sulle esigenze del trader;
- Esecuzione di test e ottimizzazione dei parametri;
- analizzare il report, modificare il codice o le impostazioni e rieseguire il test;
- Interrompere l'attività in caso di fallimento o una volta ottenuto un risultato accettabile;
- presentare la versione finale e un report all'utente.
Questo scenario va distinto dalla promessa che "l'intelligenza artificiale troverà una strategia redditizia". Un agente può automatizzare il ciclo di ingegneria e testare più ipotesi, ma non può eliminare l'overfitting, gli errori nei dati di origine, l'instabilità del mercato o la necessità di una validazione indipendente. Il valore di MCP in questo caso risiede altrove: il tester, il compilatore, i file di progetto e i risultati dell'ottimizzazione possono essere collegati in un'unica sequenza controllata di azioni.
Durante la fase di beta testing, questo flusso di lavoro è stato gradualmente ampliato, con l'aggiunta e la configurazione continua di singoli strumenti di alto livello dello Strategy Tester. Pertanto, il ciclo completamente autonomo qui descritto dovrebbe essere considerato come una direzione per lo sviluppo del sistema agentico, piuttosto che come una garanzia che qualsiasi compito complesso possa già essere eseguito senza l'intervento dell'utente.
Sicurezza: Fornire all'agente gli strumenti, non un accesso illimitato al computer.
Maggiore è il numero di azioni che un agente può compiere, più importanti diventano i confini ben definiti. L'accesso si basa sul principio delle autorizzazioni esplicite. La directory di lavoro MQL5 è disponibile per le operazioni con i file sorgente, mentre le directory di test e di log possono essere limitate all'accesso in sola lettura. L'accesso al profilo utente è abilitato separatamente. Anche le attività di trading, l'accesso alla rete e la riga di comando sono controllati da impostazioni separate.
Le operazioni da riga di comando — come PowerShell, Python e altri processi esterni — sono particolarmente potenti e potenzialmente pericolose, pertanto sono chiaramente indicate nell'interfaccia e possono essere disabilitate separatamente. Questa modalità trasforma l'assistente in un agente generico, ma allo stesso tempo aumenta la potenziale superficie di attacco.
Nel corso delle discussioni con i trader sul forum, gli sviluppatori hanno anche sottolineato l'importanza dei backup e del controllo delle versioni. Per lo sviluppo agentico, Git non è solo una comodità, ma un meccanismo di sicurezza fondamentale: le modifiche devono essere visibili, confrontabili e reversibili. Qui, la nuova architettura IA si integra perfettamente con MQL5 Algo Forge.
Istruzioni e competenze richieste per il progetto
Non è sufficiente che un agente veda i file; deve anche comprendere le regole dello specifico codice sorgente. A tale scopo, nella directory MQL5\Profiles\Agents vengono utilizzati i file di istruzioni per MetaEditor e MetaTrader. Gli utenti possono sostituire le istruzioni predefinite con le proprie per definire lo stile di codifica, le convenzioni di denominazione, le procedure di convalida e altri requisiti permanenti.
Poiché questi file si trovano all'interno dell'area MQL5, possono essere archiviati insieme ai progetti in Algo Forge. Il repository può quindi contenere non solo il codice sorgente e il file README, ma anche istruzioni per l'IA: come compilare il progetto, quali file non devono essere modificati, quali test eseguire e in quale formato presentare il risultato.
Nel corso delle discussioni sul forum, gli sviluppatori hanno anche introdotto istruzioni locali per singoli progetti e competenze — procedure specializzate e riutilizzabili per l'agente. Questo dimostra la direzione in cui si sta evolvendo il sistema: da una chat generica a un partecipante digitale personalizzabile al progetto, che conosce gli strumenti della piattaforma e le regole di un team specifico.
Matrici e vettori: Preparazione di MQL5 per l'algebra lineare avanzata
Per l'apprendimento automatico, la statistica e i metodi numerici, classi, modelli e integrazioni esterne da soli non bastano. È inoltre essenziale disporre di un metodo pratico per lavorare con vettori, matrici e operazioni di base dell'algebra lineare.
Il 28 gennaio 2022, MQL5 ha introdotto i tipi matrix e vector. Si trattò di un cambiamento importante non solo dal punto di vista sintattico. Le matrici e i vettori non sono stati concepiti come semplici array, bensì come oggetti dotati di proprietà e metodi propri.
Un vettore ha acquisito una dimensione, mentre una matrice ha acquisito dimensioni di righe e colonne, e attorno a questi concetti ha iniziato a svilupparsi una serie di metodi distinti. Gli sviluppatori hanno acquisito un modo più naturale di scrivere codice computazionale: creare matrici, trasporle, moltiplicarle, calcolare decomposizioni, risolvere sistemi di equazioni e lavorare con norme, ranghi e altre caratteristiche numeriche.
A questo punto, MQL5 era già notevolmente diverso dal linguaggio che era nato con una semplice logica di Expert Advisor ad ogni tick. Il linguaggio ora includeva strutture per modelli matematici, mentre la piattaforma offriva collegamenti a Python, ONNX, OpenCL e all'ottimizzazione cloud.
Ma una vera base numerica richiede più di un semplice tipo di matrice conveniente. Era inoltre necessaria una libreria di algebra lineare collaudata su cui poter fare affidamento nell'implementazione di metodi complessi. Per questo motivo, il passo successivo fondamentale è stata l'integrazione di OpenBLAS.
Questo sarà l'argomento della prossima parte.
Perché OpenBLAS?
Con l'introduzione di matrici, vettori, numeri complessi, ONNX e scenari di apprendimento automatico in MQL5, la domanda successiva è diventata inevitabile: quale fondamento matematico dovrebbe venire dopo?
È possibile scrivere manualmente i singoli metodi. È possibile aggiungere alcune operazioni veloci per le matrici. È possibile limitarsi alla moltiplicazione, alla scomposizione e alla risoluzione di sistemi di equazioni. Ma questo approccio porta rapidamente a una serie di funzioni disparate, difficili da sviluppare, testare e manutenere.
Una piattaforma come MetaTrader 5 necessitava di qualcosa di più di "una semplice libreria veloce". È necessaria una base standard per l'algebra lineare: ampia, collaudata, portatile e adatta all'espansione graduale dei metodi MQL5.
Prima di scegliere OpenBLAS, sono state prese in considerazione anche altre opzioni: ALGLIB, LIBXSMM, Eigen e oneMKL. Ciascuno ha i suoi punti di forza, ma l'obiettivo di MQL5 era più ampio del semplice velocizzare una singola operazione o coprire una singola classe di algoritmi.
ALGLIB si distingue come un versatile toolkit numerico: ottimizzazione, approssimazione, algebra lineare, statistica e altri algoritmi. Tuttavia, per il ruolo di livello fondamentale all'interno di una piattaforma, non conta solo l'insieme delle funzionalità, ma anche il modello di licenza, le edizioni della libreria, i termini di distribuzione, la prevedibilità dell'integrazione e il supporto a lungo termine.
LIBXSMM eccelle nelle operazioni specializzate su matrici dense e sparse, in particolare nei problemi che coinvolgono matrici di piccole dimensioni e primitive di deep learning. Ciò lo rende uno strumento utile, ma con un ambito di applicazione più limitato. Funziona bene in situazioni in cui è necessario ottenere il massimo da una specifica classe di operazioni, ma non sostituisce una solida base orientata a LAPACK per una vasta gamma di metodi di algebra lineare.
Eigen è un'eccellente libreria di template C++ per matrici, vettori, risolutori numerici e algoritmi correlati. Ma Eigen è fondamentalmente un approccio C++: una libreria header-only, template, template di espressione e una stretta integrazione con il codice C++. Per l'integrazione interna della piattaforma MQL5, era necessario un approccio diverso: un livello computazionale stabile che potesse fungere da base per l'implementazione dei metodi matrix, matrixf, matrixc e matrixcf.
È stato preso in considerazione anche il progetto oneMKL. Si tratta di una potente libreria matematica con una lunga storia, forti capacità di ottimizzazione e un'ampia gamma di funzionalità. Ma la velocità non è l'unica cosa che conta in un prodotto basato su piattaforma. Tra i fattori chiave figurano la portabilità, il grado di dipendenza da un fornitore specifico, le condizioni di distribuzione, il controllo sull'integrazione e la prevedibilità del comportamento in diverse configurazioni utente.
OpenBLAS si è dimostrato il compromesso più adatto. Si tratta di una libreria BLAS open-source e ottimizzata che offre prestazioni elevate nelle operazioni di base dell'algebra lineare e funge da fondamento per metodi più complessi. Per MQL5, il fattore chiave è stato proprio la sua capacità di coprire tutte le attività di LAPACK: non solo una singola operazione veloce, ma una solida base per SVD, autovalori, risoluzione di sistemi di equazioni lineari, problemi dei minimi quadrati, fattorizzazioni e affinamento delle soluzioni.
In altre parole, la scelta di OpenBLAS è stata una decisione ingegneristica, non estetica. L'obiettivo era quello di gettare le basi per sviluppare sistematicamente metodi matematici per MQL5: dalle operazioni di base sulle matrici ad algoritmi numerici sempre più complessi.
OpenBLAS in MQL5: Dalle matrici a una solida base numerica
Il 27 settembre 2024, l'integrazione nativa di OpenBLAS è stata introdotta nella MetaTrader 5 build 4570. Allo stesso tempo, MQL5 ha acquisito nuovi tipi di dati per supportare i calcoli con numeri complessi utilizzando dati in virgola mobile:
- complexf — un numero complesso che utilizza dati float;
- vectorcf — un vettore contenente elementi di tipo complexf;
- matrixcf — una matrice contenente elementi di tipo complexf.
A prima vista, potrebbe sembrare un dettaglio tecnico. In realtà, si tratta di un livello importante per le future funzionalità matematiche di MQL5. MQL5 includeva già matrici, vettori, numeri complessi e metodi matriciali. Ma OpenBLAS richiedeva un insieme più completo di tipi: dati reali e complessi, double e float, e diverse varianti di matrici e vettori.
MQL5, pertanto, offre molto di più di un semplice "metodo SVD" o di un "metodo degli autovalori". Fornisce le basi su cui costruire famiglie di algoritmi per diversi tipi di dati e diversi problemi numerici.
I primi metodi OpenBLAS in MQL5 erano relativi alla decomposizione ai valori singolari e al calcolo degli autovalori. Questo è stato un punto di partenza naturale. La decomposizione ai valori singolari (SVD) e i problemi agli autovalori sono alla base di un vasto numero di algoritmi pratici: dall'analisi di stabilità e dalla riduzione della dimensionalità all'apprendimento automatico, alla statistica, all'elaborazione dei segnali e alla costruzione di modelli.
Sono state aggiunte diverse varianti algoritmiche per SVD: divide et impera, QR, QR con pivoting, bisezione, Jacobi di alto livello, Jacobi di basso livello e metodi per matrici bidiagonali. Questo è importante perché i metodi numerici raramente offrono un'unica soluzione "ottimale" per ogni situazione. Un metodo rapido potrebbe risultare meno preciso su dati mal condizionati, mentre un approccio più stabile potrebbe essere computazionalmente più oneroso. La piattaforma dovrebbe offrire agli sviluppatori la possibilità di scegliere.
I metodi basati sugli autovalori affrontano una diversa classe di problemi. Vengono utilizzati per analizzare matrici quadrate, matrici simmetriche ed hermitiane, stabilità dei sistemi, caratteristiche spettrali e numerose procedure computazionali impiegate in statistica, ottimizzazione e modellazione.
La sezione OpenBLAS della documentazione MQL5 ha continuato ad espandersi nel tempo. Questo è un punto importante: l'integrazione di OpenBLAS non è una release una tantum, ma una direzione di sviluppo continua. I metodi matriciali e vettoriali stanno acquisendo gradualmente sempre più funzionalità applicabili a diversi tipi di matrici: matrix, matrixf, matrixc e matrixcf.
Il passo logico successivo prevede metodi per affinare le soluzioni, stimare gli errori, migliorare la stabilità numerica e apportare ulteriori fattorizzazioni. È proprio così che si costruisce una solida base matematica: non saltando dal "nulla" al "tutto", ma affrontando gradualmente un numero sempre crescente di problemi standard di LAPACK.
Perché questo è importante per uno sviluppatore MQL
Per un trader comune, OpenBLAS potrebbe sembrare qualcosa di distante: una libreria per matematici, ingegneri e specialisti di calcolo scientifico. Ma all'interno dell'ecosistema MQL, il suo arrivo ha implicazioni molto concrete.
Gli sviluppatori possono creare modelli più complessi direttamente in MQL5. Anziché limitarsi a richiamare un indicatore, confrontare due valori e inviare un ordine, possono lavorare con i dati sotto forma di array, vettori e matrici. Possono calcolare decomposizioni, risolvere sistemi di equazioni, valutare la stabilità e utilizzare metodi che in precedenza dovevano essere implementati in Python, C++ o librerie di terze parti.
Ciò non rende obsoleti Python, ONNX o gli strumenti esterni. Al contrario, stanno iniziando a completarsi a vicenda in modo più efficace. Python è particolarmente adatto alla ricerca, all'addestramento di modelli e alla preparazione dei dati. ONNX è comodo per portare un modello addestrato nel terminale. OpenBLAS fornisce a MQL5 una solida base numerica per i casi in cui è necessario eseguire calcoli all'interno della piattaforma.
Di conseguenza, MetaTrader 5 sta gradualmente diventando un ambiente in cui gli utenti non solo possono fare trading e testare Expert Advisor, ma anche costruire un flusso di lavoro computazionale completo:
- recuperare i dati di mercato;
- preparare caratteristiche e matrici;
- utilizzare un modello ONNX;
- eseguire calcoli numerici utilizzando matrici/vettori;
- testare l'idea nello Strategy Tester;
- parallelizzare l'ottimizzazione;
- integrare il risultato in un Expert Advisor, un indicatore o un servizio.
Ecco perché OpenBLAS non dovrebbe essere considerato isolatamente, ma in combinazione con le fasi precedenti: MQL5, MetaEditor, Python, ONNX, matrici, vettori e assistente IA.
Assistente IA Agentico, MCP e OpenBLAS: Tre livelli di un singolo ambiente di ingegneria
A prima vista, l'assistente IA agentico, MCP e OpenBLAS sembrano appartenere a parti diverse della piattaforma. L'assistente IA gestisce l'intento dell'utente, MCP collega il modello agli strumenti e OpenBLAS esegue gli algoritmi numerici. Insieme, tuttavia, formano un flusso di lavoro computazionale coerente.
L'assistente IA è responsabile di formulare e scomporre il compito: comprendere la richiesta, creare un piano, selezionare le azioni e interpretare i risultati. MCP fornisce all'agente un accesso controllato al terminale, al MetaEditor, ai progetti, al mercato, alla cronologia di trading e ai dati esterni. OpenBLAS, operazioni su matrici/vettori, ONNX e altre tecnologie forniscono al programma MQL5 la potenza di calcolo necessaria per implementare il modello stesso.
In passato, gli sviluppatori dovevano passare manualmente dall'editor alla documentazione di aiuto, al forum, allo Strategy Tester, a un notebook Python e alle librerie esterne. Alcuni di questi cambi di contesto possono essere descritti come un'unica attività: esaminare il progetto, modificare il codice, compilare il programma, preparare i dati, eseguire l'analisi e produrre un report. L'agente non sostituisce il compilatore, lo Strategy Tester o la libreria matematica, ma li collega.
Ecco perché MCP non è meno importante del modello linguistico stesso. Senza strumenti specializzati, anche un modello potente rimane un semplice interlocutore. Grazie a MCP, si acquisisce la capacità di operare all'interno della piattaforma, rimanendo entro i limiti delle autorizzazioni impostate dall'utente.
Algo Forge: Il codice diventa un progetto
Un ambiente di sviluppo moderno necessita di un ulteriore livello, essenziale per qualsiasi progetto serio: il controllo di versione, la cronologia delle modifiche, la collaborazione e la pubblicazione del progetto come repository dinamico. All'interno dell'ecosistema MQL, MQL5 Algo Forge ha gradualmente assunto questo ruolo.
Il predecessore di Algo Forge era MQL5 Storage — un repository online per il codice sorgente MQL4/MQL5 integrato in MetaEditor. Risolveva già un problema importante: gli sviluppatori potevano archiviare il proprio codice in un repository sicuro, visualizzare la cronologia delle modifiche, ripristinare le versioni precedenti e lavorare a progetti di gruppo direttamente dall'editor.
Tuttavia, il repository precedente era basato su Subversion ed era diventato obsoleto. La sua logica funzionava bene per l'archiviazione e la sincronizzazione del codice sorgente, ma lo sviluppo moderno richiede di più: una cronologia locale, operazioni veloci, branch per la sperimentazione, unione delle modifiche, lavoro offline e collaborazione trasparente tra più sviluppatori su un singolo progetto.
Il 6 giugno 2025, MetaTrader 5 build 5100 ha introdotto un repository per il codice sorgente completamente riprogettato: MQL5 Storage è passato da Subversion a Git e, allo stesso tempo, è stato lanciato un nuovo portale per la gestione dei progetti online — MQL5 Algo Forge.
Questo rappresenta un punto di svolta importante. Mentre Code Base rispondeva alla domanda "Dove posso trovare un esempio già pronto?", Algo Forge risponde a una domanda diversa: "Come gestisco un progetto in continua evoluzione?" Un Expert Advisor o una libreria complessi non sono più costituiti da un singolo file MQ5. Potrebbero aver incluso file, configurazioni di test, set di parametri, modelli, documentazione, un file README, script di supporto, una cronologia degli esperimenti e diversi rami di sviluppo.
Git cambia il modo in cui lavori con questo tipo di codice. Uno sviluppatore può creare un ramo separato per una nuova idea, testarla nello Strategy Tester, confrontare le modifiche, ripristinare uno stato precedente, unire un esperimento riuscito alla versione principale e caricare il risultato in un repository cloud. La cronologia del progetto non è più conservata nella memoria dell'autore né in cartelle con nomi come "final_new_2". Diventa parte integrante dell'IDE stesso.
Algo Forge aggiunge a tutto questo una dimensione sociale. Gli sviluppatori possono esplorare i progetti pubblici, seguire gli autori, creare team, effettuare il fork dei progetti, clonare i repository, visualizzare file, commit e branch, preparare la documentazione e condividere i progetti online. Per l'ecosistema MQL, ciò significa un passaggio dalla condivisione di singoli file di codice sorgente a una vera e propria cultura di sviluppo collaborativo.
Ciò è particolarmente importante per articoli e materiali didattici. Il codice sorgente di un articolo non dovrebbe risiedere esclusivamente in un archivio o in un insieme di file allegati. Può essere configurato come un progetto in Algo Forge, con una struttura chiara, un file README.md, che conserva la cronologia delle modifiche e offre ai lettori non solo del testo, ma un punto di accesso funzionante. L'articolo spiega il concetto, mentre il repository lo dimostra in pratica.
MetaEditor sta quindi ampliando ancora una volta il suo ruolo. Inizialmente era un luogo dove scrivere e compilare codice. Poi sono arrivati la documentazione, i progetti, il debug, la profilazione, l'assistente IA e le integrazioni. Ora, un flusso di lavoro Git completo fa anch'esso parte del quadro: cronologia, branch, commit, sincronizzazione e collaborazione.
In quest'ottica, Algo Forge non è un "servizio collaterale" separato, bensì la continuazione della stessa linea di sviluppo. Un programma MQL si è evoluto da un semplice Expert Advisor basato su un singolo grafico a un progetto di ingegneria che può essere versionato, discusso, sviluppato da un team, pubblicato e mantenuto per anni.
Da Expert Advisor ad un ambiente di ingegneristico
Osservando l'intera storia, l'evoluzione di MQL appare straordinariamente coerente.
Prima ancora che esistesse un linguaggio di programmazione completo, sono arrivati gli Expert Advisor. Poi arrivò il primo MQL: una breve pagina di documentazione, alcune variabili e la possibilità di eseguire una strategia di trading direttamente nel terminale. MQL II è stato seguito con cicli, array, tipi di dati e funzioni matematiche. Gli indicatori personalizzati hanno ampliato il linguaggio oltre quello degli Expert Advisor.
MetaTrader 4 ha riunito tutto questo in un modello per il mercato di massa: il terminale, MQL4, MetaEditor, la documentazione, gli Expert Advisor, gli indicatori, gli script, le librerie e i test. MQL4.COM ha aggiunto la community, il Code Base e gli articoli. I campionati hanno dimostrato che il trading automatizzato può essere pubblico, competitivo e su larga scala.
MetaTrader 5 e MQL5 hanno innalzato il livello di complessità. La programmazione orientata agli oggetti, il codice nativo, la libreria standard, un nuovo modello di trading, uno Strategy Tester migliorato, l'ottimizzazione cloud e MQL5.community hanno trasformato il linguaggio in uno strumento di ingegneria più rigoroso.
Successivamente, MQL5 ha influenzato l'evoluzione di MQL4: un compilatore unificato, un MetaEditor unificato, un nuovo linguaggio, la protezione dei programmi e il Market per le applicazioni. Il consolidato prodotto destinato al mercato di massa ha ricevuto una nuova base tecnologica.
MQL5 ha quindi iniziato ad andare oltre il tradizionale Expert Advisor: OpenCL, simboli personalizzati, .NET, servizi, funzioni di rete, SQLite, DirectX, Python, ONNX, matrici e vettori. Tutto ciò ha gradualmente ampliato la nozione di cosa potesse essere un programma MQL.
Assistente IA agentica, Model Context Protocol (MCP) e OpenBLAS non sono aggiunte casuali a questa storia. Ne rappresentano la logica continuazione, poiché si basano sullo stesso principio già evidente nel 2001: dare agli utenti maggiore autonomia all'interno della piattaforma.
Ai tempi, autonomia significava la capacità di scrivere un Expert Advisor e inviare un'operazione di trading senza intervento umano. Oggi, il significato è molto più ampio: assegnare un compito a un agente in linguaggio naturale, garantirgli un accesso controllato agli strumenti tramite MCP, scrivere e compilare codice, utilizzare un modello di machine learning esterno, eseguire calcoli di algebra lineare numerica, testare il sistema su dati storici e lanciarlo nell'infrastruttura MetaTrader.
Non una storia di versioni, ma la storia di un'idea.
È facile trasformare la storia di MQL in un lungo elenco di date, numeri di build e nomi di funzioni. Ma questo non coglie il punto principale.
Questa non è una storia su come una sintassi ne abbia sostituita un'altra. Non si tratta nemmeno di una storia su come, gradualmente, siano state aggiunte sempre più voci al menu del terminale.
È la storia di come la piattaforma di trading abbia gradualmente integrato al suo interno sempre più lavoro di uno sviluppatore. Innanzitutto è arrivata l'esecuzione dell'Expert Advisor. Poi c'è il linguaggio. Poi l’editor. Quindi documentazione, test, Code Base, articoli, campionati, Market, ottimizzazione cloud, integrazioni esterne, apprendimento automatico, assistente IA, algebra lineare numerica e gestione del progetto tramite Algo Forge.
In questo senso, il moderno MetaEditor non è semplicemente il discendente di una vecchia finestra di modifica di Expert Advisor. È il punto di integrazione per l'intero ecosistema MQL: il linguaggio, la documentazione, i progetti, il debug, la profilazione, i modelli, i metodi matematici, l'assistenza agentica, gli strumenti MCP e l'infrastruttura Git per lo sviluppo collaborativo.
Ecco perché il percorso dai primi Expert Advisor all'assistente IA agentica, MCP e OpenBLAS non appare come una serie di eventi isolati, ma come un'unica linea di sviluppo continua. Fin dall'inizio, MetaQuotes non si è limitata a costruire un terminale per monitorare il mercato, ma ha creato un ambiente in cui un'idea di trading si trasforma in un programma e un programma diventa un processo ingegneristico gestibile.
Quest'idea continua a guidare l'evoluzione di MQL.
Tradotto dal russo da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/ru/articles/22768
Avvertimento: Tutti i diritti su questi materiali sono riservati a MetaQuotes Ltd. La copia o la ristampa di questi materiali in tutto o in parte sono proibite.
Arriva il Nuovo MetaTrader 5 e MQL5
Visualizzazione 3D senza librerie esterne: come MetaTrader 5 mostra i risultati dell'ottimizzazione tramite MQL5 + DX11
Utilizza i canali MQL5.community e le chat di gruppo
MetaTrader 5: Costruire un mercato su misura per la propria strategia — grafici Renko, Range ed Equal-Volume, simboli sintetici e stress test con simboli personalizzati.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Ma perché mai la versione del 2001 di Marketwatch mostra un fuso orario?!
Sì. È stato interessante ripensarci. La memoria umana è una cosa strana. Tutto ciò che è bello si dimentica in fretta, mentre ciò che è brutto rimane impresso a lungo. Ricordo bene il passaggio stressante alla versione 600 con denaro reale. E anche le aspettative non soddisfatte riguardo all’integrazione del linguaggio R all’epoca, in generale, mi hanno deluso. Ora, naturalmente, con il passare del tempo, sembra una cosa da poco rispetto allo sviluppo che c’è nella comunità, nel terminale, nel linguaggio.
Dalle prime reazioni e domande sull’IA implementata si ricava un’impressione strana. Le funzionalità proposte hanno superato di gran lunga le esigenze attuali.
In bocca al lupo