Tag: Expert Advisor MQL5

Tipi di dati e variabili – 4

Se stai iniziando a programmare con MQL5, capire i tipi di dati e le variabili è il primo passo per scrivere codici efficienti e precisi. Questa guida ti fornirà una panoramica completa dei principali tipi di dati e di come dichiarare e utilizzare le variabili in MQL5, così sarai pronto per sviluppare il tuo primo Expert Advisor (EA) o indicatore personalizzato.

Cos’è una Variabile in MQL5?

Le variabili in MQL5 sono contenitori per i dati. Ogni variabile può immagazzinare un tipo specifico di dato, che può variare da numeri interi a numeri decimali, caratteri, stringhe e altro.

Sintassi per Dichiarare una Variabile

Ecco la sintassi di base per dichiarare una variabile:

tipo_di_dato nome_variabile = valore_iniziale;

Esempio:

int numero = 10;

In questo esempio:

  • int è il tipo di dato della variabile numero, che immagazzina un numero intero.
  • 10 è il valore assegnato inizialmente.

Tipi di Dati in MQL5

In MQL5, è essenziale scegliere il tipo di dato appropriato per ogni variabile. Vediamo i tipi di dati principali:

1. Tipo int (Interi)

  • Descrizione: Rappresenta numeri interi, come 1, 100, -50.
  • Utilizzo: È ideale per contatori, calcoli discreti o qualsiasi dato che non richiede decimali.
  • Dichiarazione:mql5Copia codiceint contatore = 0;

2. Tipo double (Numeri Decimali)

  • Descrizione: Rappresenta numeri decimali, come 3.14159, -1.234, e 2.71828.
  • Utilizzo: Essenziale per valori di prezzo o indicatori che richiedono precisione.
  • Dichiarazione:mql5Copia codicedouble prezzo = 1.2345;

3. Tipo bool (Booleano)

  • Descrizione: Rappresenta valori logici veri o falsi (true o false).
  • Utilizzo: Utile per gestire condizioni come verifiche o flag.
  • Dichiarazione:mql5Copia codicebool posizioneAperta = true;

4. Tipo string (Stringhe di Testo)

  • Descrizione: Memorizza sequenze di caratteri, come nomi o descrizioni.
  • Utilizzo: Indicato per testi, come messaggi di log o informazioni visualizzate su grafici.
  • Dichiarazione:mql5Copia codicestring messaggio = "Posizione aperta con successo";

5. Tipo datetime (Data e Ora)

  • Descrizione: Gestisce date e orari, memorizzando i dati in formato UNIX.
  • Utilizzo: Ideale per monitorare timestamp di ordini o eventi.
  • Dichiarazione:mql5Copia codicedatetime tempoAttuale = TimeCurrent();

Dichiarazione e Inizializzazione delle Variabili in MQL5

In MQL5, puoi dichiarare e inizializzare variabili in vari modi, a seconda di dove e come intendi usarle.

Variabili Locali

Le variabili locali sono dichiarate all’interno di una funzione e sono accessibili solo in quel contesto.

void FunzioneDiEsempio() {
int contatore = 10;
double prezzo = 1.2345;
}

Variabili Globali

Le variabili globali sono dichiarate al di fuori delle funzioni, quindi sono accessibili in tutto il codice.

int contatoreGlobale = 5;
double prezzoGlobale = 1.2345;

Costanti

Una costante è un tipo speciale di variabile il cui valore non può essere modificato una volta dichiarato. Usare const permette di creare valori fissi:

const int GIORNI_SETTIMANA = 7;

Operatori con le Variabili

In MQL5, puoi eseguire operazioni aritmetiche con variabili numeriche e utilizzare operatori logici e di confronto per variabili booleane.

Esempi di Operatori Aritmetici:

  • Addizione: +
  • Sottrazione: -
  • Moltiplicazione: *
  • Divisione: /

Esempio di utilizzo:

int somma = 5 + 3;     // Risultato: 8
double risultato = 10.0 / 3.0; // Risultato: 3.3333

Esempi di Operatori Logici e di Confronto:

  • Uguale: ==
  • Diverso: !=
  • Maggiore: >
  • Minore o Uguale: <=

Consigli per l’Uso delle Variabili in MQL5

  1. Dai Nomi Significativi: Usa nomi che riflettano l’utilizzo della variabile. Ad esempio, prezzo_apertura è più chiaro di p.
  2. Sii Consistente con i Tipi di Dati: Assegna sempre i tipi di dati giusti per evitare errori e ottimizzare le prestazioni.
  3. Evita le Variabili Globali Non Necessarie: Limita l’uso di variabili globali per ridurre la complessità e i rischi di errori.

Esempio Pratico: Codice Completo con Variabili

Vediamo un esempio di codice che mostra come usare diversi tipi di variabili in MQL5 per calcolare la differenza percentuale tra due prezzi:

double CalcolaDifferenzaPercentuale(double prezzoIniziale, double prezzoFinale) {
double differenza = prezzoFinale - prezzoIniziale;
double percentuale = (differenza / prezzoIniziale) * 100;
return percentuale;
}

void OnStart() {
double prezzoIniziale = 1.2000;
double prezzoFinale = 1.2500;
double percentuale = CalcolaDifferenzaPercentuale(prezzoIniziale, prezzoFinale);
Print("La differenza percentuale è: ", percentuale, "%");
}

In questo esempio:

  • Abbiamo usato double per le variabili prezzoIniziale, prezzoFinale e percentuale, perché stiamo lavorando con numeri decimali.
  • La funzione CalcolaDifferenzaPercentuale ritorna il cambiamento in percentuale tra due prezzi.

Conclusioni

Capire i tipi di dati e le variabili in MQL5 è fondamentale per creare codici puliti, efficienti e privi di errori. La scelta del tipo di dato giusto migliora la leggibilità del codice e può anche influire sulle prestazioni degli Expert Advisors e degli indicatori. Ora che hai una base solida sui tipi di dati e le variabili, sei pronto per approfondire altre aree di MQL5, come la creazione di funzioni personalizzate e l’uso degli indicatori.

Differenze tra MQL4 e MQL5 – 2

MQL4 e MQL5 sono linguaggi di programmazione sviluppati da MetaQuotes per la creazione di script, indicatori e robot di trading su MetaTrader. Sebbene abbiano molte somiglianze, differiscono in aspetti chiave che possono influenzare le prestazioni e le funzionalità dei tuoi Expert Advisors (EA) e indicatori personalizzati. In questo articolo, esploreremo le principali differenze tra MQL4 e MQL5, aiutandoti a scegliere il linguaggio giusto per le tue esigenze di trading automatizzato.


1. Panoramica su MQL4 e MQL5

  • MQL4 è stato progettato per MetaTrader 4 (MT4), una delle piattaforme di trading più popolari per il forex. È adatto soprattutto per trader al dettaglio, con un’architettura semplice e orientata alle strategie di trading intraday.
  • MQL5 è la versione successiva ed è associato a MetaTrader 5 (MT5). Supporta mercati finanziari più ampi, inclusi forex, azioni, opzioni e futures, ed è pensato per trader e istituzioni che necessitano di strumenti più avanzati.

Differenza principale: MQL5 è stato progettato per supportare un trading multi-asset e una maggiore velocità, mentre MQL4 è più adatto al forex e a un ambiente di trading meno complesso.


2. Architettura del Linguaggio

Una delle differenze fondamentali tra MQL4 e MQL5 è l’architettura stessa del linguaggio.

  • MQL4 è orientato a un’architettura basata su funzioni principali (come start(), init(), e deinit()), che determinano il flusso di esecuzione.
  • MQL5, invece, utilizza una struttura orientata agli eventi, con funzioni come OnTick(), OnStart(), OnTimer(), OnTrade(), ecc. Ciò significa che MQL5 è più flessibile e permette di programmare in modo più dettagliato, reagendo a vari eventi in tempo reale.

Vantaggio di MQL5: la struttura orientata agli eventi consente un controllo più fine delle operazioni di trading e delle condizioni di mercato, migliorando l’accuratezza e l’efficienza degli script.


3. Funzionalità di Trading

Le funzionalità di trading tra MQL4 e MQL5 si differenziano notevolmente. MQL5 è stato sviluppato per operare in un contesto multi-asset e multi-strategy, mentre MQL4 è più limitato.

  • Trading con MQL4: Il trading è limitato al modello “one-thread, one-symbol” (un simbolo per EA). MQL4 non supporta il trading multi-simbolo o multi-thread, il che può ridurre l’efficacia del trading in ambienti complessi.
  • Trading con MQL5: MQL5 permette il trading multi-thread e multi-simbolo, ideale per operare su più mercati contemporaneamente. MQL5 include anche funzioni di trading native come OrderSend() per una gestione più veloce e precisa delle operazioni.

Vantaggio di MQL5: Grazie al trading multi-thread, MQL5 offre una gestione delle operazioni più rapida e flessibile, migliorando le performance in ambienti di trading complessi.


4. Test e Ottimizzazione delle Strategie

L’ambiente di testing e ottimizzazione differisce significativamente tra le due versioni, con MQL5 che offre strumenti più avanzati.

  • Tester di Strategia in MQL4: Permette solo test su singoli thread e un backtesting relativamente semplice, ideale per strategie su singoli simboli.
  • Tester di Strategia in MQL5: Supporta il backtesting multi-thread e multi-simbolo, oltre all’ottimizzazione su reti distribuite (attraverso la rete cloud MQL5 Cloud Network). MQL5 consente quindi test rapidi e simulazioni su dataset storici dettagliati.

Vantaggio di MQL5: L’ottimizzazione delle strategie è molto più avanzata, consentendo backtesting ad alta velocità e simulazioni più accurate per strategie multi-asset.


5. Funzioni Predefinite e Librerie

MQL5 include una gamma più ampia di funzioni predefinite e librerie rispetto a MQL4. Questo rende MQL5 più potente per chi vuole sviluppare applicazioni di trading avanzate.

  • Funzioni in MQL4: Fornisce funzioni basilari per il trading, ma è più limitato in termini di analisi matematica e gestione delle operazioni.
  • Funzioni in MQL5: Include nuove funzioni per l’analisi tecnica, matematica e statistica, supportando una programmazione più avanzata. MQL5 offre funzioni per calcoli complessi, gestione di oggetti grafici, e la creazione di interfacce utente personalizzate.

Vantaggio di MQL5: Maggiore possibilità di personalizzare e arricchire le funzioni degli EA e degli indicatori.


6. Performance e Velocità di Esecuzione

Grazie al supporto per il multi-threading, MQL5 generalmente offre prestazioni migliori rispetto a MQL4, specialmente quando si opera su più mercati o si eseguono strategie di trading ad alta frequenza.

  • MQL4: Single-threaded, adatto per strategie meno complesse.
  • MQL5: Multi-threaded, sfrutta meglio le capacità hardware per eseguire operazioni parallele.

Vantaggio di MQL5: Maggiore velocità e reattività, specialmente su dispositivi moderni.


7. Compatibilità e Flessibilità

Uno degli svantaggi di MQL5 è che non è retrocompatibile con MQL4, quindi il codice MQL4 non funzionerà direttamente su MQL5. Per chi ha sviluppato EA o indicatori in MQL4, potrebbe essere necessario riscrivere o adattare il codice per renderlo compatibile con MQL5.


Tabella di Riepilogo

CaratteristicaMQL4MQL5
ArchitetturaBasata su funzioni principaliBasata su eventi
Trading Multi-SimboloNon supportatoSupportato
Ottimizzazione delle StrategieSingle-threadMulti-thread, supporta rete distribuita
Funzioni PredefiniteFunzioni di baseLibreria avanzata per analisi tecnica e matematica
PerformanceSingle-threadedMulti-threaded
RetrocompatibilitàNon applicabileNon retrocompatibile con MQL4

Conclusione: Quale Linguaggio Scegliere?

  • Scegli MQL4 se hai bisogno di una piattaforma semplice per operare principalmente sul forex e se non necessiti di funzionalità avanzate come il trading multi-simbolo o il multi-threading.
  • Scegli MQL5 se hai bisogno di una piattaforma più versatile e veloce, in grado di operare su più mercati e di supportare strategie avanzate. MQL5 è particolarmente utile se desideri fare trading su più asset e sfruttare al massimo l’ottimizzazione delle strategie.

MQL5 rappresenta un passo avanti in termini di potenza e flessibilità, rendendolo una scelta preferibile per trader avanzati o istituzionali.