Il MQL5 Wizard è uno strumento prezioso che consente di creare Expert Advisor (EA) pronti all'uso basati sulle classi della libreria standard fornite con il terminale client (per approfondire, leggi Creazione di Expert Advisor in MQL5 Wizard). Questo strumento ti permette di verificare rapidamente le tue idee di trading, basta creare la tua classe di segnali di trading. La struttura di questa classe e un esempio possono essere trovati nell'articolo MQL5 Wizard: Come Creare un Modulo di Segnali di Trading.
L'idea di base è la seguente: la classe dei segnali di trading deriva da CExpertSignal. È necessario sovrascrivere i metodi virtuali LongCondition() e ShortCondition() con i propri metodi.
Un interessante libro è "Strategie dei Migliori Trader" (in russo), dove vengono trattate molte strategie di trading. Qui ci concentreremo sui modelli di candela di inversione, confermati da Stocastico, CCI, MFI e RSI.
Il modo migliore è creare una classe separata, derivata da CExpertSignal, per controllare la formazione dei modelli di candela. Per confermare i segnali di trading generati dai modelli di candela, è sufficiente scrivere una classe derivata da CCandlePattern e aggiungere le funzionalità necessarie (ad esempio, conferma tramite oscillatori).
Qui considereremo i segnali basati sul modello di candela di inversione "3 Corvi Neri/3 Soldati Bianchi", confermato dall'indicatore Stocastico. Il modulo dei segnali di trading è basato sulla classe CCandlePattern, ecco un semplice esempio del suo utilizzo per la creazione di segnali di trading con i modelli di candela.
1. Modelli di candela di inversione: "3 Corvi Neri" e "3 Soldati Bianchi"
1.1. 3 Corvi Neri
Un modello di candela ribassista utilizzato per prevedere l'inversione dell'attuale trend rialzista. Questo modello è composto da tre candele consecutive con corpo lungo che si sono chiuse al di sotto del giorno precedente, con ogni apertura che avviene all'interno del corpo della candela precedente.

Figura 1. Modello di candela "3 Corvi Neri"
Il riconoscimento del modello "3 Corvi Neri" è implementato nel metodo CheckPatternThreeBlackCrows della classe CCandlePattern:
//+------------------------------------------------------------------+ //| Controlla la formazione del modello di candela "3 Corvi Neri" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeBlackCrows() { //--- 3 Corvi Neri if((Open(3)-Close(3)>AvgBody(1)) && // (long black) (Open(2)-Close(2)>AvgBody(1)) && (Open(1)-Close(1)>AvgBody(1)) && (MidPoint(2)<MidPoint(3)) && // (lower midpoints) (MidPoint(1)<MidPoint(2))) return(true); //--- return(false); }
Il metodo CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) della classe CCandlePattern viene utilizzato per controllare la formazione del modello di candela "3 Corvi Neri".
1.2. 3 Soldati Bianchi
Un modello di candela rialzista utilizzato per prevedere l'inversione dell'attuale trend ribassista. Questo modello è composto da tre candele consecutive con corpo lungo che si sono chiuse al di sopra del giorno precedente, con ogni apertura che avviene all'interno del corpo della candela precedente.
Il modello è valido fintanto che la candela del giorno due apre nella metà superiore dell'intervallo del giorno uno. Alla fine del giorno due, dovrebbe chiudere vicino al suo massimo, lasciando un'ombra superiore molto piccola o inesistente. Lo stesso modello viene poi ripetuto nel giorno tre.

Figura 2. Modello di candela "3 Soldati Bianchi"
Ecco il metodo per il riconoscimento del modello "3 Soldati Bianchi":
//+------------------------------------------------------------------+ //| Controlla la formazione del modello di candela "3 Soldati Bianchi" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternThreeWhiteSoldiers() { //--- 3 Soldati Bianchi if((Close(3)-Open(3)>AvgBody(1)) && // long white (Close(2)-Open(2)>AvgBody(1)) && (Close(1)-Open(1)>AvgBody(1)) && (MidPoint(2)>MidPoint(3)) && // higher midpoints (MidPoint(1)>MidPoint(2))) return(true); //--- return(false); }
Il metodo CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) della classe CCandlePattern viene utilizzato per controllare la formazione del modello di candela "3 Soldati Bianchi".
2. Segnali di Trading, Confermati dall'Indicatore Stocastico
I segnali di trading per aprire posizioni lunghe o corte devono essere confermati dall'oscillatore Stocastico. La linea %D deve essere maggiore/minore dei corrispondenti livelli critici (30 o 70).
La chiusura delle posizioni aperte dipende dai valori dell'indicatore %D. Può avvenire in 2 casi:
- se la linea %D ha raggiunto il livello critico opposto (80 per posizione lunga e 20 per posizione corta)
- se il segnale inverso non è confermato (quando la linea %D raggiunge i seguenti livelli: 20 per posizione lunga e 80 per posizione corta)

