Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Sistemi Esperti

Procedura guidata MQL5 - Segnali di trading basati su modelli di candele di inversione - sistema esperto per MetaTrader 5

Visualizzazioni:
317
Valutazioni:
(45)
Pubblicato:
2021.11.15 09:19
\MQL5\Include\Expert\Signal\
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

MQL5 Wizard fornisce la creazione automatica di Expert Advisor (vedi MQL5 Wizard: Creazione di Expert Advisor senza programmazione ).

La classe CSignalCandles fornisce segnali di trading, basati su modelli di candele di inversione. La strategia chiamata "Signals based on reversal candlestick patterns" (quando si crea automaticamente EA nella procedura guidata MQL5).

L'idea del sistema è identificare i modelli di inversione utilizzando il calcolo della candela composita. Il pattern di inversione è simile ai pattern "Hammer" e "Hanging Man" nell'analisi delle candele giapponesi. Ma usa la candela composita invece della candela singola e non ha bisogno del piccolo corpo della candela composita per confermare l'inversione.

Parametri di ingresso:

  • Range - numero massimo di barre, utilizzato nel calcolo della candela composita.
  • Minimum - dimensione minima della candela composita (nei punti convenzionali).
  • ShadowBig e ShadowSmall - ombre (in unità di candele composite).
  • Limit, StopLoss e TakeProfit - prezzo di apertura, livelli SL e TP, i valori definiti rispetto al prezzo di chiusura della candela composita (unità di candela composita).
  • Expiration - tempo di scadenza dell'ordine (in barre), utilizzato nel trading con ordini in pending (Limite!=0.0).

I modelli di candele di inversione sono determinati come segue.

Calcola i parametri della candela composita a partire dalla barra completata di recente (con indice 1) fino al numero di barre, definito dal parametro di input Range. Se la dimensione della candela composita è maggiore del valore, specificato dal parametro di input Minimo, verifica le condizioni di inversione della candela composita mediante l'analisi delle sue ombre.

Il potere ribassista è caratterizzato dalla dimensione dell'ombra superiore della candela composita, il potere rialzista è caratterizzato dalla dimensione dell'ombra inferiore.

  • Per confermare l'inversione del trend ribassista (e l'inizio del rialzista) è necessario quanto segue: la dimensione dell'ombra inferiore (bulls power) deve essere maggiore del valore, definito dal parametro di input ShadowBig. La dimensione dell'ombra superiore (bears power) deve essere inferiore al valore, definito dal parametro di input ShadowSmall.
  • Per confermare l'inversione del trend rialzista (e l'inizio del ribassista) è necessario quanto segue: la dimensione dell'ombra superiore (bears power) deve essere maggiore del valore, definito dal parametro di input ShadowBig. La dimensione dell'ombra inferiore (bulls power) deve essere inferiore al valore, definito dal parametro di input ShadowSmall.

Oltre alla strategia di inversione, è possibile utilizzare le strategie di breakdown specificando il valore negativo del parametro di input Limit (vedi Wizard MQL5 - Segnali di trading basati su Crossover di due EMA con filtro orario intraday ).

A seconda del Limite, vengono utilizzate tre diverse modalità di ingresso nel mercato:

  1. Limite>0. Entrerà in un movimento all'indietro sul prezzo, migliore del prezzo di mercato (gli ordini in pending Buy Limit o Sell Limit verranno piazzati a seconda del segnale di trading)
  2. Limite<0. Entrerà nella direzione del movimento del prezzo (gli ordini in pending Buy Stop o Sell Stop verranno utilizzati a seconda del segnale di trading).
  3. Limite=0. Si scambierà utilizzando i prezzi di mercato.

Questa strategia è implementata nella classe CSignalCandles.

Figura 1. Segnali di trading, basati su modelli di candele di inversione

Figura 1. Segnali di trading, basati su modelli di candele di inversione


Segnali di trading

I segnali di trading sono implementati nella classe CSignalCandles, c'è una funzione Candle(), utilizzata per l'analisi:

int  Candle(int ind); // Returns the positive/negative number depending on type of the composite candle
                        // the returned value is the number of bars (candles) in the composite candle (starting from ind)

Diverse candele (bar) possono essere utilizzate nella costruzione della candela composita. Il numero minimo di barre è definito dal parametro Range. In alcuni casi, la candela composita può essere formata con candele, inferiori a Range (quando le condizioni di dimensione/ombre sono soddisfatte). La funzione Candle restituisce 0 se non è possibile formare la candela composita.


1. Apri una posizione long

Per aprire una posizione long, è necessaria una candela composita rialzista. La funzione lo controlla e ritorna se la candela composita non è ancora formata o se la candela composita è ribassista. Altrimenti, calcola la dimensione composita della candela (necessaria per il calcolo dei livelli di prezzo, SL e TP) e calcola i livelli di prezzo per l'ordine pendente.

Si noti che il tipo di ordine pendente (Buy Limit o Buy Stop) dipende dal segno del parametro di input Limit (se Limit=0 o |price-ask|<stops level, piazzerà un ordine di acquisto a mercato, se Limit>0, piazzerà l'ordine pendente Buy Limit, se Limit<0, l'ordine pendente Buy Stop sarà piazzato).

//+------------------------------------------------------------------+
//| Checks conditions to open long position (buy)                    |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- check the fact of the bullish composite candle formation 
   if(Candle(1)<=0) return(false);
//--- get the size of the composite candle
   double size=m_high_composite-m_low_composite;
//--- calculate the price of pending order
   price=m_symbol.NormalizePrice(m_symbol.Ask()-m_limit*size);
