English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
preview
Introduzione a MQL5 Algo Forge

Introduzione a MQL5 Algo Forge

MetaTrader 5Esempi |
297 20
MetaQuotes
MetaQuotes

Il nuovo MQL5 Algo Forge è più di un semplice elenco dei tuoi progetti - è un vero e proprio social network per sviluppatori. È possibile monitorare facilmente le modifiche, mantenere la cronologia dei progetti, connettersi con professionisti affini e scoprire nuove idee. Qui è possibile seguire autori interessanti, formare team e collaborare a progetti di trading algoritmico.  

MQL5 Algo Forge è costruito su Git, il moderno sistema di controllo delle versioni. Fornisce a tutti gli sviluppatori un potente set di strumenti per tracciare la cronologia dei progetti, per la ramificazione, per la sperimentazione e per il lavoro in team. Ma come funziona il tutto? In questo articolo spiegheremo come iniziare a utilizzare MQL5 Algo Forge.


Che cos'è un Archivio (Repository) in MQL5 Algo Forge?

Lo sviluppo di un software è di solito un processo lungo, che richiede tempo e debug. Il codice non solo deve essere scritto e mantenuto, ma anche conservato in modo sicuro. I moderni algoritmi di trading vanno ben oltre il semplice incrocio delle medie mobili. Si basano su librerie matematiche, reti neurali e apprendimento automatico. Ciò significa che gli sviluppatori hanno bisogno di un modo pratico per salvare rapidamente le modifiche e accedere al codice aggiornato da qualsiasi luogo. 

MQL5 Storage è il sistema di controllo delle versioni integrato in MetaEditor. In precedenza utilizzava Subversion 1.7, un sistema di controllo delle versioni centralizzato in cui tutta la cronologia era archiviata sui server di MetaQuotes. Senza una connessione a Internet, non era possibile eseguire il commit delle modifiche, il rollback alle versioni precedenti o la visualizzazione della cronologia. Oggi è stato completamente sostituito da una soluzione più potente e flessibile - MQL5 Algo Forge.

Ora, MQL5 Algo Forge funziona in modo differente:


MQL5 Algo Forge (basato su Git) Archivio MQL5 (legacy)
Archivio della cronologia Locale e cloud Solo MetaQuotes cloud
Lavoro offline Completo (commit, rollback, diff) Limitato o non disponibile
Velocità di funzionamento Immediato, locale Dipende dalla rete/server

Algo Forge vi dà la libertà. È possibile lavorare offline su un treno, creare rami sperimentali, salvare i risultati intermedi e successivamente unirli al ramo principale.

Un repository del progetto in Algo Forge non è solo una cartella cloud. Si tratta di un repository Git strutturato che esiste sul disco locale e si sincronizza con il server cloud MQL5 Algo Forge. È composto da diversi strati:

Directory di lavoro in MetaEditor

I tuoi file .MQ5, .MQH, .SET e altri file modificati in MetaEditor. È qui che si scrive il codice dell'Expert Advisor, si collegano gli indicatori e si testano le strategie. Finché non si aggiungono esplicitamente le modifiche, Algo Forge non ne tiene traccia.                                                                   

Area di preparazione (Indice)

Prima di salvare le modifiche nella cronologia del progetto, è necessario prepararle. Con il comando 'Git Add' si selezionano i file da includere nel prossimo commit. Ciò consente di raggruppare le modifiche in modo logico - ad esempio salvando le modifiche alla logica di trading separatamente dagli aggiornamenti dell'interfaccia o della configurazione.


Repository locale


Una volta effettuate le modifiche con 'Git Commit', Algo Forge memorizza un'immagine dei file nel repository locale sul vostro computer. In qualsiasi momento è possibile rivedere le versioni precedenti, tornare a uno stato precedente o analizzare quali modifiche hanno influito sulle prestazioni dell'Expert Advisor.


Repository remoto in MQL5 Algo Forge


Una volta pronti, si possono inviare i commit al server MQL5 Algo Forge utilizzando "Git Push". In questo modo si crea un backup sicuro e si rendono disponibili le modifiche ai membri del team. Anche se lavorate da soli, questo è utile: il vostro codice è memorizzato in modo sicuro nel cloud e la cronologia del progetto rimane intatta.


Come collegarsi a MQL5 Algo Forge

Per iniziare a lavorare con MQL5 Algo Forge, tutto ciò che serve è un account MQL5. È sufficiente accedere con le proprie credenziali a https://forge.mql5.io/.  