Fig. 3. Modello '3 Soldati Bianchi' confermato dall'indicatore stocastico
Controllo delle condizioni di trading per ingresso e uscita è implementato in due metodi:
- int CBC_WS_Stoch::LongCondition() - controlla le condizioni per aprire una posizione lunga (restituisce 80) e per chiudere la posizione corta (restituisce 40);
- int CBC_WS_Stoch::ShortCondition() - controlla le condizioni per aprire una posizione corta (restituisce 80) e per chiudere la posizione lunga (restituisce 40).
2.1. Apertura posizione lunga/Chiusura posizione corta
-
La formazione del modello "3 Soldati Bianchi" deve essere confermata dall'oscillatore Stocastico: StochSignal(1)<30 (il valore della linea di segnale dell'indicatore stocastico dell'ultima barra completata deve essere inferiore a 30).
-
La posizione corta deve essere chiusa se la linea di segnale dell'indicatore Stocastico ha superato i livelli 20 o 80 verso l'alto.
//+------------------------------------------------------------------+ //| Controlla le condizioni per l'ingresso e l'uscita dal mercato | //| 1) Entrata nel mercato (apertura posizione lunga, risultato=80) | //| 2) Uscita dal mercato (chiusura posizione corta, risultato=40) | //+------------------------------------------------------------------+ int CBC_WS_Stoch::LongCondition() { int result=0; //--- idx può essere usato per determinare la modalità di lavoro dell'Expert Advisor //--- idx=0 - in questo caso l'EA controlla le condizioni di trading ad ogni tick //--- idx=1 - in questo caso l'EA controlla le condizioni di trading solo a barre di notizie int idx =StartIndex(); //--- controllo delle condizioni per aprire posizione lunga //--- formazione del modello 3 Soldati Bianchi e linea di segnale<30 if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (StochSignal(1)<30)) result=80; //--- verifica delle condizioni per chiudere la posizione corta //--- crossover della linea di segnale nei livelli di ipercomprato/ipervenduto (verso il basso 20, verso l'alto 80) if((((StochSignal(1)>20) && (StochSignal(2)<20)) || ((StochSignal(1)>80) && (StochSignal(2)<80)))) result=40; //--- restituisci il risultato return(result); }
2.2. Apertura posizione corta/Chiusura posizione lunga
-
La formazione del modello "3 Corvi Neri" deve essere confermata dall'oscillatore Stocastico: StochSignal(1)>70 (il valore della linea di segnale dell'indicatore stocastico dell'ultima barra completata deve essere maggiore di 70).
-
La posizione lunga deve essere chiusa se la linea di segnale dell'indicatore Stocastico ha incrociato verso il basso i livelli 80 o 20.
//+------------------------------------------------------------------+ //| Controlla le condizioni per l'ingresso e l'uscita dal mercato | //| 1) Entrata nel mercato (apertura posizione corta, risultato=80) | //| 2) Uscita dal mercato (chiusura posizione lunga, risultato=40) | //+------------------------------------------------------------------+ int CBC_WS_Stoch::ShortCondition() { int result=0; //--- idx può essere usato per determinare la modalità di lavoro dell'Expert Advisor //--- idx=0 - in questo caso l'EA controlla le condizioni di trading ad ogni tick //--- idx=1 - in questo caso l'EA controlla le condizioni di trading solo a barre di notizie int idx =StartIndex(); //--- controllo delle condizioni per aprire posizione corta //--- formazione del modello 3 Corvi Neri e linea di segnale>70 if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (StochSignal(1)>70)) result=80; //--- verifica delle condizioni per chiudere la posizione lunga //--- crossover della linea di segnale nei livelli di ipercomprato/ipervenduto (verso il basso 80, verso l'alto 20) if((((StochSignal(1)<80) && (StochSignal(2)>80)) || ((StochSignal(1)<20) && (StochSignal(2)>20)))) result=40; //--- restituisci il risultato return(result); }
2.3. Creazione dell'Expert Advisor utilizzando MQL5 Wizard
La classe CBC_WS_Stoch non è inclusa nelle classi della Libreria Standard, per utilizzarla, è necessario scaricare il file acbc_ws_stoch.mqh (vedi allegati) e salvarlo nella cartella terminal_client_data\MQL5\Include\Expert\Signal\MySignals. Lo stesso deve essere fatto con il file candlepatterns.mqh. Puoi utilizzarlo in MQL5 Wizard dopo il riavvio di MetaEditor.
Per creare un Expert Advisor, avvia il MQL5 Wizard:

Figura 4. Creazione dell'Expert Advisor utilizzando MQL5 Wizard
Specifica il nome dell'Expert Advisor:

Figura 5. Proprietà generali dell'Expert Advisor
Dopo di che, dobbiamo selezionare i moduli di segnali di trading utilizzati.

Figura 6. Proprietà del segnale dell'Expert Advisor
Nel nostro caso utilizziamo solo un modulo di segnali di trading.
Aggiunta del modulo di segnali Basato su 3 Corvi Neri/3 Soldati Bianchi confermati da Stocastico:

Figura 7. Proprietà del segnale dell'Expert Advisor
Modulo dei segnali di trading aggiunto:

Figura 8. Proprietà del segnale dell'Expert Advisor
Puoi selezionare qualsiasi proprietà di trailing, ma utilizzeremo
Post correlati
- Dematus: Il Sistema di Trading per MetaTrader 5
- MQL5 Wizard: Crea Trading Signals con 3 Corvi Neri/3 Soldati Bianchi e RSI
- Guida Pratica all'Utilizzo di MQL5 Wizard per Strategie di Trading con Stochastic
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- Utilizzare MQL5 Wizard per Trading con Dark Cloud Cover e Piercing Line