Tutorial di programmazione - pagina 5

 

Gamma Breakout EA mql5 Programmazione | Parte 4/4


Gamma Breakout EA mql5 Programmazione | Parte 4/4

Toby è entusiasta di annunciare che oggi concluderemo il nostro consulente esperto di breakout (EA) per MetaTrader 5. Questo video segna la parte finale della nostra serie completa sull'EA di breakout. Se non hai avuto la possibilità di guardare i video precedenti, ti fornirò i link nella descrizione in modo che tu possa recuperare.

Nei segmenti precedenti, abbiamo trattato aspetti importanti come il calcolo dell'intervallo, i controlli di breakout di acquisto e vendita e la logica di chiusura della posizione. Ora, in questo video conclusivo, abbiamo alcune altre funzionalità da aggiungere al nostro EA. Nello specifico, incorporeremo una funzionalità di stop loss e take profit basata su una percentuale dell'intervallo. Inoltre, introdurremo un filtro per il giorno della settimana e implementeremo una modalità di breakout, consentendo agli utenti di passare da uno a due breakout per intervallo.

Immergiamoci nel processo di codifica. Finora, questo è il codice che abbiamo sviluppato. Il nostro primo compito è includere input per le percentuali di stop loss e take profit. Li definiremo come numeri interi poiché sono rappresentati in percentuale. Impostiamo l'input di stop loss predefinito su 150 e l'input di take profit su 200. Aggiorneremo anche i commenti per riflettere questi cambiamenti. Per garantire che l'utente fornisca input validi, è necessario eseguire controlli di input. Aggiungeremo un'ulteriore istruzione if nella funzione on init per convalidare gli input di stop loss e take profit. Se l'input di stop loss è inferiore a zero o superiore a 1000, verrà visualizzato un messaggio di errore. Lo stesso processo di validazione si applica all'input take profit. Questi controlli aiuteranno a proteggere l'EA da input errati.

Andando avanti, calcoliamo i valori di stop loss e take profit per ogni posizione. Per le posizioni di acquisto, lo stop loss sarà calcolato come percentuale dell'intervallo al di sotto del prezzo corrente. Useremo il prezzo di offerta e lo moltiplicheremo per il valore di stop loss di input diviso per 100. Per garantire un prezzo normalizzato, applicheremo la funzione NormalizeDouble. Allo stesso modo, per le posizioni di vendita, lo stop loss sarà calcolato come percentuale dell'intervallo sopra il prezzo corrente. Useremo il prezzo ask e vi aggiungeremo il valore di stop loss calcolato. Questo determinerà il livello appropriato per lo stop loss.

Per il calcolo del take profit seguiremo la stessa logica. Per le posizioni di acquisto, il take profit sarà l'intervallo al di sopra del prezzo corrente, mentre per le posizioni di vendita sarà l'intervallo al di sotto del prezzo corrente. Con i valori di stop loss e take profit calcolati, li incorporeremo nelle chiamate di posizione aperta. Invece di utilizzare un valore statico pari a zero, lo sostituiremo con i valori di stop loss e take profit calcolati. Questa regolazione garantisce che l'EA imposti accuratamente i livelli di stop loss e take profit per ciascuna posizione.

Per fornire flessibilità, introdurremo la possibilità di disabilitare la funzionalità di stop loss e take profit. Se l'utente inserisce zero per entrambi gli input, indicherà che desidera disattivare quella funzione. Aggiungeremo istruzioni if per verificare queste condizioni e regolare il calcolo di conseguenza. Ora, affrontiamo la funzione facoltativa dell'orario di chiusura. Inserendo -1 come input del tempo di chiusura, l'EA chiuderà solo le posizioni in base ai livelli di stop loss e take profit. Questa modifica consente agli utenti di scegliere se includere un tempo specifico per la chiusura della posizione o fare affidamento esclusivamente sui parametri di stop loss e take profit.

Per implementare ciò, aggiorneremo il controllo dell'ora di chiusura nella funzione on tick. Se il tempo di chiusura è inferiore a zero, indicando che è disattivato, salteremo il controllo di chiusura della posizione in base al tempo e faremo affidamento esclusivamente sulle condizioni di stop loss e take profit. Inoltre, modificheremo la visualizzazione dell'intervallo nella funzione Disegna oggetto. Se non è impostato un orario di chiusura, le linee del range si estenderanno fino alla candela corrente, indicando che la modalità breakout è attiva fino al raggiungimento dei livelli di stop loss o take profit. D'altra parte, se viene impostato un orario di chiusura, le linee del range si estenderanno solo fino a quella candela specifica, a significare che la modalità di breakout è attiva fino all'orario designato.

Per migliorare la versatilità di EA, introdurremo un filtro per il giorno della settimana. Questo filtro consente agli utenti di specificare i giorni in cui desiderano che l'EA sia attivo. Aggiungeremo un parametro di input per il filtro del giorno della settimana, in cui l'utente può selezionare più giorni da un elenco predefinito. Per impostazione predefinita, verranno selezionati tutti i giorni della settimana. Per implementare il filtro del giorno della settimana, modificheremo la funzione on tick. Introdurremo un'istruzione if per verificare se il giorno corrente è incluso nel filtro selezionato dall'utente. Se il giorno non è incluso, l'EA salterà la logica di apertura della posizione e procederà al tick successivo.

Infine, implementeremo l'opzione per passare da uno a due breakout per intervallo. Attualmente, l'EA apre una posizione per breakout di gamma. Tuttavia, alcuni trader potrebbero preferire avere la flessibilità di aprire due posizioni per breakout più forti. Per far fronte a ciò, introdurremo un parametro di input che consente all'utente di selezionare uno o due breakout per intervallo.

Per implementare questa funzione, regoleremo la logica di apertura della posizione. Se l'utente seleziona due breakout per intervallo, l'EA aprirà una posizione aggiuntiva nella direzione opposta al breakout iniziale. In questo modo, sia un breakout rialzista che uno ribassista possono essere catturati all'interno dello stesso intervallo. Con tutte queste nuove funzionalità implementate, il nostro consulente esperto di breakout fornirà ai trader funzionalità e flessibilità avanzate. La funzionalità di stop loss e take profit basata su una percentuale dell'intervallo aiuterà a gestire il rischio e ad acquisire profitti. Il filtro del giorno della settimana consentirà agli utenti di specificare i giorni di trading attivi, mentre la modalità di breakout può essere adattata a uno o due breakout per intervallo, a seconda della loro strategia di trading.

Ci auguriamo che questa serie completa sul consulente esperto di breakout sia stata utile e istruttiva. Se hai domande o hai bisogno di ulteriore assistenza, non esitare a contattarci. Buon commercio!

Range Breakout EA mql5 Programming | Part 4/4
Range Breakout EA mql5 Programming | Part 4/4
  • 2022.10.14
  • www.youtube.com
I will show you how to code a Time Range Breakout EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a time range breakout...
 

Bande di Bollinger Programmazione EA MT5



Bande di Bollinger Programmazione EA MT5

In questo video, Toby introduce una procedura dettagliata per la creazione di un consulente esperto personalizzato per un evento di bowling su Twitter. Inizia spiegando la strategia: vendere quando una candela si apre al di sopra della banda di Bollinger superiore, impostare i livelli di stop loss e take profit e uscire dall'operazione se viene superata la linea mediana delle bande di Bollinger. La stessa logica vale per l'acquisto.