Una volta effettuato l'accesso, è possibile esplorare tutte le sue funzioni. I progetti pubblici sono disponibili nella sezione Esplora, dove è possibile sfogliare i progetti, studiarne il codice, condividere il proprio lavoro e collaborare con altri.



Tuttavia, la maggior parte del lavoro di sviluppo si svolgerà nell'ambiente di MetaEditor. Per collegare MetaEditor a MQL5 Algo Forge, basta accedere con le credenziali del proprio account MQL5 nella scheda Community.



Cos'è Git e Come Funziona in MQL5 Algo Forge

Git è un sistema di controllo delle versioni che registra come apparivano i tuoi file in diversi momenti nel tempo. Aiuta a prevenire la perdita di modifiche importanti, facilita il rollback, supporta il branching per gli esperimenti e consente a più sviluppatori di collaborare allo stesso progetto.

In MetaEditor non si lavora direttamente con i comandi Git - tutto viene gestito attraverso un'interfaccia di facile utilizzo. Sotto sotto, tuttavia, Git esegue alcune operazioni essenziali. Analizziamoli nel dettaglio e vediamo cosa succede quando si utilizzano i comandi corrispondenti in MetaEditor.

Creiamo un nuovo progetto "Base_EA" nella cartella progetti condivisi.


Fate clic con il tasto destro del mouse sul file del progetto per visualizzare i comandi Git disponibili.


1. Git Add File/Folder - Modifiche in fase di Stadiazione

Quando si modificano i file, Git non li traccia automaticamente. Per comunicare al sistema che si desidera salvare le modifiche, si aggiungono i file all'indice. Questo può essere fatto tramite "Git Add File/Folder" o quando si selezionano i file per un commit.

Git prende un'istantanea dello stato attuale del file e lo prepara per il salvataggio - come se si trattasse di inserire i documenti in una cartella "Da firmare".

2. Git Commit - Salvataggio di un'Immagine del progetto

Facendo clic su 'Git Commit' in MetaEditor si acquisisce lo stato attuale del progetto e lo si salva nella cronologia delle versioni.

Ecco cosa succede:

  • Git confronta le modifiche con i file precedenti.
  • Memorizza solo le differenze (per risparmiare spazio).
  • Le modifiche vengono scritte in una cartella .git nascosta. 
  • Il commit riceve un identificatore SHA-1 univoco. 

Un commit è essenzialmente un punto di controllo, che mostra l'aspetto del progetto in quel momento. È sempre possibile tornare a un punto qualsiasi in un secondo momento e continuare da lì.

3. Git Push - Invio al Cloud di MQL5 Algo Forge

Quando si seleziona "Git Push", i commit locali vengono caricati sul server MQL5 Algo Forge. 

È come caricare una nuova versione del progetto nel cloud, ma con una cronologia completa delle modifiche.

Per comodità, MetaEditor esegue automaticamente il 'Git Push' subito dopo il 'Git Commit'. Questo assicura che la versione corrente sia sempre sincronizzata con il cloud. Se l'invio delle modifiche al server non riesce per qualsiasi motivo, è possibile eseguire 'Git Push' manualmente.

4. Git Pull - Recupero dell'Ultima Versione

Quando si collabora, qualcun altro può aggiornare il progetto prima di voi. Oppure potreste eseguire il commit delle modifiche da un computer e continuare a lavorare su un altro (o sullo stesso computer ma in un terminale differente). Per recuperare questi aggiornamenti, usare "Git Pull", il quale recupera tutte le modifiche da Forge.

Git scaricherà i nuovi commit dal cloud e li unirà alla versione locale.

5. Git Branch - Diramare e Sperimentare in Modo Sicuro

A volte si desidera testare le idee senza influenzare il progetto principale. Questo può essere fatto attraverso le branches. Ad esempio, si può creare un ramo per testare un indicatore diverso o aggiungere un filtro alla strategia. Ogni ramo ha un nome proprio e si può passare da un ramo all'altro liberamente.

Un ramo è semplicemente una linea di sviluppo parallela. Si può sperimentare quanto si vuole, poi si può scartare o unire al ramo principale.


6. Git Difference - Revisione delle Modifiche ai File

Questo comando mostra esattamente cosa è stato modificato in un file (riga per riga) prima del commit. Apre un pannello di confronto che evidenzia le righe aggiunte, eliminate o modificate.


7. Git Log - Visualizzazione della Cronologia del Progetto

Il comando 'Git Log' elenca tutti i commit con la loro data, l'autore e il messaggio di commit. In questo modo è possibile avere una chiara cronologia dello sviluppo del progetto e tenere traccia di chi ha modificato cosa e quando.


8. Git Revert - Annullare un Commit

Git Revert" crea un nuovo commit che annulla l'effetto di uno precedente senza cancellarlo dalla cronologia. Questo è il modo più sicuro per annullare le modifiche. Ma funziona in modo pulito solo con l'ultimo commit.

Questo comando può essere particolarmente utile se ci si accorge che un commit ha danneggiato l'Expert Advisor - è possibile annullarlo rapidamente senza influenzare altri commit. Tuttavia, se il commit annullato riguarda lo stesso codice dei commit successivi, può verificarsi un conflitto di unione, che deve essere risolto manualmente.


Pratiche di Sicurezza per Lavorare con i Progetti

Uno dei problemi più comuni nel controllo della versione sono i conflitti tra le versioni locali e quelle remote. Per evitarli, seguite delle semplici regole: Sempre prima pull. Quando si apre un progetto per continuare a lavorare, eseguire 'Git Pull' per assicurarsi di avere l'ultima versione.

Un'altra regola è sempre commit + push per ultimo. Quando si finisce di lavorare, eseguire 'Git Commit' (con il push automatico) per inviare gli aggiornamenti al cloud. Seguendo queste abitudini, il flusso di lavoro sarà fluido e privo di conflitti, garantendo allo stesso tempo che il codice sia sempre sicuro.


MQL5 Algo Forge - Tutto ciò che Serve per una Gestione Affidabile dei Progetti

Non è necessario digitare manualmente i comandi Git. Tutto è integrato in MetaEditor:

  • Aggiunta di file, commit e branching - tramite il menu contestuale del progetto.
  • Push and Pull - solo due pulsanti per la sincronizzazione con il cloud.
  • Branch e Revert - semplici comandi per il controllo dello sviluppo.
  • Cronologia delle modifiche - disponibile come registro chiaro e integrato.

Questi 8 comandi sono tutto ciò che serve per utilizzare MQL5 Algo Forge con sicurezza. Offrono uno sviluppo strutturato, una sperimentazione sicura, un supporto al lavoro di gruppo e una protezione completa contro la perdita di dati.



Inizia Oggi

MQL5 Algo Forge è più di un semplice archivio - è un sistema completo di gestione dei progetti per i trader algoritmici. Permette di tenere traccia di ogni modifica, di sperimentare senza rischi, di collaborare in team e di mantenere un codice stabile e affidabile.

Se una volta Git sembrava troppo complesso, MQL5 Algo Forge lo rende semplice. MetaEditor integra i comandi essenziali, in modo che possiate concentrarvi sulla scrittura del codice, sul salvataggio dei progressi, restando pronti a qualsiasi rollback.


Benvenuti a MQL5 Algo Forge!


Link utili:

Tradotto dal russo da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/ru/articles/18518

Ultimi commenti | Vai alla discussione (20)
Yuriy Bykov
Yuriy Bykov | 5 set 2025 a 12:33
Fernando Carreiro #:

Come prova, ho aggiunto una descrizione della pubblicazione Heikin Ashi come file README in formato Markdown e l'ho inserita nel repository.

Verificate se avete ricevuto la notifica di questa modifica e se potete aggiornare il fork.

Ho visto questo nell'interfaccia web del repository:

Cercherò di aggiornare il fork più tardi

Yuriy Bykov
Yuriy Bykov | 5 set 2025 a 12:49
Fernando Carreiro #:

Come prova, ho aggiunto una descrizione della pubblicazione Heikin Ashi come file README in formato Markdown e l'ho inserita nel repository.

Verificate se avete ricevuto la notifica di questa modifica e se potete aggiornare il fork.

Innanzitutto, il mio clone locale del fork non ha ancora l'ultimo commit:


Collegare il repository originale, secondo la documentazione di Git:

Vado all'interfaccia web del fork e vedo questo:


Faccio clic sul pulsante "Sync" e poi eseguo un Pull in MetaEditor:


Come si può vedere, tutti i commit erano al sicuro nel fork e poi dopo il Pull nel clone del fork sul mio computer locale.

In questa pagina di documentazione ci sono altri modi per sincronizzare usando i comandi della console, ma non li ho testati, perché tutti i commit sono già sincronizzati.

Più tardi farò altri esperimenti per vedere come si comporterà il comando Commit e Push di MetaEditor per il fork. Mi chiedo se cercherà di inviare le modifiche anche al repository originale.

Fernando Carreiro
Fernando Carreiro | 5 set 2025 a 13:00
@Yuriy Bykov #:

Innanzitutto, il mio clone locale del fork non ha ancora l'ultimo commit:

Collegare il repository originale, secondo la documentazione di Git:

Vado all'interfaccia web del fork e vedo questo:

Faccio clic sul pulsante "Sync" e poi eseguo un Pull in MetaEditor:

Come potete vedere, tutti i vostri commit erano al sicuro nel fork e poi dopo il Pull nel clone del fork sul mio computer locale.

In questa pagina della documentazione ci sono altri modi per sincronizzare usando i comandi della console, ma non li ho testati, perché tutti i commit sono già sincronizzati.

Tutto questo va bene, ma avete dimostrato il mio punto di vista: un "clone" e una "biforcazione" non sono la stessa cosa, e il metodo adottato da MetaQuotes richiede un intervento supplementare al di fuori di MetaEditor solo per poter sincronizzare il progetto.

Per non parlare del fatto che richiede spazio di archiviazione extra sui server di AlgoForge, per le "forchette", mentre un "clone" non richiede spazio di archiviazione extra né passaggi extra.

Considero le implementazioni di MetaQuotes troppo "difettose" per un uso efficace e continuerò a usare un client Git esterno, o a usare VSCode (che funziona benissimo con AlgoForge senza problemi).

Vladislav Boyko
Vladislav Boyko | 5 set 2025 a 13:22
Fernando Carreiro #:
Considero le implementazioni di MetaQuotes troppo "difettose" per un uso efficace e continuerò a utilizzare un client Git esterno, oppure VSCode (che funziona benissimo con AlgoForge senza problemi).

Siamo lieti di darti il benvenuto nella nostra comunità di utenti di client Git esterni!😁

Yuriy Bykov
Yuriy Bykov | 5 set 2025 a 14:25
Fernando Carreiro #:

Trovo che l'implementazione di MetaQuotes sia troppo "difettosa" per essere utilizzata in modo efficace e continuerò a usare un client Git esterno o VSCode (che funziona bene con AlgoForge senza problemi).

Sfortunatamente, questo è il caso per ora. Anch'io preferisco usare un client esterno per ora. Ma se si confronta ciò che è stato aggiunto a MetaEditor negli ultimi 5 mesi, i progressi sono notevoli. È solo che prima non c'erano strumenti per lavorare con il nuovo repository, mentre ora c'è almeno una versione ridotta.

Testare i diversi tipi di media mobile per vedere quanto sono efficaci Testare i diversi tipi di media mobile per vedere quanto sono efficaci
Conosciamo tutti l'importanza per molti trader dell'indicatore Media Mobile. Esistono altri tipi di Media Mobile che possono essere utili nel trading; in questo articolo le identificheremo e faremo un semplice confronto tra ognuno di loro e il tipo di media mobile semplice più popolare per vedere quale può mostrare i risultati migliori.
Tutto quello che c'è da apprendere sulla struttura del programma MQL5 Tutto quello che c'è da apprendere sulla struttura del programma MQL5
Qualsiasi programma in qualsiasi linguaggio di programmazione ha una struttura specifica. In questo articolo, imparerete le parti essenziali della struttura del programma MQL5, comprendendo le basi della programmazione di ogni parte della struttura del programma MQL5 che può essere molto utile quando creiamo il nostro sistema di trading MQL5 o strumento di trading che può essere eseguito nella MetaTrader 5.
Comprendere il piazzamento degli ordini in MQL5 Comprendere il piazzamento degli ordini in MQL5
Quando si crea un qualsiasi sistema di trading, c'è un compito che dobbiamo affrontare in modo efficace. Questo compito è l'inserimento degli ordini o la gestione automatica degli ordini da parte del sistema di trading creato, perché è fondamentale in qualsiasi sistema. In questo articolo troverete quindi la maggior parte degli argomenti che dovete comprendere per creare il vostro sistema di trading in termini di inserimento degli ordini in modo efficiente.
Comprendere le funzioni in MQL5 con le applicazioni Comprendere le funzioni in MQL5 con le applicazioni
Le funzioni sono elementi critici in qualsiasi linguaggio di programmazione, aiutano gli sviluppatori ad applicare il concetto di (DRY), che significa non ripetersi, e molti altri vantaggi. In questo articolo troverete molte altre informazioni sulle funzioni e su come creare le nostre funzioni in MQL5 con semplici applicazioni che possono essere utilizzate o richiamate in qualsiasi sistema per arricchire il vostro sistema di trading senza complicare le cose.