//--- calculate Stop Loss price
   sl   =m_symbol.NormalizePrice(price-m_stop_loss*size);
//--- calculate Take Profit price
   tp   =m_symbol.NormalizePrice(price+m_take_profit*size);
//--- set order expiration time
   expiration+=m_expiration*PeriodSeconds(m_period);
//--- the conditions are satisfied, return true
   return(true);
  }

2. Chiude posizione long

Se la candela composita ribassista si è formata, la posizione lunga viene chiusa.

//+------------------------------------------------------------------+
//| Checks conditions to close long position                         |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseLong(double& price)
  {
//--- check the fact of the bearish composite candle formation 
   if(Candle(1)>=0) return(false);
//---
   price=0.0;
//--- the conditions are satisfied, return true
   return(true);
  }


3. Apri posizione short

La candela composita ribassista deve essere formata per aprire una posizione corta. Se la candela composita non è formata, o non è ribassista, ritorna. Inoltre determiniamo la sua dimensione e calcoliamo i livelli di prezzo dell'ordine pendente

(il tipo di ordine dipende dal segno del parametro di ingresso Limit, see "Open long position").

//+------------------------------------------------------------------+
//| Checks conditions to open short position (sell)                  |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
//--- check the fact of the bearish composite candle formation 
   if(Candle(1)>=0) return(false);
//--- get the size of the composite candle
   double size=m_high_composite-m_low_composite;
//--- calculate the price of pending order
   price=m_symbol.NormalizePrice(m_symbol.Bid()+m_limit*size);
//--- calculate Stop Loss price
   sl   =m_symbol.NormalizePrice(price+m_stop_loss*size);
//--- calculate Take Profit price
   tp   =m_symbol.NormalizePrice(price-m_take_profit*size);
//--- set order expiration time
   expiration+=m_expiration*PeriodSeconds(m_period);

//--- the conditions are satisfied, return true   return(true);
  }


4. Chiude posizione short

Se la candela composita rialzista si è formata, la posizione corta è chiusa.

//+------------------------------------------------------------------+
//| Checks conditions to close short position                        |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseShort(double& price)
  {
//--- check the fact of the bullish composite candle formation 
  if(Candle(1)<=0) return(false);
//---
   price=0.0;
//--- the conditions are satisfied, return true
   return(true);
  }

Creating Expert Advisor using MQL5 Wizard

Per creare un robot di trading basato sulla strategia è necessario scegliere le proprietà del segnale come " Signals based on reversal candlestick patterns " nell'opzione "Creazione di Expert Advisor pronti" della procedura guidata MQL5 :

Figura 2. Selezionare "Segnali basati su modelli di candele di inversione nella procedura guidata MQL5' title=

Figura 2. Selezionare "Segnali basati su modelli di candele di inversione nella procedura guidata MQL5

Successivamente devi specificare l' algoritmo di trailing stop necessario e il sistema di gestione del denaro e del rischio . Il codice di Expert Advisor verrà creato automaticamente, puoi compilarlo e testarlo in Strategy Tester del terminale client MetaTrader 5.


Risultati dei test

Consideriamo il backtesting dell'Expert Advisor su dati storici (EURUSD M15, periodo di test: 1.1.2010-05.01.2011, Range=3, Minimum=50, ShadowBig=0.5, ShadowSmall=0.2, Limit=0, StopLoss=2.0, TakeProfit =1.0, Scadenza=4).

Nella creazione di Expert Advisor abbiamo utilizzato il volume fisso ( Trading Fixed Lot , 0.1), non viene utilizzato l'algoritmo Trailing Stop ( Trailing non utilizzato ).

Figura 3. Risultati dei test dell'Expert Advisor con segnali di trading, basati sui modelli di candele di inversione

Figura 3. Risultati dei test dell'Expert Advisor con segnali di trading, basati su modelli di candele di inversione


Allegati: la classe SignalCandles.mqh con CSignalCandles deve essere posizionata nella cartella terminal_data_folder\MQL5\Include\Expert\Signal.

Le candele_esperte.mq5 contiene il codice dell'Expert Advisor, creato utilizzando MQL5 Wizard.


Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/268

MQL5 Wizard - Segnali di trading basati sul crossover delle linee dell'indicatore Alligator MQL5 Wizard - Segnali di trading basati sul crossover delle linee dell'indicatore Alligator

Vengono considerati i segnali di trading basati sul crossover delle linee dell'indicatore tecnico Alligator. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

MQL5 Wizard - Segnali commerciali basati sul crossover di due EMA con filtro temporale intraday MQL5 Wizard - Segnali commerciali basati sul crossover di due EMA con filtro temporale intraday

Vengono considerati i segnali di trading basati sull'incrocio dei prezzi di due medie mobili lisciate esponenzialmente con filtro intraday. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

MQL5 Wizard - Trade Signals Based on 3 Black Crows/3 White Soldiers + Stochastic MQL5 Wizard - Trade Signals Based on 3 Black Crows/3 White Soldiers + Stochastic

Vengono considerati i segnali di trading basati sul pattern di candele "3 Black Crows/3 White Soldiers", confermato dall'indicatore stocastico. Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.

MQL5 Wizzard - Segnali di trading basati su 3 Black Crows/3 White Soldiers + CCI MQL5 Wizzard - Segnali di trading basati su 3 Black Crows/3 White Soldiers + CCI

Vengono presi in considerazione i segnali di trading basati sul pattern di candele "3 Black Crows/3 White Soldiers", confermato dall'indicatore Commodity Channel Index (CCI). Il codice dell'Expert Advisor basato su questa strategia può essere generato automaticamente utilizzando il Wizard MQL5.