Toby passa quindi a MetaEditor, dove crea un nuovo consulente esperto utilizzando un modello. Ripulisce il modello e aggiunge parametri di input per l'EA, come numero magico, dimensione del lotto, periodo, deviazione, stop loss e take profit. Imposta i valori predefiniti per questi parametri e compila il codice.

Successivamente, Toby definisce le variabili globali per l'EA, inclusa la maniglia dell'indicatore della banda di Bollinger e i buffer per le bande superiore, media e inferiore. Crea anche variabili per il tick corrente e il commercio.

Passando alla funzione OnInit, Toby controlla se gli input dell'utente sono validi. Se uno qualsiasi degli input non è valido, visualizza un messaggio di errore e ritorna. Imposta il numero magico per l'oggetto commerciale e crea la maniglia dell'indicatore per l'indicatore della banda di Bollinger. Se la creazione dell'handle fallisce, visualizza un messaggio di errore e ritorna. Quindi imposta i buffer come serie e compila il codice.

Nella funzione OnTick, Toby controlla se il tick corrente è un tick di barra aperta utilizzando una funzione personalizzata. Se non è un segno di spunta aperto, ritorna. Se si tratta di un tick di barra aperta, recupera il tick corrente utilizzando la funzione SymbolInfoTick e lo memorizza nella variabile currentTick. Quindi recupera gli ultimi valori dell'indicatore utilizzando la funzione CopyBuffer e li memorizza nei rispettivi buffer. Se il numero di valori copiati non è uguale a 3, indicando un errore, visualizza un messaggio di errore e ritorna.

A questo punto, Toby ha completato le fasi iniziali della codifica del consulente esperto. Compila il codice e utilizza un backtest visivo in MetaTrader per verificare i valori dell'indicatore e garantire che il codice funzioni correttamente.

Successivamente, dobbiamo implementare la logica per generare segnali di trading basati sulla strategia delle bande di Bollinger. Inizieremo controllando se una candela si apre sopra la banda superiore, indicando un segnale di vendita. Se questa condizione è soddisfatta, eseguiremo un'operazione di vendita con un livello di stop loss e take profit. Allo stesso modo, verificheremo se una candela si apre al di sotto della banda inferiore per un segnale di acquisto, eseguendo un'operazione di acquisto con le stesse condizioni di uscita.

Ecco la spiegazione del codice:

  • Per prima cosa controlliamo se il tick corrente è un tick di barra aperta utilizzando la funzione isNewBar(). Se restituisce false, saltiamo la generazione del segnale commerciale per il tick corrente.

  • Quindi recuperiamo gli ultimi valori dell'indicatore: upperBand, baseLine e lowerBand dai rispettivi buffer.

  • Successivamente, controlliamo se il prezzo di apertura della candela precedente è al di sopra della banda superiore (open[1] > upperBand). Se questa condizione è vera, generiamo un segnale di vendita aprendo un trade di vendita utilizzando il metodo Sell() dell'oggetto trade. Impostiamo la dimensione del lotto, lo stop loss e i livelli di take profit utilizzando i rispettivi metodi.

  • Allo stesso modo, controlliamo se il prezzo di apertura della candela precedente è inferiore alla banda inferiore (open[1] < lowerBand). Se vero, generiamo un segnale di acquisto aprendo un trade di acquisto utilizzando il metodo Buy() dell'oggetto trade. Ancora una volta, impostiamo la dimensione del lotto, lo stop loss e i livelli di take profit.

  • Infine, se c'è uno scambio aperto, controlliamo se il prezzo di chiusura della candela corrente attraversa la linea di mezzo (linea di base). Se questa condizione è vera, chiudiamo lo scambio utilizzando il metodo Close() dell'oggetto scambio.

Ricordati di compilare il codice e testarlo in MetaTrader per assicurarti che funzioni come previsto.

Nel codice fornito, vengono eseguite diverse attività. Ecco una spiegazione dettagliata di ogni passaggio:

  1. Inizializza variabili:

    • Imposta il conteggio delle posizioni di acquisto e di vendita su zero.
    • Imposta la cella corrente su zero.
  2. Conta le posizioni aperte:

    • Passa in rassegna tutte le posizioni attualmente aperte.
    • Ottieni il ticket di ogni posizione e controlla se l'operazione va a buon fine.
    • In caso di successo, ottieni il numero magico della posizione.
    • Se il numero magico corrisponde al numero magico inserito, incrementa il rispettivo contatore per le posizioni di acquisto o vendita.
  3. Controlla se è possibile aprire una nuova posizione:

    • Controlla se non ci sono posizioni di acquisto aperte.
    • Controlla se il prezzo corrente è inferiore o uguale al buffer inferiore delle bande di Bollinger.
    • Controlla se l'orario di apertura della posizione di acquisto è diverso dall'orario di apertura della barra corrente.
  4. Calcola stop loss e take profit:

    • Calcola lo stop loss sottraendo lo stop loss di input (in punti) dal prezzo corrente.
    • Calcola il take profit aggiungendo l'input take profit (in punti) al prezzo corrente.
    • Se l'input take profit è zero, imposta la variabile take profit su zero.
  5. Normalizza stop loss e take profit:

    • Definire una funzione per normalizzare lo stop loss e il take profit in base alla dimensione del tick.
    • Ottieni la dimensione del segno di spunta per il simbolo corrente.
    • Normalizza i valori di stop loss e take profit dividendoli per la dimensione del tick.
  6. Apri una nuova posizione di acquisto:

    • Utilizzare l'oggetto Trade per aprire una posizione di acquisto con i parametri specificati, inclusi lo stop loss normalizzato e il take profit.
  7. Controlla l'incrocio della banda superiore per aprire una posizione di vendita:

    • Controlla se non ci sono posizioni di vendita aperte.
    • Controlla se il prezzo corrente è superiore o uguale al buffer superiore delle bande di Bollinger.
    • Controlla se l'orario di apertura della posizione di vendita è diverso dall'orario di apertura della barra corrente.
    • Calcola lo stop loss e il take profit per la posizione di vendita utilizzando il prezzo bid corrente.
    • Normalizzare i valori di stop loss e take profit.
    • Apri una posizione di vendita con i parametri specificati, inclusi lo stop loss normalizzato e il take profit.
  8. Chiudere le posizioni se si incrocia la linea mediana delle bande di Bollinger:

    • Conta le posizioni aperte di acquisto e vendita.
    • Se il conteggio delle posizioni di acquisto è maggiore di zero e il prezzo di offerta corrente è superiore al buffer superiore, chiudi tutte le posizioni di acquisto.
    • Se il conteggio delle posizioni di vendita è maggiore di zero e il prezzo di richiesta corrente è inferiore o uguale al buffer inferiore, chiudere tutte le posizioni di vendita.
  9. Definire la funzione per chiudere le posizioni:

    • Copia il codice esistente per il conteggio delle posizioni aperte e modificalo per chiudere le posizioni in base al parametro di input (0 per tutte le posizioni, 1 per le posizioni di acquisto, 2 per le posizioni di vendita).

Il codice esegue vari controlli e calcoli per contare e gestire le posizioni aperte, aprire nuove posizioni e chiudere posizioni in base a condizioni specifiche.

Bollinger bands EA MT5 Programming
Bollinger bands EA MT5 Programming
  • 2022.11.28
  • www.youtube.com
Today I will show you how to code a simple Bollinger bands EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully work...
 

Come creare un pannello grafico in mql5 | Parte 1/2


Come creare un pannello grafico in mql5 | Parte 1/2

Toby dimostrerà come creare un semplice pannello grafico in MQL5 per visualizzare le informazioni e aggiungere un pulsante per cambiare il colore di sfondo del grafico. Accenna al fatto che questo pannello può essere creato per qualsiasi consulente esperto, ma utilizzerà come esempio il breakout dell'intervallo di tempo EA. Toby afferma che l'argomento del video è stato richiesto da un utente nei commenti e incoraggia gli spettatori a suggerire argomenti per i video futuri.

Toby apre il Meta Editor e carica il file per il breakout dell'intervallo di tempo EA. Lo salva come un nuovo consulente esperto chiamato "pannello EA dell'intervallo di tempo" e lo compila. Spiega che scriverà il pannello come una classe separata in un file di inclusione, rendendolo facile da usare in qualsiasi consulente esperto. Toby crea un nuovo file di inclusione chiamato "pannello grafico" e definisce gli input per la dimensione del pannello, la dimensione del carattere e il colore del carattere.

Include il file "dialog.mqh" dalla cartella controls, che gli permetterà di usare le funzioni di quella classe. Toby definisce una classe chiamata "CGraphicalPanel" che eredita dalla classe "CAppDialog". Aggiunge una sezione privata per i metodi della classe, una sezione pubblica per il costruttore, il distruttore, la funzione di inizializzazione e il gestore di eventi del grafico. Include anche una sezione di commento per i metodi di classe.

Successivamente, Toby scrive il corpo dei metodi della classe dopo la definizione della classe. Specifica che i metodi appartengono alla classe e scrive il costruttore, il distruttore, la funzione di inizializzazione e il gestore di eventi del grafico. Aggiunge commenti per descrivere lo scopo di ciascun metodo. Toby compila il codice per verificare la presenza di errori o avvisi.

Toby implementa la funzione create panel, che crea un pannello di dialogo utilizzando la classe CFDialog. Imposta il nome, la finestra secondaria, la posizione e le dimensioni del pannello in base ai parametri di input. Se la creazione del pannello fallisce, stampa un messaggio e restituisce false. Aggiunge anche una funzione di aggiornamento del grafico per aggiornare il grafico. Toby compila nuovamente il codice per assicurarsi che sia privo di errori.

Nel file expert advisor, Toby include il file di inclusione del pannello grafico e crea un oggetto della classe panel chiamato "panel" nella sezione delle variabili globali. Inizializza il pannello nella funzione onInit e aggiunge un gestore di eventi del grafico per passare gli eventi del grafico al pannello. Toby scrive il corpo del gestore dell'evento del grafico, chiamando la funzione dell'evento del grafico del pannello con i parametri appropriati.

Infine, Toby aggiunge una funzione destroy panel alla funzione onDeinit, che distrugge il panel e ne specifica il motivo. Compila nuovamente il codice e lo testa in MetaTrader. Toby dimostra di trascinare e rilasciare il consulente esperto sul grafico, mostrando la funzionalità del pannello. Chiude anche il consulente esperto utilizzando il pulsante del pannello.

Ciao, sono Toby e oggi ti mostrerò come creare un pannello grafico in MQL5. Questa è in realtà la seconda parte del tutorial. Nella prima parte abbiamo creato un semplice pannello sul lato sinistro e, se ve lo siete perso, trovate il link nella descrizione. Nel video di oggi, aggiungeremo alcune etichette e un pulsante al pannello. Per questo esempio, utilizzeremo il breakout dell'intervallo di tempo EA. Se sei interessato a imparare a codificare questo consulente esperto, ho una serie di codifica sul mio canale. Puoi trovare il link alla prima parte anche nella descrizione.

Per iniziare, passiamo all'editor MQL5 e iniziamo a programmare. Qui abbiamo il nostro file di inclusione del pannello grafico e abbiamo anche l'EA di breakout dell'intervallo di tempo, che abbiamo modificato per visualizzare il pannello. Andiamo al file di inclusione e controlliamo i valori di input dall'utente. Creeremo un metodo chiamato "check inputs" nella sezione del metodo privato nella nostra classe. Dopo la funzione OnInit, chiameremo questo metodo. Se il metodo restituisce false, restituiremo false anche dalla funzione OnInit. In questo modo, se gli input non sono validi, non procederemo oltre. Compiliamo e andiamo avanti.

Ora, iniziamo ad aggiungere etichette al pannello. Dobbiamo includere i file di classe necessari per etichette e pulsanti. Andremo alla sezione include e includeremo "controls/label.mqh" per le etichette e "controls/button.mqh" per i pulsanti. Successivamente, definiremo le nostre variabili di etichetta. Avremo etichette per ingressi, numero magico, lotti, ora di inizio, durata e ora di chiusura. Compiliamo e andiamo avanti.

Nella funzione createPanel, aggiungeremo le etichette al pannello. Creeremo l'etichetta di input utilizzando la variabile "M_L_Input". Imposteremo il testo, il colore e la dimensione del carattere per l'etichetta. Quindi, applicheremo l'etichetta al pannello. Ripeteremo questo processo anche per le altre etichette. Dopo aver aggiunto tutte le etichette, compileremo e controlleremo il pannello sul lato sinistro. Potrebbe essere necessario regolare le posizioni delle etichette per un migliore allineamento. Compiliamo e controlliamo.

Ora aggiungiamo il pulsante al pannello. Definiremo una variabile "M_B_ChangeColor" di tipo "CButton". Imposteremo la posizione, il testo, il colore del testo, il colore di sfondo e la dimensione del carattere per il pulsante. Infine, aggiungeremo il pulsante al pannello. Dopo la compilazione, vedremo il pulsante sul pannello. In questa fase, il pulsante non ha alcuna funzionalità, ma lo aggiungeremo in seguito.

Successivamente, cambiamo il colore di sfondo e il nome del carattere del pannello. Per fare ciò, includeremo il file "Defiance.mqh" e definiremo nuovi valori per le impostazioni predefinite. Definiremo il nome predefinito del carattere e le impostazioni del colore di sfondo, quindi definiremo nuovi valori per essi. Useremo il nome del carattere "Consolas" e un colore di sfondo grigio scuro. Dopo la compilazione, vedremo il pannello aggiornato con il nuovo colore di sfondo e font.

Infine, mostriamo i valori effettivi dal consulente esperto sul pannello. Includeremo il file del consulente esperto nel nostro file di inclusione e accederemo alle variabili di input. Aggiorneremo le etichette con i valori effettivi del consulente esperto. Dopo la compilazione, vedremo i valori di input visualizzati sul pannello.

Questo è tutto per il tutorial di oggi sulla creazione di un pannello grafico in MQL5. Nella parte successiva, aggiungeremo funzionalità al pulsante e completeremo il pannello. Resta sintonizzato per saperne di più!

How to create a graphical panel in mql5 | Part 1/2
How to create a graphical panel in mql5 | Part 1/2
  • 2022.12.04
  • www.youtube.com
Today I will show you how to code a simple graphical panel for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully working...
 

Come creare un pannello grafico in mql5 | Parte 2/2


Come creare un pannello grafico in mql5 | Parte 2/2

Ciao, questo è Toby. Oggi ti mostrerò come creare un pannello grafico in MQL5. Questa è la seconda parte della serie di tutorial. Nella prima parte, abbiamo creato un semplice pannello sul lato sinistro. Se ve lo siete perso ve lo linko qui. Nel video di oggi, aggiungeremo etichette e un pulsante al pannello. Per questo esempio, utilizzeremo il breakout dell'intervallo di tempo EA. Se vuoi imparare a codificare questo consulente esperto, ho una serie di codifica sul mio canale. Ti linko anche qui la prima parte.

Passiamo all'editor multimediale e iniziamo a programmare. Abbiamo il nostro file di inclusione del pannello grafico e il file EA di breakout dell'intervallo di tempo modificato, che visualizza il pannello. Nel file include, creeremo un metodo chiamato "checkInputs" per convalidare i valori di input dell'utente. Chiameremo questo metodo prima di creare il pannello nella funzione OnInit. Se uno qualsiasi degli input non è valido, visualizzeremo un messaggio di errore e restituiremo false. Altrimenti, procederemo con la creazione del pannello.

Successivamente, aggiungeremo etichette e un pulsante al pannello. Per utilizzare etichette e pulsanti, dobbiamo includere i loro file di classe. Aggiungeremo le istruzioni include necessarie per etichette e pulsanti nella classe. Quindi, definiremo le variabili private per le etichette e il pulsante.

Nella funzione CreatePanel, dopo aver creato il pannello, aggiungeremo le etichette e il pulsante al pannello. Imposteremo le loro posizioni, il testo, il colore e la dimensione del carattere. Infine, li aggiungeremo al pannello utilizzando il metodo Add.

Compileremo il codice e controlleremo il pannello. Le etichette e il pulsante dovrebbero essere visualizzati sul pannello. Cambieremo anche il colore di sfondo e il nome del carattere del pannello per un aspetto migliore. Per visualizzare i valori effettivi dal consulente esperto sul pannello, includeremo il file del consulente esperto nella sezione di inclusione. Quindi, nella funzione CreatePanel, recupereremo i valori di input dal consulente esperto e li visualizzeremo sulle etichette. Compileremo il codice e controlleremo nuovamente il pannello. Le etichette dovrebbero ora visualizzare i valori di input effettivi dal consulente esperto. Ripeteremo questo processo per tutti i valori di input.

Una volta completati questi passaggi, il pannello grafico con le etichette e un pulsante sarà pronto. Ora possiamo procedere con l'aggiunta dei valori per le rimanenti etichette sul pannello. Lo faremo nello stesso modo in cui lo abbiamo fatto per l'etichetta del numero magico. Torniamo al nostro file di inclusione e individuiamo la sezione in cui creiamo le etichette. Qui aggiungeremo il codice per visualizzare i valori per i lotti, l'ora di inizio, la durata e l'ora di chiusura.

Per l'etichetta dei lotti, sostituiremo il testo "magic number" con "lots" e aggiorneremo la coordinata y a 70. Per l'etichetta dell'ora di inizio, cambieremo il nome in "start time" e aggiorneremo la y- coordinata a 90. Per l'etichetta della durata, cambieremo il nome in "durata" e aggiorneremo la coordinata y a 110. Infine, per l'etichetta dell'ora di chiusura, cambieremo il nome in "ora della chiusura" e aggiorneremo la coordinata y a 130.

Dopo aver apportato queste modifiche, possiamo compilare il codice.

Ora, se diamo un'occhiata al nostro consulente esperto e lo compiliamo, dovremmo essere in grado di vedere i valori effettivi per i lotti, l'ora di inizio, la durata e l'ora di chiusura sul pannello. Successivamente, implementiamo la funzionalità per il pulsante. Attualmente, quando clicchiamo sul pulsante, non esegue alcuna azione. Cambiamolo. Nel nostro file di inclusione, individueremo la sezione in cui creiamo il pulsante. Qui possiamo aggiungere un gestore di eventi per il clic del pulsante. Useremo la funzione OnChartEvent per questo scopo. All'interno del gestore dell'evento, possiamo specificare l'azione che vogliamo intraprendere quando si fa clic sul pulsante.

Per ora, mostriamo un messaggio quando si fa clic sul pulsante. Possiamo usare la funzione Print per inviare un messaggio al terminale. Dopo aver aggiunto il gestore dell'evento, possiamo compilare il codice.

Ora, se eseguiamo il consulente esperto e facciamo clic sul pulsante, dovremmo vedere il messaggio visualizzato nel terminale.

Questo è tutto! Abbiamo creato con successo un pannello grafico in MQL5 con etichette e un pulsante. Le etichette visualizzano i valori di input dal consulente esperto e il pulsante ha un gestore di eventi clic.

Sentiti libero di aggiungere più funzionalità al pulsante o personalizzare il pannello in base alle tue esigenze. Ricordati di compilare sia il file di inclusione che il file del consulente esperto per vedere le modifiche diventare effettive.

How to create a graphical panel in mql5 | Part 2/2
How to create a graphical panel in mql5 | Part 2/2
  • 2022.12.12
  • www.youtube.com
Today I will show you how to code a simple graphical panel for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully working...
 

Dimensionamento dinamico della posizione in mql5 | Programmazione MT5



Dimensionamento dinamico della posizione in mql5 | Programmazione MT5

Ciao, questo è Toby. Oggi ti mostrerò come calcolare la dimensione dinamica del lotto in MQL5 in modo da poter ottenere risultati come quello mostrato qui. Puoi provarlo tu stesso.

Bene, iniziamo. In questo video, aggiungeremo un calcolo dinamico della dimensione del lotto a una strategia che attualmente utilizza una dimensione del lotto fissa. Ciò ci consentirà di rischiare un importo specifico per operazione, ad esempio $ 100 o una percentuale del saldo del conto. Inoltre, eseguiremo un backtest per determinare se la strategia può essere ulteriormente migliorata con il calcolo dinamico della dimensione del lotto. Ti guiderò anche attraverso la strategia e le sue impostazioni.

Per iniziare, passiamo a MetaEditor e iniziamo a programmare. Qui siamo in MetaEditor e per questa dimostrazione utilizzerò "Time Range EA" per incorporare il calcolo dinamico della dimensione del lotto. Tuttavia, puoi utilizzare qualsiasi altro consulente esperto di tua scelta. Abbiamo precedentemente codificato questo EA in una serie sul nostro canale. Se desideri utilizzare lo stesso consulente esperto, fornirò un collegamento alla prima parte.

Innanzitutto, apriamo il file "Time Range EA". Ora, salviamolo con un nuovo nome. Fare clic su "Salva con nome" e denominarlo "Intervallo di tempo Lotti dinamici EA". Perfetto, il file è stato salvato.

Questo consulente esperto è dove aggiungeremo il calcolo dinamico della dimensione del lotto. Compiliamo il file ed esaminiamo gli input nel tester di strategia. Apri il tester di strategia nella piattaforma MetaTrader 5 e, se necessario, aggiorna gli expert advisor. Ora, seleziona "Lotti dinamici EA per intervallo di tempo". Nella scheda Input, noterai l'input 'Lot Size', che attualmente accetta un valore fisso. Dobbiamo modificarlo in modo da poter inserire valori per rischiare $ 100 per operazione o una percentuale del saldo del conto.

Tornando a MetaEditor, aggiungeremo un input per la dimensione del lotto dinamico nella sezione "input". Crea uno spazio dopo il "Magic Number" e definisci un'enumerazione (enum) chiamata "Lot Mode Enum". Questa enumerazione avrà tre opzioni: "Risolto", "Soldi" e "Percentuale del conto". Questo ci permetterà di scegliere facilmente la modalità lotto desiderata. Fornire commenti per ogni opzione per migliorare la leggibilità.

Successivamente, useremo questo enum come input. Definire un "input" con il tipo come "Lot Mode Enum" e denominarlo "Input Lot Mode", ad esempio. Impostare il valore predefinito su "Modalità lotto fissa" e aggiungere un commento per descrivere lo scopo di questo input.

Compila il codice e controlla come appare nel tester di strategia. Noterai il menu a discesa "Modalità lotto", che ti consente di selezionare tra "Fisso", "Lotto basato sul denaro" e "Lotto basato sulla percentuale del conto".

Modifichiamo ora l'input 'Lot Size' per accogliere valori diversi a seconda della modalità lotto selezionata. Cambia il tipo di input in "doppio" e modifica il commento in modo che rifletta le opzioni: "Lotto/Denaro/Percentuale". Compila nuovamente il codice e controlla il tester della strategia per assicurarti che le modifiche vengano applicate.

Per convalidare l'input dell'utente, modificheremo la funzione 'CheckInput'. Aggiungi controlli per ciascuna opzione della modalità lotto per garantire che l'input rientri nell'intervallo accettabile. Per la modalità lotto 'Fisso', la dimensione del lotto deve essere superiore a zero e non superare un certo limite (ad es. 10 lotti). Visualizza un messaggio di errore appropriato se queste condizioni non sono soddisfatte. Ripeti questo processo per le modalità lotto "Denaro" e "Percentuale del conto", regolando i limiti di conseguenza. Inoltre, se viene selezionata una di queste due modalità di lotto, dovremo verificare se lo stop loss è attivo.

Un breve riepilogo dei passaggi coinvolti nell'implementazione del calcolo dinamico della dimensione del lotto in MQL5:

  1. Determina le dimensioni del lotto minime e massime consentite per la tua strategia di trading.
  2. Definire la dimensione del passo del lotto desiderata, che rappresenta l'incremento di cui possono cambiare i lotti.
  3. Calcola la distanza di stop loss per il commercio.
  4. Usa la distanza di stop loss per calcolare la dimensione iniziale del lotto.
  5. Verificare se la dimensione del lotto calcolata è inferiore al valore minimo consentito e modificarla se necessario.
  6. Controlla se la dimensione del lotto calcolata supera il valore massimo consentito e correggilo se necessario.
  7. Verificare se la dimensione del lotto calcolata è una dimensione del passo valida e, se necessario, adattarla alla dimensione del passo valida più vicina.
  8. Restituisce la dimensione finale del lotto calcolata.
  9. Usa la dimensione del lotto calcolata per aprire lo scambio.

Seguendo questi passaggi, puoi assicurarti che la dimensione del tuo lotto sia calcolata dinamicamente in base al rischio desiderato per operazione e ai vincoli della tua strategia di trading.

Dynamic position sizing in mql5 | MT5 programming
Dynamic position sizing in mql5 | MT5 programming
  • 2022.12.18
  • www.youtube.com
Today I will show you how to code dynamic position sizing for Metatrader 5 in mql5. We create two functions to calculate a dynamic position size for any Expe...
 

Trailing stop loss in mql5 | Programmazione MT5



Trailing stop loss in mql5 | Programmazione MT5

Oggi ti guiderò passo dopo passo su come aggiungere uno stop loss di formazione a qualsiasi consulente esperto in MQL5. Entro la fine di questo video, eseguiremo anche un backtest per valutare se la nostra strategia può essere migliorata con uno stop loss al trading. Quindi iniziamo.

Prima di iniziare a programmare, comprendiamo il concetto di base di uno stop loss commerciale. Immagina di inserire una posizione a un prezzo specifico. Inizialmente, il nostro stop loss è fissato a un certo livello. Man mano che il prezzo si sposta a nostro favore, trasciniamo lo stop loss dietro il prezzo, mantenendo sempre la stessa distanza. Se il prezzo ritraccia, lo stop loss rimane in vigore. Mentre il prezzo continua a muoversi nella nostra direzione, continuiamo a seguire il nostro stop loss. Alla fine, il prezzo potrebbe invertirsi, portando alla chiusura della nostra posizione. L'idea principale è trarre profitto da tendenze di mercato significative e uscire dalla posizione quando la tendenza finisce.

Ora passiamo a MetaEditor per iniziare a programmare. Puoi utilizzare qualsiasi consulente esperto per questo scopo, ma per questo video utilizzeremo la "Timeline GA" con dimensione dinamica del lotto, che abbiamo codificato nel video precedente. Apri il file e salvalo come nuovo consulente esperto denominato "Stop Loss". Compila il codice per assicurarti che tutto sia privo di errori.

Per aggiungere uno stop loss al trading al nostro consulente esperto, dobbiamo seguire alcuni passaggi. Innanzitutto, aggiungiamo un input aggiuntivo per il trailing stop loss. All'interno della sezione di input, aggiungi una variabile di input booleana denominata "EnableTrailingStopLoss" e impostane il valore predefinito su "false". Questo input ci permetterà di attivare o disattivare lo stop loss del trading. Compilare il codice per incorporare le modifiche.

Ora torna alla piattaforma MetaTrader e apri lo Strategy Tester. Seleziona il nostro consulente esperto "Lotti dinamici con Trailing Stop Loss". Nella scheda di input, troverai l'input appena aggiunto "EnableTrailingStopLoss". Passa da "falso" a "vero" per attivare lo stop loss del trading.

Successivamente, scriviamo la funzione che aggiornerà il nostro stop loss. Posizioneremo questa funzione prima della funzione "ClosePosition". All'interno della funzione, per prima cosa, controlla se abbiamo abilitato lo stop loss al trading e se esiste uno stop loss esistente per la posizione. In caso contrario, non è necessario procedere, quindi tornare dalla funzione.

Ora, passiamo in rassegna tutte le posizioni aperte. Per ogni posizione, verificheremo se appartiene al nostro consulente esperto. Recupera il tipo di posizione (acquisto o vendita), l'attuale stop loss e prendi i valori di profitto. Calcola il nuovo stop loss in base al prezzo corrente e all'intervallo del simbolo, moltiplicato per la percentuale di stop loss definita dall'utente. Regola lo stop loss in base al tipo di posizione.

Prima di modificare la posizione con il nuovo stop loss, occorre effettuare alcune verifiche. Innanzitutto, assicurati che il nuovo stop loss sia diverso dall'attuale stop loss per evitare errori. Inoltre, alcuni broker impongono un livello di stop, impedendo di impostare lo stop loss troppo vicino al prezzo corrente. Controlla se il nuovo stop loss aderisce al livello di stop e, in caso contrario, continua alla posizione successiva.

Infine, modifica la posizione con il nuovo stop loss e l'attuale valore di take profit. Se la modifica non riesce, stampare un messaggio di errore che indica il problema riscontrato. Ritorno dalla funzione per evitare di elaborare ulteriori posizioni.

Compilare il codice per assicurarsi che non vi siano errori o avvisi. Ora, la funzione di stop loss dell'aggiornamento è completa.

Per integrare questa funzione nel nostro expert advisor, dobbiamo richiamarla all'interno della funzione "OnTick". Effettuare la chiamata alla funzione dopo aver verificato la presenza di breakout. Ciò garantisce che lo stop loss venga aggiornato per ogni tick ricevuto.

Compila il codice un'ultima volta per confermare le modifiche. Ora, il nostro consulente esperto ha la possibilità di tracciare lo stop loss in base ai parametri definiti dall'utente. Abbiamo aggiunto la variabile di input per abilitare o disabilitare la funzionalità di trailing stop loss e abbiamo implementato la funzione per aggiornare lo stop loss per le posizioni aperte.

Ora, procediamo al backtest del nostro expert advisor per valutare l'efficacia dello stop loss del trading. Nella piattaforma MetaTrader, apri lo Strategy Tester e seleziona il nostro consulente esperto "Stop Loss" per il test. Scegli il simbolo e il periodo di tempo desiderati per il test.

Nella scheda Input troverai vari parametri da configurare, tra cui la percentuale di trailing stop loss e la dimensione del lotto. Regola questi parametri in base alle tue preferenze e alla tua strategia di trading.

Fare clic sul pulsante Avvia per iniziare il backtest. Il consulente esperto eseguirà operazioni in base ai parametri specificati e lo stop loss verrà regolato dinamicamente man mano che il prezzo si sposta a nostro favore.

Una volta completato il backtest, è possibile esaminare i risultati nelle schede Risultati e Grafico. Presta attenzione a profitti e perdite, drawdown e altre metriche di performance per valutare l'impatto del trailing stop loss sulla strategia.

Se i risultati del backtest sono soddisfacenti, puoi prendere in considerazione l'utilizzo del consulente esperto con lo stop loss nel tuo conto di trading live. Tuttavia, è fondamentale valutare a fondo le prestazioni della strategia e condurre ulteriori test o ottimizzazioni prima di prendere qualsiasi decisione di trading.

In conclusione, abbiamo aggiunto con successo uno stop loss di trading al nostro consulente esperto utilizzando MQL5. Trascinando lo stop loss dietro il prezzo, miriamo a massimizzare i profitti durante le tendenze di mercato favorevoli e minimizzare le perdite quando la tendenza si inverte. Ricorda di testare a fondo qualsiasi modifica o strategia prima di applicarla ai conti di trading live.

Tieni presente che questa è una guida generale ed è essenziale avere una buona conoscenza dei principi di programmazione e trading prima di implementare tali modifiche. Prestare sempre attenzione e prendere in considerazione la possibilità di consultare un consulente finanziario professionista, se necessario.

Trailing stop loss in mql5 | MT5 programming
Trailing stop loss in mql5 | MT5 programming
  • 2022.12.31
  • www.youtube.com
Today I will show you how to code a trailing stop loss in mql5. You can use the same function to add a trailing stop loss to any other Expert Advisor for Met...
 

Codifica un semplice EA RSI in mql5 | Programmazione MT5



Codifica un semplice EA RSI in mql5 | Programmazione MT5

In questo tutorial, Toby si presenta e spiega l'obiettivo del tutorial, ovvero dimostrare come codificare un semplice Expert Advisor (EA) utilizzando il MetaEditor. L'EA utilizzerà l'indicatore RSI per generare segnali di acquisto e vendita basati su condizioni di ipervenduto e ipercomprato. Toby menziona anche che uno stop loss, take profit e un'opzione per uscire dalle negoziazioni su un segnale inverso saranno inclusi nell'EA.

Toby inizia creando un nuovo file EA in MetaEditor e ripulendo il codice esistente. Quindi definisce i parametri di input per l'EA, come il numero magico, la dimensione del lotto, il periodo RSI, il livello RSI, lo stop loss, il take profit e l'opzione per chiudere le negoziazioni su un segnale inverso. Assegna valori predefiniti a questi parametri di input e aggiunge commenti per descriverli.

Dopo aver definito i parametri di input, Toby passa alla creazione della sezione delle variabili globali. Dichiara le variabili per l'handle dell'indicatore RSI, un buffer per memorizzare i valori RSI, una variabile di tipo tick per memorizzare il tick corrente, un oggetto commerciale per aprire e chiudere posizioni e due variabili datetime per garantire che venga aperta una sola operazione per barra. Include anche la direttiva #include necessaria per accedere alla classe CTrade.

Successivamente, Toby implementa la convalida dei parametri di input nella funzione OnInit(). Controlla se ogni parametro di input soddisfa i criteri specificati e visualizza un messaggio di errore se qualsiasi input non è valido. Usa la funzione Alert() per stampare i messaggi di errore e ritorna dalla funzione OnInit() se si verifica un errore.

Oltre alla convalida dell'input, Toby imposta il numero magico per l'oggetto commerciale e crea l'handle dell'indicatore RSI. Controlla se la creazione dell'handle ha avuto successo e visualizza un messaggio di errore se fallisce. Imposta anche la serie per il buffer RSI per semplificare il lavoro con i valori.

Nella funzione OnDeinit(), Toby rilascia l'indicatore RSI utilizzando la funzione IndicatorRelease() per liberare risorse.

Passando alla funzione OnTick(), Toby inizia ottenendo il segno di spunta corrente utilizzando la funzione SymbolInfoTick(). Controlla se il recupero del segno di spunta ha avuto successo e visualizza un messaggio di errore se fallisce. Assegna i prezzi ask e bid del tick corrente alla variabile globale currentTick per un uso futuro.

Successivamente, Toby recupera i valori dell'indicatore RSI utilizzando la funzione CopyBuffer(). Assegna i valori a una variabile chiamata rsiValues e controlla se il recupero ha avuto successo. Memorizza i due valori RSI nel buffer per ulteriori analisi.

Con i dati necessari recuperati, Toby può ora procedere all'implementazione della logica di trading nella funzione OnTick(). Tuttavia, il codice fornito nel testo è tagliato e mancano i dettagli rimanenti.

Il tutorial copre la configurazione iniziale dell'EA, inclusa la definizione dei parametri di input, la convalida dell'input, la dichiarazione della variabile globale, la gestione dell'indicatore RSI e il recupero del tick corrente. Il tutorial pone le basi per l'implementazione della logica di trading nelle fasi successive.

Code a simple RSI EA in mql5 | MT5 Programming
Code a simple RSI EA in mql5 | MT5 Programming
  • 2023.01.08
  • www.youtube.com
Today I will show you how to code a simple RSI EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully working RSI Expe...
 

Incredibile bot di trading RSI in mql5! | Programmazione MT5



Incredibile bot di trading RSI in mql5! | Programmazione MT5

Ehi, questo è Toby, e oggi ti mostrerò come codificare una strategia con una percentuale di vincita del 100%. In questo tutorial, modificheremo un Expert Advisor (EA) esistente e aggiungeremo un filtro all'indicatore RSI. Ti guiderò attraverso il processo di codifica passo dopo passo. Iniziamo!

Passo 1: impostare la strategia Lavoreremo nel MetaEditor. Apri l'EA che abbiamo creato nel video precedente. Se non l'hai ancora visto, te lo linkerò per aggiornarti. Salva il file con un nuovo nome, ad esempio "RSI_MA_Filter_EA".

Passaggio 2: modifica degli input Per implementare il filtro, è necessario aggiungere un input di periodo di media mobile. Includeremo anche un input per l'intervallo di tempo in cui viene eseguita la media mobile. Manterremo lo stop loss, il take profit e gli input di segnali opposti così come sono.

Passaggio 3: regolazione delle variabili globali Nella sezione delle variabili globali, è necessario rinominare l'handle e il buffer dell'indicatore RSI per differenziarli dalla media mobile. Aggiungeremo un handle e un buffer per la media mobile. Inoltre, possiamo rimuovere le variabili non necessarie relative all'acquisto a tempo aperto e alla vendita a tempo aperto.

Passaggio 4: apportare modifiche alla funzione onInit Nella funzione onInit, aggiungeremo un controllo per l'input del periodo della media mobile. Modificheremo anche l'handle RSI per utilizzare il prezzo di apertura anziché il prezzo di chiusura. Quindi, creeremo l'handle e il buffer per l'indicatore della media mobile.

Passo 5: Aggiornamento della funzione Untick All'interno della funzione untick, verificheremo prima se il tick corrente è un nuovo tick di barra aperta. In caso contrario, torneremo e aspetteremo il prossimo tick di apertura della barra. Aggiungeremo una funzione personalizzata per eseguire questo controllo. Quindi, recupereremo i valori per la media mobile e li memorizzeremo nel buffer. Regoleremo anche le condizioni per l'apertura di posizioni di acquisto e vendita per includere il filtro della media mobile.

Passo 6: Compilazione e Test Dopo aver apportato tutte le modifiche necessarie, compileremo il codice per verificare eventuali errori. Se tutto viene compilato correttamente, possiamo procedere a testare l'EA nel tester di strategia. Eseguiremo un test visivo utilizzando i dati storici dal 2012 ad oggi, selezionando input appropriati per RSI e periodi di media mobile, stop loss, take profit e l'opzione per chiudere le negoziazioni su un segnale opposto.

Seguendo questo tutorial, hai imparato a codificare una strategia con una percentuale di vincita del 100%. Abbiamo modificato un EA esistente e aggiunto un filtro per la media mobile all'indicatore RSI. Ricordati di salvare il tuo file e compilarlo senza errori. Ora puoi testare la strategia nella piattaforma MetaTrader 5 utilizzando il tester di strategia. Buona fortuna con i tuoi futuri sforzi di codifica!

Amazing RSI trading bot in mql5! | MT5 programming
Amazing RSI trading bot in mql5! | MT5 programming
  • 2023.01.15
  • www.youtube.com
Today I will show you how to code a RSI trading bot for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully working RSI Ex...
 

Indicatore personalizzato del canale Donchian EA | Programmazione MT5



Indicatore personalizzato del canale Donchian EA | Programmazione MT5

Ehi, questo è Toby. Oggi ti mostrerò come codificare un indicatore personalizzato in MQL5. Creeremo un indicatore del canale Donchian e successivamente lo utilizzeremo per sviluppare un proficuo Expert Advisor (EA). Una volta che l'EA sarà pronto, eseguiremo alcuni backtest per valutarne le prestazioni. Come puoi vedere dai risultati, la strategia funziona molto bene. Iniziamo!

Analizziamo ora i risultati nello Strategy Tester. Il Donchian Channel Expert Advisor mostra risultati promettenti. Quindi, il nostro primo passo è definire la strategia. Codificheremo un indicatore del canale Donchian personalizzato e lo useremo per creare il consulente esperto. Cerchiamo di delineare l'idea di strategia di base sul grafico.

Le linee blu rappresentano l'indicatore del canale Donchian che codificheremo in questo video. Il canale Donchian mostra il massimo più alto e il minimo più basso delle precedenti n-bar. Molti trader utilizzano il canale Donchian per sviluppare strategie di breakout, in cui entrano in un'operazione di acquisto quando il prezzo supera la banda superiore. Tuttavia, per questo EA, esploreremo l'approccio opposto. Eseguiremo un'operazione di vendita ogni volta che il prezzo supererà la banda superiore del Canale di Donchian. Allo stesso modo, apriremo una posizione di acquisto quando il prezzo incrocia al di sotto della banda inferiore del Donchian Channel. Imposteremo anche uno stop loss basato su punti o su una percentuale del canale. Inoltre, potremmo aggiungere un filtro a Donchian Channel EA per considerare la dimensione del canale.

Ora passiamo al Meta Editor per iniziare a codificare il nostro indicatore di canale Donchian personalizzato.

Nel Meta Editor, iniziamo creando un nuovo file indicatore personalizzato. Puliremo un po' il codice rimuovendo i commenti non necessari e allineando le parentesi. Successivamente, definiremo le proprietà dell'indicatore. Specifichiamo che dovrebbe essere visualizzato nella finestra principale del grafico piuttosto che in una finestra separata. Dichiareremo anche il numero di buffer e grafici che avrà il nostro indicatore, che in questo caso è due.

Andando avanti, definiremo gli input per il nostro indicatore personalizzato. Questi input consentono agli utenti di personalizzare l'indicatore quando lo si applica a un grafico. Creeremo input per il periodo del canale Donchian, l'offset del canale (in percentuale) e il colore del canale.

Dopo aver compilato il codice, passeremo alla sezione Variabili globali, dove definiremo le variabili necessarie per l'indicatore. Creeremo buffer per i valori superiore e inferiore del canale Donchian e variabili aggiuntive per memorizzare i valori superiore e inferiore, nonché l'indice della prima barra.

Nella funzione OnInit, inizializzeremo i nostri buffer e imposteremo il nome breve dell'indicatore, che verrà utilizzato per identificare l'indicatore sul grafico.

Infine, nella funzione OnCalculate, eseguiremo il calcolo per l'indicatore Donchian Channel. Verificheremo se ci sono abbastanza barre nel grafico per procedere. In caso contrario, restituiremo zero. Altrimenti, calcoleremo i valori superiore e inferiore per ogni barra utilizzando i prezzi aperti. Memorizzeremo questi valori nei buffer corrispondenti.

Una volta compilato il codice senza errori o avvisi, possiamo testare il nostro indicatore personalizzato. Apri un grafico, vai al Navigatore e trova l'indicatore My Donchian Channel. Trascinalo e rilascialo sul grafico. Nelle impostazioni dell'indicatore, specificare il periodo, l'offset e il colore desiderati.

Donchian channel custom Indicator EA | MT5 programming
Donchian channel custom Indicator EA | MT5 programming
  • 2023.01.29
  • www.youtube.com
Today I will show you how to code a Donchian channel custom indicator EA for Metatrader 5. If you are new to mql5, just follow my steps and we will create a...
 

Fantastico bot di trading di Donchian Channel in mql5! | Programmazione MT5



Fantastico bot di trading di Donchian Channel in mql5! | Programmazione MT5

Dopo aver aggiunto l'indicatore personalizzato al grafico, vedrai il canale Donchian visualizzato come linee blu. L'indicatore del canale Donchian mostra il massimo più alto e il minimo più basso delle precedenti 'n' barre. È comunemente usato per creare strategie di breakout, in cui i trader entrano in compravendite quando il prezzo supera la banda superiore del Canale Donchian e vendono negoziazioni quando incrocia al di sotto della banda inferiore.

Tuttavia, per questo EA (Expert Advisor), vogliamo testare l'approccio opposto. Invece di acquistare quando il prezzo supera la banda superiore, venderemo e viceversa. Quindi, ogni volta che il prezzo attraversa la banda superiore del Canale Donchian, prenderemo una posizione di vendita, e quando attraversa la banda inferiore, prenderemo una posizione di acquisto.

Inoltre, imposteremo uno stop loss per ogni operazione, in punti o come percentuale del canale. Potremmo anche prendere in considerazione l'aggiunta di un filtro a Donchian Channel EA in base alle dimensioni del canale. Ora, entriamo nel MetaEditor per iniziare a codificare il nostro indicatore di canale Donchian personalizzato.

Nel MetaEditor, crea un nuovo file indicatore personalizzato facendo clic su "Nuovo" nell'angolo in alto a sinistra, selezionando "Indicatore personalizzato" e facendo clic su "Avanti". Assegna un nome al file "MyDonchianChannel" e fai clic su "Avanti" e "Fine" per completare il processo. Una volta creato il file, ripulisci il codice rimuovendo i commenti non necessari e allineando le parentesi. Successivamente, compila il codice per verificare la presenza di eventuali errori o avvisi.

Ora definiamo le proprietà del nostro indicatore personalizzato. Vogliamo che venga visualizzato nella finestra principale del grafico, quindi imposta la proprietà "indicator_chart_window" su true. Dobbiamo anche definire il numero di buffer e grafici per il nostro indicatore. Poiché abbiamo due righe (superiore e inferiore), imposta "indicator_buffers" su 2 e "indicator_plots" su 2.

Successivamente, definiremo i parametri di input per il nostro indicatore personalizzato. Abbiamo bisogno di input per il periodo del Canale di Donchian, la percentuale di offset e il colore delle linee dell'indicatore. Definisci questi input utilizzando i tipi appropriati (intero per periodo e offset e color per colore) e imposta valori e commenti predefiniti per ciascun input.

Compilare nuovamente il codice per assicurarsi che non vi siano errori o avvisi.

Passiamo ora alla codifica della funzione "onCalculate" dell'indicatore personalizzato. Innanzitutto, controlla se il numero di barre nel grafico è inferiore al periodo di input più uno. Se è così, non ci sono abbastanza barre per calcolare l'indicatore, quindi ritorna con zero. Successivamente, imposta la variabile "first", che rappresenta la prima barra per la quale vogliamo iniziare a calcolare il canale Donchian. Se il calcolo precedente non è stato eseguito (previous_calculated è zero), impostare "first" sul periodo di input. Altrimenti, impostalo su previous_calculated meno uno. Ora, dobbiamo scorrere le barre usando un ciclo for. Inizia il ciclo dalla "prima" barra e continua fino a quando la barra corrente è inferiore al numero totale di barre nel grafico. Aumenta il contatore della barra alla fine di ogni iterazione del ciclo.

All'interno del ciclo, calcola i valori superiore e inferiore del Canale Donchian utilizzando i prezzi di apertura di ciascuna barra. Memorizza questi valori rispettivamente nelle variabili "superiore" e "inferiore".

Per calcolare l'offset, sottrarre il valore inferiore dal valore superiore e moltiplicarlo per l'offset di input diviso per 100. Questo ci darà il valore dell'offset in punti o come percentuale del canale. Infine, memorizzare i valori calcolati nei buffer corrispondenti utilizzando l'indice del buffer e il contatore a barre. Dopo aver calcolato e memorizzato i valori nei buffer, è necessario impostare le etichette degli indicatori per ciascun grafico. Queste etichette verranno visualizzate nella finestra delle proprietà dell'indicatore.

Assegnare le etichette per i grafici superiore e inferiore utilizzando la funzione SetIndexLabel(), passando l'indice del buffer e l'etichetta come parametri. Successivamente, imposteremo i colori per le linee dell'indicatore utilizzando le funzioni SetIndexStyle() e SetIndexColor(). Specificare l'indice del buffer, lo stile della linea (ad esempio, STYLE_SOLID) e il colore desiderato per ogni linea.

Infine, aggiungeremo del codice aggiuntivo per rendere l'indicatore visivamente più accattivante. Possiamo nascondere il nome dell'indicatore impostando la proprietà indicator_shortname su una stringa vuota. Inoltre, possiamo aggiungere un'etichetta al grafico con il valore corrente della banda superiore utilizzando le funzioni ObjectCreate() e ObjectSetText().

Compilare nuovamente il codice per assicurarsi che non vi siano errori o avvisi.

Congratulazioni! Hai codificato con successo l'indicatore personalizzato del canale Donchian. Ora puoi utilizzare questo indicatore nel tuo Expert Advisor per implementare la tua strategia di trading.

Nella fase successiva, passeremo alla codifica dell'Expert Advisor (EA) che utilizzerà l'indicatore Donchian Channel per eseguire operazioni basate sulla strategia di breakout. Apri un nuovo file nel MetaEditor, chiamalo "DonchianChannelEA" e seleziona l'opzione "Expert Advisor". Fare clic su "Avanti" e "Fine" per creare il file. Ripulisci il codice iniziale rimuovendo i commenti non necessari e allineando le parentesi.

Innanzitutto, definiremo i parametri di input per il nostro EA. Questi includeranno la dimensione del lotto, lo stop loss, il take profit e il periodo e l'offset per il Donchian Channel. Definire questi input utilizzando i tipi appropriati e impostare valori e commenti predefiniti per ciascun input. Successivamente, codificheremo la funzione OnInit(). All'interno di questa funzione, inizializzeremo l'indicatore Donchian Channel chiamando la funzione iCustom() con i parametri necessari.

Creare variabili per memorizzare la maniglia dell'indicatore, i valori della banda superiore e i valori della banda inferiore. Utilizzare la funzione ArraySetAsSeries() per impostare gli array come serie per garantire un'indicizzazione corretta. Passiamo ora alla codifica della funzione principale OnTick(), che gestirà la logica di trading.

Inizia controllando se ci sono abbastanza barre per calcolare il canale di Donchian. In caso contrario, ritorna con zero. Ottenere i valori di banda superiore e inferiore correnti dall'indicatore utilizzando la funzione CopyBuffer(). Ora controlleremo un segnale di acquisto. Se il prezzo supera la banda superiore, apri una posizione di vendita utilizzando la funzione OrderSend(). Imposta il tipo di ordine appropriato (OP_SELL), la dimensione del lotto, lo stop loss e i livelli di take profit. Ricordarsi di gestire i potenziali errori restituiti dalla funzione OrderSend().

Allo stesso modo, controlla se c'è un segnale di vendita. Se il prezzo supera la banda inferiore, apri una posizione di acquisto utilizzando la funzione OrderSend(). Imposta il tipo di ordine appropriato (OP_BUY), la dimensione del lotto, i livelli di stop loss e take profit.

Compilare il codice per assicurarsi che non vi siano errori o avvisi.

Questo è tutto! Hai completato la codifica per il Donchian Channel Expert Advisor. Ora puoi testare l'EA su un account demo o eseguirne il backtest utilizzando i dati storici per valutarne le prestazioni. Ricordati di testare a fondo il tuo EA e prendere in considerazione l'implementazione di tecniche di gestione del rischio prima di utilizzarlo su un conto di trading reale. Tieni presente che il codice fornito è un'implementazione di base e potrebbe richiedere ulteriori modifiche o miglioramenti per soddisfare le tue specifiche esigenze di trading.

Awesome Donchian Channel trading bot in mql5! | MT5 programming
Awesome Donchian Channel trading bot in mql5! | MT5 programming
  • 2023.02.02
  • www.youtube.com
Today I will show you how to code a Donchian channel trading bot for Metatrader 5. If you are new to mql5, just follow my steps and we will create a fully w...
Motivazione: