English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
MQL5 Wizard: Nuova Versione

MQL5 Wizard: Nuova Versione

MetaTrader 5Trading | 9 dicembre 2021, 14:09
108 0
MetaQuotes
MetaQuotes

Il terminale MetaTrader 5 continua a migliorare e acquisire nuove funzionalità. La nuova build 439 di MetaTrader 5 contiene MQL5 Wizard,che consente di creare Expert Advisor basati su regole di trading più flessibili. In questo articolo, descriviamo le nuove possibilità di MQL5 Wizard e spieghiamo i cambiamenti nell'architettura degli Expert Advisor generati utilizzando questa applicazione.


Background

Originariamente, MQL5 Wizard è stato progettato come uno strumento utile per aiutare i trader a creare facilmente programmi in MQL5. Già nella prima versione di MQL5 Wizard, è possibile creare rapidamente un Expert Advisor pronto per l'uso come un insieme di semplici moduli, ottenendo il suo codice sorgente in MQL5. La cosa importante è che non devi conoscere il linguaggio MQL5 - tutto ciò di cui hai bisogno è leggere l'articolo Crea il tuo Expert Advisor in MQL5 Wizard.

Un Expert Advisor generato dal Wizard contiene tre moduli:

Ogni modulo EA si basa su una determinata classe e offre molte opportunità per modificare il comportamento del tuo Expert Advisor.

La Libreria Standard include una serie di classi funzionalmente complete e pronte all'uso per implementare vari meccanismi di gestione del denaro, mantenimento della posizione aperta e generazione di segnali di trading.

Questo approccio consente di creare robot di trading basati su moduli collaudati e ben funzionanti. Devi solo passare attraverso alcuni passaggi e specificare i parametri necessari. Tuttavia, l'esperienza dimostra che anche i buoni esempi, che spiegano i principi della scrittura di classi personalizzate, non sono sempre in grado di aiutare i programmatori MQL5 alle prime armi. 

Un altro svantaggio della versione precedente di MQL5 Wizard è che per implementare un nuovo algoritmo di trading leggermente modificato, è necessario scrivere una nuova classe.

Con questa esperienza e i commenti ricevuti dagli utenti, MetaQuotes ha deciso di creare una versione avanzata di MQL5 Wizard con ancora più funzioni.


Un Nuovo Concetto di Generare Segnali di Trading

Il principale ostacolo nella versione precedente di MQL5 Wizard era associato ai problemi che potevano verificarsi durante la creazione dei propri segnali di trading. Pertanto, durante lo sviluppo della nuova versione del Wizard, l'accento è stato posto sulla semplificazione della creazione di segnali di trading combinati basati su principi semplici.

A tal fine, sono state apportate le seguenti modifiche alla classe base del generatore di segnali di trading (di seguito denominato Segnale):

  • Qualsiasi Segnale (derivato dalla classe CExpertSignal) si basa su previsioni di "advisor" che danno la loro opinione sul possibile andamento dei prezzi. Questi advisor, a loro volta, derivano anche dalla classe CExpertSignal e quindi possono avere i propri advisor. Il numero di advisor per ogni Segnale può essere fino a 64.
  • Sono stati aggiunti nuovi metodi alla classe CExpertSignal che implementano il "voto" sulla direzione dell’andamento dei prezzi. Inoltre, contiene un nuovo meccanismo per partecipare a tale "voto".
  • Per aumentare la flessibilità di prendere una decisione, ogni Segnale coinvolto nel processo decisionale (non dimentichiamo che gli "advisor" sono anche segnali), ora può ricevere informazioni dai propri (diversi dagli attuali) strumenti di mercato e/o dal proprio timeframe.

Pertanto, la decisione di entrare nel mercato in una direzione o nell'altra, può ora essere presa "collettivamente", cioè tenendo conto dell’"opinione ponderata" di ogni advisor.

Il Segnale "vota" sulla direzione dell’andamento dei prezzi sulla base di algoritmi incorporati di rilevamento dei modelli di mercato (specifici per questo Segnale). Ad esempio, un segnale basato sullo stocastico è in grado di identificare un'inversione, una divergenza con il prezzo, ecc.

La Libreria Standard include già venti Segnali pronti all'uso basati su vari indicatori.


Un Nuovo Meccanismo per Prendere Decisioni di Trading

Il meccanismo per prendere decisioni di trading da parte del Segnale può essere presentato sotto forma delle seguenti disposizioni chiave:

  • Ogni Segnale ha il proprio set di modelli di mercato (una combinazione di valori di prezzo e indicatori).
  • Ogni modello di mercato ha un valore di peso da 1 a 100. Più alto è il valore, più forte è il modello.
  • Ogni modello genera una previsione del movimento dei prezzi in una certa direzione.
  • Confrontando le previsioni ricevute dai modelli applicati, viene scelto il più forte e viene fornita una previsione nell'intervallo da -100 a +100, in cui il segno determina la direzione del movimento previsto (negativo - il prezzo scenderà, positivo - il prezzo aumenterà). Un valore assoluto corrisponde alla forza del modello migliore trovato. Questo risultato viene inviato alla votazione generale.
  • La previsione di ogni consulente all'interno del modulo va al voto con il fattore di peso da 0 a 1,0 che è specificato nelle sue impostazioni ("Weight").
  • L'esito del voto è un numero da -100 a +100, dove il segno determina la direzione del movimento previsto e il valore assoluto caratterizza la forza del segnale. Viene calcolato come la media aritmetica delle previsioni ponderate di tutti gli advisor del modulo. Questo risultato è una previsione del Segnale e il valore assoluto è un'indicazione di quanto sia forte il Segnale.

Le impostazioni di ogni Expert Advisor generato contengono due parametri - la soglia per prendere una decisione di aprire o chiudere una posizione (ThresholdOpen e ThresholdClose) che possono avere un valore da 0 a 100. Se la forza di un segnale supera il valore soglia, viene presa la decisione di condurre un'operazione di trading.

L'EA creato utilizzando MQL5 Wizardè costituito da tre parti la più importante delle quali è la testa che contiene il modulo per la generazione di segnali di trading. Quindi, i processi nel modulo di segnali possono essere rappresentati come segue:



La figura mostra che il modulo Signal può contenere due blocchi: un blocco di modelli di mercato e un blocco di advisor. Il blocco di modelli produce previsioni da ciascun modello, dopo di che viene scelto il più forte fra loro. Le previsioni degli advisor (altri Segnali) vengono moltiplicate per il peso corrispondente e i valori risultanti vengono sommati durante le votazioni per produrre la previsione media aritmetica. In questo caso, il modulo Signal ha prodotto -36,6 = (-100+60-54)/3 per la situazione attuale. Ciò significa la previsione di Vendita con la forza assoluta di 36,6.

Considera il meccanismo decisionale su due semplici esempi.

Supponiamo che esista un Expert Advisor con ThresholdOpen=20 e ThresholdClose=90. I moduli di segnale basati su MA con un peso di 0,4 e Stocastico con un peso di 0,8 sono coinvolti nel prendere una decisione di trading. Considera due opzioni di segnali di trading ottenuti:

  • Opzione 1.

    Il prezzo ha attraversato verso l'alto un indicatore MA in aumento. Ciò corrisponde a uno dei modelli di mercato che implicano la crescita dei prezzi che è integrato nel modulo MA. Il suo significato è 100. Allo stesso tempo, l'oscillatore Stocastico si è abbassato e ha formato una divergenza con il prezzo. Questo è un modello che implica la caduta dei prezzi, che viene implementato nel modulo Stocastico. Il significatodi questo modello è 80.

    Calcola il risultato della votazione finale. La previsione ponderata, ottenuta dal modulo MA, è calcolata come 0,4 * 100 = 40. La previsione ponderata del modulo Stocastico è calcolata come 0,8 * (-80) = -64. La previsione finale è calcolata come media aritmetica delle due previsioni ponderate: (40 - 64)/2 = -12. Questo è un segnale per vendere con la potenza condizionale di 12. Il valore soglia di 20 non è stato raggiunto. Di conseguenza, l'operazione di trading non sarà eseguita.

  • Opzione 2.

    Il prezzo ha attraversato verso il basso un indicatore MA crescente. Ciò corrisponde a uno dei modelli di mercato che implicano la crescita dei prezzi, che èintegrato nel modulo MA. Il suo significato è 10. Allo stesso tempo, l'oscillatore Stocastico si è abbassato e ha formato una divergenza con il prezzo. Questo è un modello che implica la caduta dei prezzi, che viene implementato nel modulo Stocastico. Il significato di questo modello è 80.

    Calcola il risultato della votazione finale. La previsione ponderata, ottenuta dal modulo MA, è calcolata come 0,4 * 10 = 4. La previsione ponderata delmodulo Stocastico viene calcolata come 0,8 * (-80) = -64. La previsione finale è calcolata come media aritmetica delle due previsioni ponderate: (4 - 64)/2 = -30. Questo è un segnale per vendere con la potenza condizionale di 30. Il valore soglia di 20 è stato raggiunto. Di conseguenza, il risultato è un segnale per aprire una posizione corta.



Figura 1. Un esempio di modelli di mercato nel grafico

La figura mostra i modelli di mercato descritti negli esempi:

a) La divergenza del prezzo e dell'oscillatore Stocastico viene utilizzata nelle opzioni 1 e 2.
b) Il prezzo ha attraversato l'indicatore MA
dal basso verso l'alto - viene utilizzato nell'opzione 1.
c) Il prezzo ha attraversato MAdall'alto verso il basso - viene utilizzato nell'opzione 2.


Combinazione di Segnali nell'EA

Per creare il nostro Expert Advisor, è necessario prima di tutto decidere su quale strumento e in quale intervallo faremo trading. In secondo luogo, dovremmo selezionare Segnali sulla base di indicatori che utilizzeremo per il trading.

Avremo le seguenti condizioni per il nostro esempio:

  1. Il simbolo scambiato è EURUSD. Il nostro intervallo è M10.
  2. I Segnali utilizzati:
    • EMA('EURUSD',M10,31) - segnali basati su una media mobile esponenziale;
    • Stocastic('EURUSD',M10,8,3,3) - segnali basati sull'oscillatore stocastico;
    • EMA('EURUSD',H1,24) - segnali basati su una media mobile esponenziale da un diverso intervallo;
    • Stocastic('EURJPY',H4,8,3,3) - segnali basati sull'oscillatore stocastico da un simbolo e da un intervallo di tempo diversi;
    • IntradayTimeFilter - un filtro per ora del giorno e il numero del giorno della settimana.


Creazione di un Robot di Trading nel Nuovo MQL5 Wizard

Il codice sorgente dell’Expert Advisor viene generato utilizzando MQL5 Wizard nel MetaEditor.

Le classi di base delle strategie di trading si trovano in terminal_data_folder\MQL5\Include\Expert\. Gli algoritmi pronti all'uso delle classi di segnali di trading, le classi di posizioni di trailing aperte e le classi di gestione del denaro e del rischio si trovano nelle sottocartelle Signal, Trailing e Money. MQL5 Wizard analizza i file in queste cartelle e li utilizza per generare il codice dell’Expert Advisor.

Classi di Base per MQL5 Wizard

Figura 2. Classi di Base per MQL5 Wizard

Per avviare MQL5 Wizard è necessario fare click su "Nuovo" sulla barra degli strumenti o selezionare "Nuovo" dal menu "File" (o premere Ctrl+N):

Figura 2. Avvio di MQL5 Wizard

Figura 3. Avvio di MQL5 Wizard

Quindi, seleziona il tipo di programma che vuoi creare. Nel nostro caso, seleziona l'opzione "Expert Advisor (genera)":

Figura 3. Selezionare il tipo di programma

Figura 4. Selezionare il tipo di programma


Fase 1. Proprietà generali dell’Expert Advisor

Successivamente, viene visualizzata la finestra di dialogo in cui è possibile configurare le proprietà generali dell’Expert Advisor:

Figura 4. Proprietà generali di un Expert Advisor

Figura 5. Proprietà generali di un Expert Advisor

Specificate il nome del vostro Expert Advisor, il nome dell'autore e il link al tuo sito web nei campi "Nome", "Autore" e "Link" (rispettivamente).

L’Expert Advisor ha anche i seguenti parametri di input:

  • Simbolo (il tipo di stringa) - il simbolo su cui è in esecuzione l'EA;
  • TimeFrame (il tipo di ENUM_TIMEFRAMES) - l'intervallo su cui è in esecuzione l'EA.

Di default, entrambe le opzioni sono impostate su "corrente" (ovvero l'Expert Advisor verrà testato e verrà scambiato su qualsiasi simbolo/intervallo).

Ma è sempre così buono? Ad esempio, esegui accidentalmente un Expert Advisor impostato per il trading intraday su EURUSD (inoltre, utilizza la conferma da una coppia incrociata), su un grafico settimanale di AUDNZD. Non sembra niente di buono.

Pertanto, sarebbe meglio impostare i parametri necessari. Nel passaggio successivo, seleziona il tipo di segnali di trading su cui l'EA farà trading. Per andare alla selezione dei simboli, fai click su "Avanti".


Fase 2. Seleziona i Moduli dei Segnali di Trading

L'algoritmo di apertura e chiusura delle posizioni è determinato dai moduli dei segnali di trading. I moduli dei segnali di trading contengono regole di apertura/chiusura/inversione delle posizioni.

Un Expert Advisor può utilizzare contemporaneamente fino a 64 diversi (o uguali, ma con impostazioni diverse) moduli di segnali di trading.

Figura 5. Parametri dei segnali EA(inizio).

Figura 6. Parametri dei segnali EA (inizio).

La Libreria Standard possiede moduli pronti all'uso di segnali di trading:

  1. Segnali dell’Indicatore 'Oscillatore Accelerator';
  2. Segnali dell’Indicatore 'Media Mobile Adattiva';
  3. Segnali dell’Indicatore 'Oscillatore Awesome';
  4. Segnali dell’oscillatore 'Bears Power';
  5. Segnali dell’oscillatore 'Bulls Power';
  6. Segnali dell’oscillatore 'Commodity Channel Index';
  7. Segnali dell’oscillatore 'DeMarker';
  8. Segnali dell’indicatore 'Media Mobile Esponenziale Doppia';
  9. Segnali dell’indicatore 'Envelopes';
  10. Segnali dell’indicatore 'Media Mobile Adattiva Frattale';
  11. Segnali di filtro temporale intraday;
  12. Segnali dell'oscillatore 'Convergenza/Divergenza Media Mobile';
  13. Segnali dell’indicatore 'Media Mobile';
  14. Segnali dell’indicatore 'Parabolic SAR';
  15. Segnali dell’oscillatore 'Relative Strength Index';
  16. Segnali dell’oscillatore 'Relative Vigor Index';
  17. Segnali dell’oscillatore 'Stocastico';
  18. Segnali dell’oscillatore 'Media Esponenziale Tripla';
  19. Segnali dell’indicatore 'Media Mobile Esponenziale Tripla';
  20. Segnali dell’oscillatore 'Williams Percent Range'.


Figura 6. Selezione dei segnali

Figura 7. Selezione dei segnali

Secondo i nostri "Termini di Riferimento", per prima cosa scegliamo "Segnali dell'indicatore 'Media mobile''.

Configurare i parametri necessari (PeriodMA e Method). Fare doppio click sul campo "Nome" per escludere dall'ottimizzazione (di default, tutti i parametri del segnale sono contrassegnati come parametri di input ) tutti i parametri tranne Weight.

Qui dobbiamo menzionare i campi di "Symbol" e "TimeFrame". Questi campi devono essere compilati se le impostazioni appropriate del segnale sono diverse dai parametri correnti. Per un segnale, le impostazioni attuali sono quelle dell’"intelligenza superiore" (in questo caso, dell'Expert Advisor).

Figura 7. Configurazione dei parametri del segnale

Figura 8. Configurazione dei parametri del segnale

Aggiungere i segnali rimanenti e configurare i parametri necessari. Per l'ottimizzazione, lasciare solo il parametro Weight per tutti i segnali.

La configurazione dei segnali è completata. Fai click su "Avanti" per continuare.

Figura 8. Parametri dei segnali EA (fine)

Figura 9. Parametri dei segnali EA (fine)


Fase 3. Seleziona il Modulo di Trailing delle Posizioni Aperte

Il passo successivo è selezionare l'algoritmo di trailing delle posizioni aperte (Trailing Stop). L'utilizzo del trailing ti consente di risparmiare il profitto guadagnato.

La configurazione di questo modulo è descritta in dettaglio nell'articolo MQL5 Wizard: Creazione di Expert Advisor senza Programmazione. Nel nostro caso non useremo il trailing.

Figura 9. Seleziona l’algoritmo di trailing della posizione

Figura 10. Seleziona l'algoritmo di trailing della posizione


Fase 4. Seleziona il Modulo di Gestione del Denaro e del Rischio

Nell'ultimo passaggio, è necessario selezionare il sistema di gestione del denaro e del rischio che verrà utilizzato nel tuo Expert Advisor. La configurazione di questo modulo è descritta in dettaglio nell'articolo MQL5 Wizard: Creazione di Expert Advisor senza Programmazione. Nel nostro caso, useremo un lotto fisso.


Figura 10. Selezionare l'algoritmo di gestione del denaro

Figura 11. Seleziona l'algoritmo di gestione del denaro

Questo è tutto. Fai click su "Fine".


Controllo dell'Expert Advisor creato nello Strategy Tester MetaTrader 5

Se sono presenti tutti i componenti della Libreria Standard, il codice dell'Expert Advisor generato viene compilato correttamente. Il miglior set di parametri di Expert Advisor può essere trovato dopo ottimizzazione nello Strategy Tester MetaTrader 5.

Per l'ottimizzazione dell'EA, selezionare il periodo da 01.01.10 a 01.01.11, eseguirlo in due fasi.

La prima fase: "Selezione dei pesi del segnale, soglie per l'attivazione delle condizioni di entrata/uscita e livelli di trading."

Figura 11. Parametri dell'ottimizzazione dell’Expert Advisor

Figura 12. Parametri dell'ottimizzazione dell’Expert Advisor

Ecco il risultato della migliore esecuzione di ottimizzazione.

Figura 12. Risultati dell'ottimizzazione dell’Expert Advisor

Figura 13. Risultati dell'ottimizzazione dell’Expert Advisor

Abbiamo già ottenuto buoni risultati (in termini di profitto e massimo drawdown). Non dobbiamo dimenticare che stavamo "facendo trading" con un lotto fisso.

Ma proviamo a migliorare ulteriormente i risultati. A tale scopo, abbiamo un altro segnale (non abbiamo ancora utilizzato le sue impostazioni). I valori riscontrati ottimizzando i parametri descrivono un modello di mercato riconosciuto dall'Expert Advisor.

Ma suggeriamo che il modello di mercato risultante non sempre funziona altrettanto bene. Proviamo ad applicare il filtro temporale ai risultati dell'ottimizzazione.

A tal fine, ottimizziamo l'Expert Advisor in base al parametro "Bad hours" dei segnali "IntradayTimeFilter". Il parametro "Bad hours" è una bitmap di 24 bit (il numero di ore al giorno). Ogni bit della bit mask corrisponde in modo univoco a una delle ore (numero di bit nella maschera e numero di ore in un giorno corrispondono). Il valore di qualsiasi bit uguale a 1 sovrascriverà qualsiasi risultato di un voto se il numero dell'ora corrente è uguale al numero di questo bit (cioè, l'ora è considerata negativa per il trading).

Per passare attraverso tutte le possibili combinazioni di ore "buone" e "cattive", ottimizzeremo il parametro da 0 a 2^24-1 (nella forma naturale 16 777 215) ad uno step pari a 1.

Figura 13. Parametri dell'ottimizzazione dell’Expert Advisor

Figura 14. Parametri dell'ottimizzazione dell’Expert Advisor

Come risultato dell'ottimizzazione, otteniamo 11 665 415. Per capire cosa significa, esprimiamolo in forma binaria:

  •  101100100000000000000111 - cioè i numeri di ore "cattive" sono 0, 1, 2, 17, 20, 21 e 23.

Ecco i parametri dell'Expert Advisor dopo tutte le ottimizzazioni.

Figura 14. Proprietà dell'Expert Advisor

Figura 15. Proprietà dell'Expert Advisor

Si allega il report di un singolo test con i migliori parametri. Il profitto è più alto e il drawdown è inferiore. Si può concludere che dopo il filtraggio del tempo, i risultati del sistema di trading nel periodo storico sono migliorati.


Conclusione

L'utilizzo delle classi di strategie di trading facilita in modo significativo la creazione di robot per testare le idee di trading direttamente in MetaEditor utilizzando MQL5 Wizard. Ora l'intero codice sorgente dell’Expert Advisor può essere costruito in base alla combinazione di moduli pronti all'uso della Libreria Standard o utilizzando i tuoi moduli.

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

File allegati |
sample.mq5 (8.75 KB)
Controlli Grafici Personalizzati. Parte 1: Creazione di un Controllo Semplice Controlli Grafici Personalizzati. Parte 1: Creazione di un Controllo Semplice
Questo articolo tratta i principi generali di sviluppo dei controlli grafici. Prepariamo strumenti per un lavoro rapido e conveniente con oggetti grafici, analizzeremo un esempio di creazione di un semplice controllo per l'inserimento di testo o dati numerici e le sue modalità di utilizzo.
I Fondamenti dei Testing in MetaTrader 5 I Fondamenti dei Testing in MetaTrader 5
Quali sono le differenze tra le tre modalità di testing in MetaTrader 5 e cosa dovremmo cercare in particolare? Come si svolge il testing di un EA, facendo trading simultaneamente su più strumenti? Quando e in che modo vengono calcolati i valori degli indicatori durante il testing e in che modo vengono gestiti gli eventi? Come sincronizzare le barre di diversi strumenti durante il testing in modalità "solo prezzi di apertura"? Questo articolo si propone di fornire risposte a queste e a molte altre domande.
Controlli Grafici Personalizzati. Parte 2. Libreria di Controllo Controlli Grafici Personalizzati. Parte 2. Libreria di Controllo
Il secondo articolo della serie "Custom Graphical Controls" introduce una libreria di controlli per la gestione dei principali problemi che sorgono nell'interazione tra un programma (Expert Advisor, script, indicatore) e un utente. La libreria contiene un gran numero di classi (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) ed esempi del loro utilizzo.
Eventi di Trade in MetaTrader 5 Eventi di Trade in MetaTrader 5
Un monitoraggio dello stato corrente di un account di trading implica il controllo delle posizioni e degli ordini aperti. Prima che un segnale di trading diventi un deal, deve essere inviato dal client terminal come richiesta al server di trading, dove verrà inserito nella coda degli ordini in attesa di essere elaborato. Accettando una richiesta dal server di trading, cancellandola mentre scade o conducendo un deal sulla sua base - tutte queste azioni vengono seguite da eventi di trading, e il server di trading informa il terminale su di essi.