Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Twitter !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Experts

Assistant MQL5 - Signaux de Trading Basés sur des Modèles de Renversement de Bougies - expert pour MetaTrader 5

Vues:
456
Note:
(45)
Publié:
2022.01.11 13:15
\MQL5\Include\Expert\Signal\
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

L'Assistant MQL5 permet la création automatique d'Expert Advisors (voir Assistant MQL5 : Création d'Expert Advisors sans programmation).

La classe CSignalCandles fournit des signaux de trading, basés sur des modèles de renversement des bougies. La stratégie appelée "Signaux basés sur des modèles de renversement de chandeliers" (lors de la création automatique d'EA dans l'Assistant MQL5).

L'idée du système est d'identifier les modèles de retournement en utilisant le calcul de la bougie composite. Les modèles de retournement (ou d'inversion) sont similaires aux modèles "Hammer" et "Hanging Man" dans l'analyse des chandeliers japonais. Mais il utilise la bougie composite à la place de la bougie unique et n'a pas besoin du petit corps de la bougie composite pour confirmer l'inversion.

Paramètres d'entrée :

  • Range - nombre maximal de barres, utilisé dans le calcul de la bougie composite.
  • Minimum - taille minimale de la bougie composite (en points conventionnels).
  • ShadowBig et ShadowSmall - ombres (en unités de bougies composites).
  • Limit, StopLoss et TakeProfit - prix d'ouverture, niveaux SL et TP, les valeurs définies par rapport au prix de clôture de la bougie composite (unités de bougie composite).
  • Expiration - délai d'expiration de l'ordre (en barres), utilisé dans le trading avec les ordres en attente (Limit!=0.0).

Les modèles de retournement de bougies sont déterminés comme suit.

Il calcule les paramètres de bougie composite à partir de la barre récemment terminée (avec l'indice 1) jusqu'au nombre de barres, défini par le paramètre d'entrée Range. Si la taille de la bougie composite est supérieure à la valeur spécifiée par le paramètre d'entrée Minimum, il vérifie les conditions d'inversion de la bougie composite en analysant ses ombres.

La puissance des baissiers est caractérisée par la taille de l'ombre supérieure de la bougie composite, la puissance des haussiers est caractérisée par la taille de l'ombre inférieure.

  • Pour confirmer le renversement de la tendance baissière (et le début de la tendance haussière), il faut ce qui suit : la taille de l'ombre inférieure (pouvoir des haussiers) doit être supérieure à la valeur, définie par le paramètre d'entrée ShadowBig. La taille de l'ombre supérieure (puissance des baissiers) doit être inférieure à la valeur définie par le paramètre d'entrée ShadowSmall.
  • Pour confirmer l'inversion de la tendance haussière (et le début de la baisse), il faut ce qui suit : la taille de l'ombre supérieure (puissance des baissiers) doit être supérieure à la valeur, définie par le paramètre d'entrée ShadowBig. La taille de l'ombre inférieure (pouvoir des haussiers) doit être inférieure à la valeur définie par le paramètre d'entrée ShadowSmall.

En plus de la stratégie d'inversion, il est possible d'utiliser les stratégies de répartition en spécifiant la valeur négative du paramètre d'entrée Limit (voir Assistant MQL5 - Signaux de Trading Basés sur le Croisement de deux EMA avec filtre de temps intraday).

En fonction de la Limite, trois modes différents d'entrée sur le marché sont utilisés :

  1. Limit>0. Il entrera en mouvement de retour sur le prix, meilleur que le prix du marché (les ordres en attente de limite d'achat ou de de trading)
  2. Limit<0. Il entrera dans la direction du mouvement des prix (les ordres en attente Buy Stop ou Sell Stop seront utilisés en fonction du signal de trading).
  3. Limit=0. Le trade utilisera les prix du marché.

Cette stratégie est implémentée dans la classe CSignalCandles.

Figure 1. Signaux de trading, basés sur des modèles de renversement de bougies

Figure 1. Signaux de trading, basés sur des modèles de renversement de bougies


Signaux de trading

Les signaux de trading sont implémentés dans la classe CSignalCandles, il existe une fonction Candle(), utilisée pour l'analyse :

int  Candle(int ind); // Renvoie le nombre positif/négatif selon le type de bougie composite
                        // la valeur renvoyée est le nombre de barres (bougies) dans la bougie composite (à partir de ind)

Plusieurs bougies (barre) peuvent être utilisées dans la construction de la bougie composite. Le nombre minimal de barres est défini par le paramètre Range. Dans certains cas, la bougie composite peut être formée avec des bougies inférieures à Range (lorsque les conditions taille/ombres sont satisfaites). La fonction Candle renvoie 0 si la bougie composite ne peut pas être formée.


1. Ouverture d'une position longue

Pour ouvrir une position longue, la bougie composite haussière est nécessaire. La fonction le vérifie et retourne si la bougie composite n'est pas encore formée ou si la bougie composite est baissière. De plus, il calcule la taille de la bougie composite (nécessaire pour le calcul des niveaux de prix, SL et TP) et calcule les niveaux de prix pour l'ordre en attente.

Notez que le type d'ordre en attente (Buy Limit ou Buy Stop) dépend du signe du paramètre d'entrée Limit (si Limit=0 ou |price-ask|<niveau des arrêts, il placera un ordre d'achat sur le marché, si Limit>0, il passera l'ordre en attente Buy Limit, si Limit<0, l'ordre en attente Buy Stop sera placé).

//+------------------------------------------------------------------+
//| Vérifie les conditions d'ouverture d'une position longue (achat) |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenLong(double& prix,double& sl,double& tp,datetime& expiration)
{
//--- vérification de la formation de bougie composite haussière      if(Candle(1)<=0) return(false);
//--- obtient la taille de la bougie composite
   double size=m_high_composite-m_low_composite ;
//--- calcule le prix de l'ordre en attente
   price=m_symbol.NormalizePrice(m_symbol.Ask()-m_limit*size);
//--- calcule le prix du Stop Loss
   sl   =m_symbol.NormalizePrice(price-m_stop_loss*size);
//--- calcule le prix du Take Profit
   tp   =m_symbol.NormalizePrice(price+m_take_profit*size);
//--- définit l'heure d'expiration de l'ordre
   expiration+=m_expiration*PeriodSeconds(m_period);
//--- les conditions sont remplies, renvoient vrai
   return(true);
}

2. Fermeture d'une position longue

Si la bougie composite baissière s'est formée, la position longue est fermée.

//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer la position longue            |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseLong(double& prix)
{
//--- vérificartion de la formation de bougie composite baissière   if(Candle(1)>=0) return(false);
//---
   price=0.0 ;
//--- les conditions sont remplies, renvoient vrai
   return(true);
}


3. Ouverture d'une position courte

La bougie composite baissière doit être formée pour ouvrir une position courte. Si la bougie composite ne se forme pas ou si elle n'est pas baissière, s'arrêter. Sinon, nous déterminons sa taille et calculons les niveaux de prix de l'ordre en attente

(le type d'ordre dépend du signe du paramètre d'entrée Limit, voir "Ouvrir une position longue").

//+------------------------------------------------------------------+
//| Vérifie les conditions d'ouverture d'une position courte (vente) |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckOpenShort(double& prix,double& sl,double& tp,datetime& expiration)
{
//--- vérification de la formation de bougie composite baissière   if(Candle(1)>=0) return(false);
//--- obtient la taille de la bougie composite
   double size=m_high_composite-m_low_composite ;
//--- calcule le prix de l'ordre en attente
   price=m_symbol.NormalizePrice(m_symbol.Bid()+m_limit*size);
//--- calcule le prix du Stop Loss
   sl   =m_symbol.NormalizePrice(price+m_stop_loss*size);
//--- calcule le prix du Take Profit
   tp   =m_symbol.NormalizePrice(price-m_take_profit*size);
//--- définit l'heure d'expiration de la commande
   expiration+=m_expiration*PeriodSeconds(m_period);

//--- les conditions sont remplies, retourne vrai   return(true);
}


4. Fermeture d'une position courte

Si la bougie composite haussière s'est formée, la position courte est fermée.

//+------------------------------------------------------------------+
//| Vérifie les conditions pour fermer la position courte            |
//+------------------------------------------------------------------+
bool CSignalCandles::CheckCloseShort(double& prix)
{
//--- vérification de la formation de bougie composite haussière 
  if(Candle(1)<=0) return(false);
//---
   price=0.0;
//--- les conditions sont remplies, renvoient vrai
   return(true);
  }

Création d'un Expert Advisor à l'aide de l'Assistant MQL5

Pour créer un robot de trading basé sur la stratégie, vous devez choisir les propriétés du signal comme "Signaux basés sur des modèles de retournement de bougies" dans l'option "Créer des Expert Advisors prêts à l'emploi" de l'Assistant MQL5 :

Figure 2. Sélectionnez "Signaux basés sur des modèles de retournement de bougies dans l'Assistant MQL5

Figure 2. Sélectionnez "Signaux basés sur des modèles de retournement de bougies dans l'Assistant MQL5

Ensuite, vous devez spécifier l'algorithme du stop suiveur et le système de gestion des fonds et des risques. Le code de l'Expert Advisor sera créé automatiquement, vous pouvez le compiler et le tester dans le Strategy Tester du terminal client MetaTrader 5.


Résultats des Tests

Considérons le backtesting de l'Expert Advisor sur les données historiques (EURUSD M15, période de 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, Expiration=4).

Lors de la création de l'Expert Advisor, nous avons utilisé le volume fixe (Trading Fixed Lot, 0.1), l'algorithme Trailing Stop n'est pas utilisé (Trailing not used).

Figure 3. Résultats des tests de l'Expert Advisor avec des signaux de trading, basés sur les modèles de retournement de bougies

Figure 3. Test des résultats de l'Expert Advisor avec des signaux de trading, basés sur des modèles de chandeliers d'inversion


Pièces jointes : La classe SignalCandles.mqh avec CSignalCandles doit être placée dans le dossier terminal_data_folder\MQL5\Include\Expert\Signal.

L'expert_candles.mq5 contient le code de l'Expert Advisor, créé à l'aide de l'Assistant MQL5.

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/268

Assistant MQL5 - Signaux de Trading Basés sur le Croisement des Lignes de l'Indicateur Alligator Assistant MQL5 - Signaux de Trading Basés sur le Croisement des Lignes de l'Indicateur Alligator

Les signaux de trading basés sur le croisement des lignes de l'indicateur technique Alligator sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.

Assistant MQL5 - Signaux de Trading Basés sur le Croisement de Deux EMA en intraday Assistant MQL5 - Signaux de Trading Basés sur le Croisement de Deux EMA en intraday

Les signaux de trading basés sur le croisement des prix de deux moyennes mobiles lissées de manière exponentielle en intraday sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.

Assistant MQL5 - Signaux de Trading Basés sur 3 Corbeaux Noirs/3 Soldats Blancs + Stochastique Assistant MQL5 - Signaux de Trading Basés sur 3 Corbeaux Noirs/3 Soldats Blancs + Stochastique

Les signaux de trading basés sur le modèle de chandelier "3 Black Crows/3 White Soldiers", confirmés par l'indicateur stochastique, sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.

Assistant MQL5 - Signaux de Trading Basés sur 3 Black Crows/3 White Soldiers + CCI Assistant MQL5 - Signaux de Trading Basés sur 3 Black Crows/3 White Soldiers + CCI

Les signaux de trading basés sur le modèle de chandelier "3 Black Crows/3 White Soldiers", confirmé par l'indicateur Commodity Channel Index (CCI) sont pris en compte. Le code de l'Expert Advisor basé sur cette stratégie peut être généré automatiquement à l'aide de l'Assistant MQL5.