
Apprenez à concevoir un système de trading basé sur l’Alligator
Introduction
Voici un nouvel article de notre série sur la façon de concevoir un système de trading basé sur les indicateurs techniques les plus populaires. Dans cet article, nous apprendrons en détail l'indicateur Alligator en apprenant ce qu'il est, qu'il mesure, comment nous pouvons le calculer et comment nous pouvons le lire et l'utiliser. Ensuite, nous créerons un système de trading basé sur quelques stratégies simples basées sur l'objectif principal de cet indicateur. Nous allons couvrir cet indicateur au travers des sujets suivants :
- Définition de l’Alligator
- Stratégie Alligator
- Plan de la stratégie Alligator
- Système de trading Alligator
- Conclusion
Je vous conseille d'essayer d'appliquer ce que vous avez appris par vous-même notamment les codes de cet article pour développer vos compétences en programmation car c'est une étape importante pour atteindre cet objectif de développement. Nous utiliserons dans cet article l'IDE MQL5 (MetaQuotes Language 5) qui est intégré au terminal de trading MetaTrader 5. Si vous ne savez pas comment télécharger MetaTrader 5 et comment utiliser MQL5, vous pouvez lire le sujet de l'écriture du code MQL5. dans MetaEditor pour en savoir plus.
Avertissement : Toutes les informations données dans cet article sont fournies "en l'état", uniquement à des fins d'information et ne sont aucunement données à des fins de trading ou de conseil. Ces informations ne garantissent aucun type de résultat. Si vous utilisez le contenu de cet article sur l'un de vos comptes de trading, vous le faites à vos propres risques et vous en serez le seul responsable.
Définition de l’Alligator
L'indicateur technique Alligator, développé par Bill Williams, suit les tendances. Il est basé sur le fait que la tendance n'est pas la plus longue période des instruments des marchés financiers et qu'elle ne représente que 15 à 30% du temps, alors que les déplacements latéraux des pris occupent 70 à 85% du temps. Nous avons ainsi parfois une tendance soit à la hausse, soit à la baisse, mais la plupart du temps nous avons des périodes variables. Si vous souhaitez en savoir plus sur les tendances, leurs types et comment nous pouvons les identifier, vous pouvez lire la définition des tendancesde mon article précédent. Cet article vous sera utile dans ce contexte. Il utilise certains nombres de Fibonacci dans le calcul comme nous le verrons : 3 moyennes mobiles lissées sur 5, 8 et 13 périodes. Voici les 3 moyennes mobiles lissées de l'indicateur Alligator :
- La Mâchoire de l'Alligator (Jaw)
- Les Dents de l’Alligator (Teeth)
- Les Lèvres de l'Alligator (Lips)
Cet indicateur peut être calculé manuellement en suivant les étapes suivantes :
La Mâchoire de l'Alligator = SMMA (Prix médian, 13, 8)
Les Dents de l'Alligator = SMA (Prix médian, 8, 5)
Les Lèvres de l’Alligator = SMMA (Prix médian, 5, 3)
Prix médian = (Haut + Bas)/2
Avec :
SMMA = Moyenne Mobile lissée
Prix médian = le prix médian des données
Haut = le prix le plus élevé
Bas = le prix le plus bas
Suite aux étapes précédentes, nous obtiendrons l'indicateur Alligator. Nous n'avons pas besoin de le calculer manuellement car il est disponible comme indicateur intégré dans le terminal MetaTrader 5. Nous n’avons qu’à le choisir parmi les indicateurs techniques disponibles :
Lors de l'ouverture du terminal MetaTrader 5, aller sur Insertion --> Indicateurs --> Bill Williams --> Alligator.
La fenêtre des paramètres sera alors affichée :
1 - la période des Mâchoires de l'Alligator.
2 - le décalage horizontal des Mâchoires de l'Alligator.
3 - la période des Dents de l'Alligator.
4 - le décalage horizontal des Dents de l'Alligator.
5 - la période des Lèvres de l'Alligator.
6 - le décalage horizontal des Lèvres de l'Alligator.
7 - la méthode de lissage.
8 - le type de prix utilisable.
Grâce à la fenêtre suivante, nous pouvons déterminer le style de l'indicateur :
1 - la couleur de la ligne des Mâchoires.
2 - le type de ligne des Mâchoires.
3 - l'épaisseur de la ligne des Mâchoires.
4 - la couleur de la ligne des Dents.
5 - le type de ligne des Dents.
6 - l'épaisseur de la ligne des Dents.
7 - la couleur du trait des Lèvres.
8 - le type de ligne des Lèvres.
9 - l'épaisseur de la ligne des Lèvres.
Après avoir déterminé tous les paramètres et appuyé sur "OK", l'indicateur est attaché au graphique comme suit :
Comme nous pouvons le voir dans le graphique précédent, l'indicateur est attaché au graphique et 3 lignes sont dessinées :
1 - Les Lèvres de l'Alligator
2 - les Dents de l'Alligator
3 - Les Mâchoires de l'Alligator
On peut lire l'indicateur simplement en observant la position de ces lignes à partir des prix. Si le prix est au-dessus des Lèvres, des Dents, puis des Mâchoires, la tendance est à la hausse. Si le prix est en dessous des Lèvres, des Dents, puis des Mâchoires, la tendance est à la baisse. Si le prix évolue sur les 3 lignes, nous avons une tendance latérale.
Stratégie Alligator
Il existe de nombreuses façons d'utiliser l'indicateur Alligator dans le trading. Je mentionnerai des stratégies simples qui peuvent être utilisées sur la base de l'idée principale de ce sujet à des fins éducatives. Vous devez les tester avant de les utiliser dans votre compte réel pour vous assurer qu'elles sera rentable. Vous constaterez peut-être que vous devez optimiser ces stratégies. Il est normal que vous puissiez le faire pour atteindre la meilleure formule qui peut être utile pour votre style de trading.
Sur la base de cette stratégie, nous devons obtenir des signaux haussiers et baissiers en fonction de conditions spécifiques. Si la valeur des Lèvres est supérieure à la valeur des Dents et à la valeur des Mâchoires, et que, en même temps, la valeur des Dents est supérieure à la valeur des Mâchoires, ce sera un signal haussier. Dans d’autres cas, si la valeur des Lèvres est inférieure à la valeur des Dents et à la valeur des Mâchoires, et que, en même temps, la valeur des Dents est inférieure à la valeur des Mâchoires, ce sera un signal baissier.
Lèvres > valeur des Dents, Lèvres > valeur des Mâchoires et Dents > valeur des Mâchoires --> haussier
Lèvres < valeur des Dents, Lèvres < valeur des Mâchoires et Dents < valeur des Mâchoires --> baissier
Sur la base de cette stratégie, nous devons obtenir des signaux d’achat et de vente en fonction du croisement entre les valeurs des Lèvres, des Dents et de la Mâchoire. Si la valeur des Lèvres est supérieure à la valeur des Dents et à la valeur de la Mâchoire, ce sera un signal d'achat. Dans l’autre scénario, si la valeur des Lèvres est inférieure à la valeur des Dents et des Mâchoires, ce sera un signal de vente.
Lèvres > valeur des Dents, Lèvres > valeur des Mâchoires --> acheter
Lèvres < valeur des Dents, Lèvres < valeur des Mâchoires --> vendre
Sur la base de cette stratégie, nous devons obtenir des signaux d'achat et de vente basés sur le croisement entre les Lèvres, les Dents et les Mâchoires, puis le croisement entre le cours de clôture et la valeur des Dents. Si la ligne des Lèvres est plus basse que les Dents et la Mâchoire, et que le prix de clôture est supérieur à la valeur des Dents, ce sera un signal d'achat. Dans l’autre cas, si la ligne des Lèvres est supérieure aux Dents et à la Mâchoire alors le cours de clôture est inférieur à la valeur des Dents, ce sera un signal de vente.
Lèvres < valeur des Dents, Lèvres < valeur des Mâchoires et cours de clôture > Dents --> acheter
Lèvres > valeur des Dents, Lèvres > valeur des Mâchoires et cours de clôture < Dents --> vendre
Plan de la stratégie Alligator
Nous devons maintenant créer un système de trading basé sur les stratégies mentionnées dans le sujet précédent. Pour cela nous allons concevoir un plan étape par étape.
Selon cette stratégie, nous devons créer un système de trading qui peut être utilisé pour générer des signaux haussiers ou baissiers basés sur la vérification continue des valeurs suivantes :
- Valeur des Lèvres
- Valeur des Dents
- Valeur des Mâchoires
Nous avons besoin que le système de trading détermine les positions de ces valeurs afin de générer des signaux appropriés sur cette base. Si la ligne des Lèvres est supérieure aux Dents et à la Mâchoires et que la ligne des Dents est supérieure aux Mâchoires, le système de trading doit nous renvoyer dans ce cas les valeurs suivantes sous la forme d’un commentaire sur le graphique :
- Haussier
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Dans l’autre cas, si la ligne des Lèvres est plus basse que la ligne des Dents et que la ligne des Mâchoires, et si en même temps, la ligne des Dents est plus basse que la ligne des Mâchoires, le système de trading doit nous renvoyer dans ce cas les valeurs suivantes sous la forme d’un commentaire sur le graphique :
- Baissier
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Ce qui suit est le plan étape par étape de ce système de trading :
Selon cette stratégie, nous devons créer un système de trading qui puisse être utilisé pour générer des signaux d'achat ou de vente basés sur la vérification continue des valeurs suivantes :
- Valeur des Lèvres
- Valeur des Dents
- Valeur des Mâchoires
Si la ligne des Lèvres est supérieure à la valeur des Dents et à la valeur des Mâchoires, le système de trading doit nous renvoyer dans ce cas un commentaire sur le graphique avec les valeurs suivantes :
- Acheter
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Dans l'autre cas, si la ligne des Lèvres est inférieure à la valeur des Dents et à la ligne des Mâchoires, le système de trading doit nous renvoyer un signal avec les valeurs suivantes :
- Vendre
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Ce qui suit est le plan étape par étape de ce système de trading :
Selon cette stratégie, nous devons créer un système de trading pour générer des signaux d'achat et de vente basés sur la vérification des valeurs suivantes :
- Valeur des Lèvres
- Valeur des Dents
- Valeur des Mâchoires
- Prix de clôture
Si la valeur des Lèvres est inférieure à celle des Dents et celle des Mâchoires et si le cours de clôture est devenu supérieur à la valeur des Dents, le système de trading nous renvoyer un commentaire sur le graphique comme signal avec les valeurs suivantes :
- Acheter
- Valeur des Lèvres = n
- Valeur des Dents = n
- Cours de clôture = n
- Valeur des Mâchoires = n
Si la ligne des Lèvres est supérieure à la ligne des Dents et à la ligne des Mâchoires et si le cours de clôture est devenu inférieur à la valeur des Dents, le système de trading doit renvoyer un commentaire sur le graphique comme signal avec les valeurs suivantes :
- Vendre
- Valeur des Lèvres = n
- Valeur des Dents = n
- Cours de clôture = n
- Valeur des Mâchoires = n
Ce qui suit est le plan étape par étape de ce système de trading :
Système de trading Alligator
Nous allons maintenant créer un système de trading pour chaque stratégie mentionnée, à exécuter dans le terminal MetaTrader 5 afin de générer automatiquement les signaux souhaités. Nous allons tout d’abord créer un système de trading de base pour générer un signal suivant les valeurs des composants de l’Alligator à utiliser dans notre système trading. Voici les étapes à suivre pour créer ce type de système :
Création des tableaux pour chacun des composants de l'Alligator (Lèvres, Dents et Mâchoires).
double jawsArray[]; double teethArray[]; double lipsArray[];
Tri des données dans ces tableaux à l'aide de la fonction "ArraySetAsSeries". Ses paramètres sont :
- array[]
- flag
ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true);
Définition de l'Alligator avec la fonction "iAlligator". Ses paramètres sont :
- symbol : nous utiliserons _Symbol pour l'appliquer au symbole actuel.
- period : nous utiliserons _Period pour l’appliquer à la période actuelle.
- jaw_period : pour déterminer la période du calcul des Mâchoires, nous utiliserons 13.
- jaw_shift : pour déterminer le décalage horizontal des Mâchoires, nous utiliserons 8.
- teeth_period : pour déterminer la période de calcul des Dents, nous utiliserons 8.
- teeth_shift : pour déterminer le décalage horizontal des Dents, nous utiliserons 5.
- lip_period : pour déterminer la période du calcul des Lèvres, on utilisera 5.
- lip_shift : pour déterminer le décalage horizontal des Lèvres, nous utiliserons 3.
- ma_method : pour déterminer le type de moyenne mobile, nous utiliserons MODE_SMA.
- apply_price : pour déterminer le type de prix, nous utiliserons PRICE_MEDIAN.
int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN);
Définition des données et stockage des résultats à l'aide de la fonction "CopyBuffer". Ses paramètres sont :
- indicator_handle : pour déterminer le handle de l'indicateur, nous utiliserons alligatorDef.
- buffer_num : pour déterminer le numéro du tampon de l’indicateur, nous utiliserons 0 pour les Mâchoires, 1 pour les Dents et 2 pour les Lèvres.
- start_pos : pour déterminer la position de départ, nous utiliserons 0.
- count : pour déterminer le nombre d’éléments à copier, nous utiliserons 3.
- buffer[] : pour déterminer le tableau destination de la copie, nous utiliserons jawsArray, teethArray et lipsArray.
CopyBuffer(alligatorDef,0,0,3,jawsArray); CopyBuffer(alligatorDef,1,0,3,teethArray); CopyBuffer(alligatorDef,2,0,3,lipsArray);
Obtention de la valeur des 3 composants.
double jawsValue=NormalizeDouble(jawsArray[0],5); double teethValue=NormalizeDouble(teethArray[0],5); double lipsValue=NormalizeDouble(lipsArray[0],5);
Affichage du commentaire avec les 3 composantes de l’indicateur.
Comment("jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue);
Voici le code complet permettant de créer ce système de trading simple :
//+------------------------------------------------------------------+ //| Simple Alligator System.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //-------------------------------------------------------------------- void OnTick() { //creating price array double jawsArray[]; double teethArray[]; double lipsArray[]; //Sorting data ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true); //define Alligator int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN); //define data and store result CopyBuffer(alligatorDef,0,0,3,jawsArray); CopyBuffer(alligatorDef,1,0,3,teethArray); CopyBuffer(alligatorDef,2,0,3,lipsArray); //get value of current data double jawsValue=NormalizeDouble(jawsArray[0],5); double teethValue=NormalizeDouble(teethArray[0],5); double lipsValue=NormalizeDouble(lipsArray[0],5); //comment on the chart Comment("jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); } //+------------------------------------------------------------------+
Après avoir compilé ce code, nous le retrouverons dans le Navigateur dans le dossier Expert Advisors comme suit :
En le glissant-déposant sur le graphique souhaité, la fenêtre de cet EA est affichée :
Après avoir appuyé sur "OK" et avoir coché "Autoriser le Trading Algorithmique", l'EA sera attaché au graphique comme suit :
Comme nous pouvons le voir sur le graphique précédent dans le coin supérieur droit, l'EA est attaché. Nous sommes maintenant prêts à recevoir des signaux. Voici un exemple de test pour vérifier les signaux générés.
Comme nous pouvons le voir dans le graphique précédent, un commentaire est affiché dans le coin supérieur gauche avec les valeurs suivantes :
Valeur des Mâchoires = n
Valeur des Dents = n
Valeur des Lèvres = n
Nous pouvons créer un système de trading basé sur cette stratégie identique au code complet suivant :
//+------------------------------------------------------------------+ //| Alligator Trend Identifier.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //creating three arrays of Alligator components double jawsArray[]; double teethArray[]; double lipsArray[]; //Sorting data ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true); //define Alligator int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN); //define data and store result CopyBuffer(alligatorDef,0,0,13,jawsArray); CopyBuffer(alligatorDef,1,0,13,teethArray); CopyBuffer(alligatorDef,2,0,13,lipsArray); //get value of current data double jawsValue=NormalizeDouble(jawsArray[0],5); double teethValue=NormalizeDouble(teethArray[0],5); double lipsValue=NormalizeDouble(lipsArray[0],5); //conditions of strategy if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue) { Comment("Bullish","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); } if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue) { Comment("Bearish","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); } } //+------------------------------------------------------------------+
Différences dans ce code.
Conditions de la stratégie, en cas de hausse :
if(lipsValue>teethValue && lipsValue>jawsValue && teethValue>jawsValue) { Comment("Bullish","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); }
En cas de baisse :
if(lipsValue<teethValue && lipsValue<jawsValue && teethValue<jawsValue) { Comment("Bearish","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); }
Après avoir compilé ce code et exécuté l'Expert Advisor, nous constaterons que cet EA est attaché au graphique de la même manière :
Comme nous pouvons le voir dans le graphique précédent, l'EA est attaché au graphique dans le coin supérieur droit. Nous sommes prêts à recevoir nos signaux haussiers ou baissiers basés sur cette stratégie. Voici des exemples de ces signaux :
En cas de hausse :
Comme nous pouvons le voir dans le graphique précédent, un commentaire est affiché comme signal dans le coin supérieur droit avec les valeurs suivantes :
- Haussier
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
En cas de baisse :
Comme nous pouvons le voir dans le graphique précédent, nous avons un commentaire comme signal baissier dans le coin supérieur droit avec les valeurs suivantes :
- Baissier
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Nous avons 3 lignes évoluant au-dessus des prix, nous avons donc reçu un signal baissier.
Le code suivant permet de créer un système de trading basé sur cette stratégie :
//+------------------------------------------------------------------+ //| Alligator Signals System .mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //creating three arrays of Alligator components double jawsArray[]; double teethArray[]; double lipsArray[]; //Sorting data ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true); //define Alligator int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN); //define data and store result CopyBuffer(alligatorDef,0,0,13,jawsArray); CopyBuffer(alligatorDef,1,0,13,teethArray); CopyBuffer(alligatorDef,2,0,13,lipsArray); //get value of current data double jawsValue=NormalizeDouble(jawsArray[0],5); double teethValue=NormalizeDouble(teethArray[0],5); double lipsValue=NormalizeDouble(lipsArray[0],5); //conditions of strategy if(lipsValue>teethValue && lipsValue>jawsValue) { Comment("Buy","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); } if(lipsValue<teethValue && lipsValue<jawsValue) { Comment("Sell","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); } } //+------------------------------------------------------------------+
Différences dans ce code.
Conditions de cette stratégie.
En cas de signal d'achat :
if(lipsValue>teethValue && lipsValue>jawsValue) { Comment("Buy","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); }
En cas de signal de vente :
if(lipsValue<teethValue && lipsValue<jawsValue) { Comment("Sell","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "lipsValue = ",lipsValue); }
Après avoir compilé ce code et l'avoir exécuté dans le terminal de trading, nous pouvons le trouver attaché au graphique comme suit :
Nous voyons dans le coin supérieur droit du graphique précédent que l'EA est attaché. Nous sommes prêts à recevoir nos signaux d'achat ou de vente basés sur cette stratégie. Voici des exemples de tests.
En cas de signal d'achat :
Comme nous pouvons le voir, nous avons le signal souhaité avec les valeurs suivantes :
- Acheter
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
En cas de signal de vente :
Nous avons notre signal souhaité avec les valeurs suivantes :
- Vendre
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Valeur des Lèvres = n
Nous avons 3 lignes qui évoluent au-dessus des prix, nous avons donc reçu un signal de vente.
Voici le code complet pour créer le système de trading de cette stratégie :
//+------------------------------------------------------------------+ //| Alligator Signals System Enhancement.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //creating three arrays of Alligator components double jawsArray[]; double teethArray[]; double lipsArray[]; MqlRates pArray[]; //Sorting data ArraySetAsSeries(jawsArray,true); ArraySetAsSeries(teethArray,true); ArraySetAsSeries(lipsArray,true); int Data=CopyRates(_Symbol,_Period,0,1,pArray); //define Alligator int alligatorDef=iAlligator(_Symbol,_Period,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN); //define data and store result CopyBuffer(alligatorDef,0,0,13,jawsArray); CopyBuffer(alligatorDef,1,0,13,teethArray); CopyBuffer(alligatorDef,2,0,13,lipsArray); //get value of current data double jawsValue=NormalizeDouble(jawsArray[0],5); double teethValue=NormalizeDouble(teethArray[0],5); double lipsValue=NormalizeDouble(lipsArray[0],5); //conditions of strategy if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue) { Comment("Buy","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "closingPrice = ",pArray[0].close,"\n", "lipsValue = ",lipsValue); } if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue) { Comment("Sell","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "closingPrice = ",pArray[0].close,"\n", "lipsValue = ",lipsValue); } } //+------------------------------------------------------------------+
Différences dans ce code.
Création d'un tableau supplémentaire pour les prix à l'aide de la fonction « MqlRates » pour stocker des informations sur les prix, les volumes et la répartition.
MqlRates pArray[];
Obtention des données historiques de MqlRates en utilisant "CopyRates". Ses paramètres sont :
- symbol_name : pour déterminer le nom du symbole, nous utiliserons _Symbol.
- timeframe : pour déterminer la période, nous utiliserons _period.
- start_pos : pour déterminer la position de départ, nous utiliserons 0.
- count : pour déterminer le nombre de données à copier, nous utiliserons 1.
- rate_array[] : pour déterminer le tableau destination de la copie, nous utiliserons pArray.
int Data=CopyRates(_Symbol,_Period,0,1,pArray);
Conditions de la stratégie.
En cas de signal d'achat :
if(lipsValue<teethValue && lipsValue<jawsValue && pArray[0].close>teethValue) { Comment("Buy","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "closingPrice = ",pArray[0].close,"\n", "lipsValue = ",lipsValue); }
En cas de signal de vente :
if(lipsValue>teethValue && lipsValue>jawsValue && pArray[0].close<teethValue) { Comment("Sell","\n", "jawsValue = ",jawsValue,"\n", "teethValue = ",teethValue,"\n", "closingPrice = ",pArray[0].close,"\n", "lipsValue = ",lipsValue); }
Après avoir compilé ce code et exécuté l'EA, il sera attaché au graphique comme ci-dessous pour obtenir nos signaux d'achat et de vente.
L’EA est attaché comme on peut le voir dans le coin supérieur droit. Nous pouvons recevoir les signaux souhaités. Voici des exemples de tests.
En cas de signal d'achat :
Nous avons un commentaire dans le coin supérieur gauche avec les valeurs suivantes :
- Acheter
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Cours de clôture = n
- Valeur des Lèvres = n
En cas de signal de vente :
Nous avons un commentaire comme signal dans le coin supérieur gauche :
- Vendre
- Valeur des Mâchoires = n
- Valeur des Dents = n
- Cours de clôture = n
- Valeur des Lèvres = n
Comme 3 lignes évoluent en dessous des prix, nous pouvons constater que le cours de clôture est en dessous de la ligne des Dents de l’Alligator.
Conclusion
Nous avons découvert en détail dans cet article l'indicateur technique Alligator qui peut être utilisé pour confirmer la tendance en plus de générer des signaux d'achat et de vente. Nous avons appris comment le calculer manuellement et comment l'utiliser avec des stratégies simples :
- Identificateur de Tendance Alligator : Pour générer des signaux haussiers ou baissiers en fonction de la position des 3 lignes de l'Alligator (Lèvres, Dents et Mâchoires).
- Système de Signaux de l’Alligator : Pour générer des signaux d'achat ou de vente par la méthode classique de croisement basée sur le croisement entre les 3 lignes de l'indicateur.
- Amélioration du Système de Signaux de l’Alligator : Pour générer des signaux d'achat ou de vente par une autre méthode pour obtenir ces signaux plus tôt en fonction de la position des 3 lignes de l'indicateur et du croisement entre le cours de clôture et les Dents.
Nous avons conçu un plan étape par étape pour chaque stratégie mentionnée afin de nous aider à organiser nos idées pour créer un système de trading fluide, simple et efficace. Nous avons également créé un système de trading pour chaque stratégie, à utiliser dans le terminal de trading MetaTrader 5 pour générer automatiquement des signaux. Je dois rappeler ici encore que vous devez tester toute stratégie avant de l'utiliser sur votre compte réel pour vous assurer qu'elle est utile et rentable pour vous. Rien ne convient à tout le monde en même temps. L'objectif principal de fins d'éducation.
J'espère que vous avez essayé d'appliquer ce que vous avez appris par vous-même de la même manière. Je vous ai conseillé d'améliorer vos compétences en codage et de tirer pleinement parti de la lecture de cet article. J'espère que vous l'avez trouvé utile pour votre trading et que vous avez obtenu des informations utiles sur le sujet de cet article. article ou même tout sujet connexe. Si vous souhaitez lire d'autres articles similaires, vous pouvez lire mes articles précédents de cette série car nous avons partagé les indicateurs techniques les plus populaires tels que stochastiques, RSI, bandes de Bollinger, moyennes mobiles, enveloppes, MACD, ADX, etc., et comment nous pouvons créer un système de trading basé sur eux.
Traduit de l’anglais par MetaQuotes Ltd.
Article original : https://www.mql5.com/en/articles/11549





- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation