English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
preview
Apprenez à concevoir un système de trading basé sur le MFI

Apprenez à concevoir un système de trading basé sur le MFI

MetaTrader 5Trading | 10 janvier 2023, 11:26
1 039 0
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud

Introduction

Cet article est dans la continuité des articles de notre série sur la conception d’un système de trading simple basé sur les indicateurs techniques les plus populaires pour nous aider à apprendre le codage MQL5. Dans ce nouvel article, nous allons nous intéresser à un nouvel indicateur technique appelé le Money Flow Index (MFI). Nous verrons cet indicateur en détail et découvrirons comment développer un système de trading simple basé sur le concept principal qui le sous-tend. Nous couvrirons cet indicateur à travers les sujets suivants :

  1. Définition du MFI
  2. Stratégie MFI
  3. Plan de la stratégie MFI
  4. Système de trading MFI
  5. Conclusion

Si vous lisez les autres articles de la série, vous pouvez constater qu'il contient le même arrangement de sujets avec de nouvelles informations sur l'indicateur et de nouveaux codes selon les nouvelles stratégies mentionnées pour essayer d'apprendre de nouveaux concepts sur le trading et le codage MQL5. Nous apprendrons ce qu'est l'indicateur MFI, ce qu'il mesure et comment le calculer manuellement pour apprendre le concept qui le sous-tend. Nous verrons ensuite un exemple de calcul de l'indicateur MFI. Mais ce ne sont bien sûr que les bases. Nous devons apprendre un sujet plus important sur comment l'utiliser dans des stratégies simples compte tenu du concept de base qui le sous-tend. Après cela, nous concevrons un plan étape par étape pour chaque stratégie mentionnée afin de nous aider à concevoir un système de trading pour chacune d’elle. Le sujet le plus intéressant est de savoir comment nous pouvons créer un système de trading pour ces stratégies en MQL5 pour les utiliser dans la plateforme de trading MetaTrader 5.

Afin de pouvoir créer votre propre système de trading basé sur votre stratégie de trading gagnante, je vous conseille de faire tout le codage vous-même. Ne vous contentez pas de lire, mais appliquez ce que vous lisez et codez à chaque fois par vous-même. Il sera préférable de rechercher des fonctions et des concepts de programmation pour en savoir plus car cela vous aidera à vous améliorer. N'oubliez pas que l'une des compétences les plus importantes de tout programmeur qui réussit est de savoir comment rechercher efficacement, en plus de la pratique, car ces deux choses sont très importantes dans tout processus d'apprentissage ou de développement.

Vous devez également tester toute stratégie avant de l'utiliser, surtout si son objectif principal est à but éducatif. Il n'existe pas de stratégie qui convienne à tout le monde. Donc, ce qui peut m'être utile à moi, ne vous sera peut-être pas utile du tout.

A travers cet article, nous utiliserons le langage MetaQuotes (MQL5) pour écrire le code de stratégies dans MetaEditor, l’éditeur intégré à MetaTrader 5. Si vous voulez savoir comment le télécharger et utiliser MetaEditor, lisez la section Ecrire du code MQL5 dans MetaEditor de l'article précédent.

Avertissement : Toutes les informations sont fournies "en l'état", uniquement à des fins d'information et ne sont pas 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. 

Passons maintenant directement à notre sujet princi^pal pour apprendre un nouvel outil et augmenter le nombre d'outils dans nos valises de trading.


Définition du MFI

Dans cette section, nous décrirons l'indicateur Money Flow Index (MFI) en détail et nous examinerons le concept sous-jacent. Cet indicateur est l'un des indicateurs basés sur le volume. Nous apprendrons ce que c'est, et ce qu'il mesure, puis nous apprendrons comment le calculer manuellement en analysant un exemple.

Comme nous l’avons déjà mentionné dans l'article précédent, le volume est un facteur vital dans le trading. Une analyse approfondie du volume nous donne un avantage car le marché a de nombreux aspects qui peuvent l'affecter. Plus vous comprenez ces aspects, meilleures sont les décisions que vous pouvez prendre puisque les connaissances acquises augmentent le poids de la preuve qui vous guide vers une direction spécifique pour prendre une certaine décision.

Si nous avons un actif faisant l'objet d'achats et de ventes intensifs, cet actif est alors plus important que celui ayant un nombre de transactions inférieur. Sur les marchés financiers, le volume est le nombre d'actions ou de contrats échangés pendant une période de temps. Il est bon de voir un volume élevé lorsque le prix casse une résistance dans une tendance haussière, ou un support dans une tendance baissière, car c'est l'un des signes importants de la force du mouvement. C'est mieux lorsque le volume évolue avec la tendance : en augmentation lors d'un mouvement haussier, ou de la correction d’une tendance baissière, et en baisse lors d'une correction de la tendance haussière, ou en augmentation lors d'une correction. Si on voit le volume évoluer avec la tendance, c'est l'un des signes importants confirmant la tendance actuelle.

L'indicateur Money Flow Index (MFI) a été créé par Gene Quong et Avrum Soudack. C'est un indicateur basé sur le volume. Il utilise le prix et le volume dans son calcul pour mesurer la pression d'achat et de vente. Il oscille entre 0 et 100. Une augmentation de l'indicateur MFI signifie qu'il y a une pression à l'achat. Inversement, une diminution de l'indicateur MFI signifie qu'il y a une pression à la vente. Il peut confirmer la direction de la tendance, ou donner un avertissement en cas d'inversion. Si vous souhaitez en savoir plus sur la tendance, vous pouvez lire la section Définition de la tendance de l'un des articles précédents.

Le calcul manuel du MFI se compose de plusieurs étapes :

  • Calcul du prix typique (TP) = (haut + bas + clôture) / 3
  • Calcul du flux monétaire brut = volume * TP
  • Détermination du mouvement du TP : vers le haut ou vers le bas. Si TP courant > TP précédent = up, si TP courant < TP précédent = down.
  • Calcul de 1+MF = MF brut des périodes haussières
  • Calcul de 1-MF = MF brut des périodes baissières
  • Calcul de 14 +MF = somme de 14 (1+MF)
  • Calcul de 14 -MF = somme de 14 (1-MF)
  • Calcul du Rapport 14 MF = 14+MF / 14-MF
  • Calcul du MFI = 100 - 100 / (Rapport 1+MF)

Voyons un exemple d’application de ce calcul avec les données suivantes pour un instrument :

Jour Plus Haut Plus Bas Clôture Volume
1 55 53 54 12 000
2 56 54 55 10 000
3 61 59 60 15 000
4 67 64 65 20 000
5 63 58 60 10 000
6 58 52 55 5 000
7 64 58 60 7 000
8 52 47 50 7 500
9 52 48 48 8 000
10 50 48 49 5 000
11 49 47 48 6 000
12 48 47 47 7 500
13 50 46 48 9 000
14 52 45 47 10 000
15 55 46 49 7 000
16 53 45 47 7 500
17 51 43 46 6 000
18 50 42 44 5 000
19 50 43 45 15 000

Pour calculer l'indicateur MFI à partir des données précédentes, nous devons suivre les étapes suivantes :

Calcul du prix typique (TP) = (haut + bas + clôture) / 3

Résultats :

 Calcul MFI 2

Calcul du flux monétaire brut = volume * TP

Calcul MFI 3

Détermination du mouvement du TP : vers le haut ou vers le bas.

Calcul MFI 4

Calcul de 1+MF = MF brut des périodes haussières

Calcul de 1-MF = MF brut des périodes baissières

 Calcul MFI 5

Calcul de 14+MF = somme de 14 (1+MF)

Calcul de 14-MF = somme de 14 (1-MF)

Calcul MFI 6

Calcul du Rapport 14 MF = 14+MF/14-MF

 Calcul MFI 7

Calcul du MFI = 100 - 100 / (Rapport 1+MF)

Calcul MFI 8

Au cours des étapes précédentes, nous avons calculé l'indicateur MFI manuellement. Heureusement, nous n'avons pas besoin de le faire. Maintenant que nous avons appris le concept derrière l'indicateur, nous pouvons utiliser l'indicateur intégré de MetaTrader 5. Il vous suffit de le choisir parmi les indicateurs disponibles :

Depuis MetaTrader 5 --> cliquez sur l'onglet Insertion --> Indicateurs --> Volumes --> Money Flow Index

Insertion du MFI

Les paramètres de l'indicateur apparaîtront après avoir choisi le Money Flow Index :

Fenêtre des paramètres du MFI

1. Période souhaitée.

2. Type de volume (Tick ou Réel).

3. Couleur de la ligne MFI

4. Type de la ligne MFI

5. Epaisseur de la ligne MFI

Après avoir cliqué sur OK, l'indicateur MFI est attaché au graphique :

 MFI attaché


Stratégie MFI

Dans cette partie, nous allons voir comment utiliser l'indicateur MFI après avoir identifié ce qu'il est, ce qu'il mesure et le concept principal qui le sous-tend. Nous allons maintenant apprendre quelques stratégies simples pouvant être utilisées.

  • 1ère stratégie : MFI - OB et OS :

Selon cette stratégie, nous identifierons les zones de sur-achat (OB) et de sur-vente (OS). Lorsque le MFI approche du niveau 20, ce sera un OS (OverSold, ou sur-acheté), et lorsqu'elle approche du niveau 80, ce sera un OB (OverBought, ou sur-vendu). Les zones de survente augmentent le potentiel de hausse. Et, inversement, les zones de survente augmentent le potentiel de baisse.

Nous pouvons donc dire : 

MFI <= 20 --> OS

MFI >= 80 --> OB

  • 2ème stratégie : MFI - tendance haussière - achat :

Selon cette stratégie, nous attendrons de voir le MFI inférieur ou égal à 50 pour voir le signal d'achat se déclencher. L'approche du niveau 70 sera un signal de prise de profit. La logique derrière cette stratégie est que le MFI évolue la plupart du temps entre 50 et 70 lors d'une tendance haussière.

Donc :

MFI <= 50 --> signal d'Achat

MFI >= 70 --> signal de Prise de Profit

  • 3ème stratégie : MFI - tendance baissière - vente :

Cette stratégie sera à l'opposé de la précédente (MFI - tendance haussière - achat), car il faut que le MFI soit supérieur ou égal à 50 pour dire que le signal de vente est déclenché. Le Take Profit sera déclenché lorsque le MFI sera inférieur ou égal à 30. La raison est que la plupart du temps, le MFI se déplace entre les niveaux 50 et 30 pendant une tendance baissière.

Donc :

MFI >= 50 --> signal de Vente

MFI <= 30 --> signal de Prise de Profit

  • 4ème stratégie : MFI - tendance haussière ou divergence :

Pour cette stratégie, nous avons besoin de l'indicateur pour confirmer si le mouvement actuel est fort ou non. Nous pouvons le voir en comparant les valeurs actuelles et les valeurs précédentes du MFI, ainsi que les sommets actuels et précédents et voir s'il y a une confirmation que le mouvement actuel est fort ou s'il y a une divergence. Ainsi, lors d'une tendance haussière, si le MFI actuel est supérieur au MFI précédent et que le plus haut actuel est supérieur au plus haut précédent, cela signifie que le mouvement actuel est fort. Mais si le MFI actuel est inférieur au précédent et que le plus haut actuel est supérieur au plus haut précédent, cela signifie qu'il y a une divergence baissière car l'indicateur ne confirme pas le mouvement des prix. Vous pouvez ajuster la longueur des valeurs pour les comparer.

Donc :

MFI actuel > MFI précédent et sommet actuel > sommet précédent --> forte hausse

MFI actuel < MFI précédent et sommet actuel > sommet précédent --> divergence baissière

  • 5ème stratégie : MFI - tendance baissière ou divergence :

Cette stratégie est à l'opposé de la précédente (MFI - tendance haussière ou divergence) car nous avons également besoin de l'indicateur pour confirmer si le mouvement actuel est fort, ou s'il y a une divergence dans sa forme simple en comparant seulement 2 valeurs. Donc, si le MFI actuel est inférieur au précédent et que le plus bas actuel est inférieur au précédent, cela signifie que la baisse actuelle est forte. Mais si le MFI actuel est supérieur au précédent et que le plus bas actuel est inférieur au précédent, cela signifie qu'il y a une divergence haussière.

Plus simplement,

MFI actuel < MFI précédent et plus bas actuel < plus bas précédent --> forte baisse

MFI actuel > MFI précédent et plus bas actuel < plus bas précédent --> divergence haussière


Plan de la stratégie MFI

Dans cette section, nous allons concevoir un plan pour chaque stratégie pour nous aider lors de la création d'un système de trading pour chacune d'elles. Mais nous allons d'abord concevoir un plan pour un système de trading simple qui sera la base de toutes les stratégies de trading mentionnées. Ce système simple affichera la valeur actuelle du MFI sous forme de commentaire sur le graphique. Nous avons donc besoin que l'ordinateur vérifie la valeur du MFI à chaque tick et affiche ensuite cette valeur sur le graphique sous forme de commentaire. Le plan est illustré ci-dessous :

Plan du MFI Simple

Dans cette partie, nous allons concevoir un plan pour chaque stratégie.

  • 1ère stratégie : MFI - OB et OS :

Sur la base de cette stratégie, nous devons donner des instructions au système de trading pour vérifier la valeur du MFI à chaque tick et comparer cette valeur à des niveaux spécifiques (20 et 80) et décider ou renvoyer le résultat sous forme de commentaire sur le graphique. Si le MFI est inférieur ou égal à 20, il affiche survendu et la valeur actuelle du MFI sous forme de commentaires sur le graphique. Si le MFI est supérieur ou égal à 80, il renvoie sur-achat et la valeur actuelle du MFI sous forme de commentaires sur le graphique. Si le MFI est supérieur à 20 et inférieur à 80, il affiche uniquement la valeur actuelle du MFI. Voici le plan correspondant :

Plan MFI-OB-OS

  • 2ème stratégie : MFI - tendance haussière - achat :

Selon cette stratégie, nous avons besoin que le système de trading vérifie également la valeur du MFI, les niveaux 50 et 70 à chaque tick pour décider si le MFI est inférieur ou égal à 50, il doit donc renvoyer le signal d'achat. Si le MFI est supérieur ou égal à 70, il doit renvoyer un signal de prise de profit. Voici le plan :

Plan MFI - Tendance haussière - Achat

  • 3ème stratégie : MFI - tendance baissière - vente :

Selon cette stratégie, nous avons besoin que le programme de trading nous alerte avec un signal basé sur la comparaison entre les valeurs du MFI, les niveaux 50 et 30. Si le MFI est supérieur ou égal à 50, il doit renvoyer un signal de vente. Et si le MFI est inférieur ou égal à 30, il doit renvoyer un signal de prise de profit. Voici le plan correspondant :

Plan MFI - Tendance baissière - Vente

  • 4ème stratégie : MFI - tendance haussière ou divergence :

Selon cette stratégie, nous devons concevoir un système de trading capable de vérifier 4 valeurs (le MFI actuel, le MFI précédent, le plus haut actuel et le plus haut précédent) à chaque tick et décider quel signal sera généré.

MFI actuel > MFI précédent et plus haut actuel > plus haut précédent --> signal de forte hausse

MFI actuel < MFI précédent et sommet actuel > sommet précédent --> divergence baissière

Voici le plan correspondant :

 Plan MFI - Tendance haussière ou divergence

 

  • 5ème stratégie : MFI - tendance baissière ou divergence :

Cette stratégie est l'inverse de la précédente. Selon cette stratégie, nous devons concevoir un système de trading capable de vérifier 4 valeurs (le MFI actuel, le MFI précédent, le plus bas actuel et le plus bas précédent) à chaque tick et décider quel signal sera généré.

MFI actuel < MFI précédent et plus bas actuel < plus bas précédent --> signal de forte baisse

MFI actuel > MFI précédent et plus bas actuel < plus bas précédent --> divergence haussière

Voici le plan correspondant :

Plan MFI - Tendance baissière ou divergence


Système de trading MFI

Dans cette section, nous allons concevoir un système de trading pour chaque stratégie mentionnée en écrivant le code en MQL5 pour les exécuter dans MetaTrader 5. Nous allons commencer par le MFI simple qui génère un commentaire sur le graphique avec la valeur actuelle du MFI.

  • Créez un tableau d’éléments de type "double" pour le MFI pour représenter les valeurs décimales.
double MFIArray[];
  • Triez le tableau MFI en utilisant la fonction ArraySetAsSeries pour renvoyer un résultat booléen (true ou false). Ses paramètres sont array[] et flag.
ArraySetAsSeries(MFIArray,true);
  • Définissez le MFI à l'aide de la fonction iMFI après avoir créé une variable entière pour MFIDef. La fonction iMFI renvoie le handle de l'indicateur MFI. Ses paramètres sont : le symbole, la période, la période de la moyenne et le volume appliqué.
int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
  • Remplissez le tableau avec la fonction CopyBuffer pour obtenir les données de l'indicateur MFI.
CopyBuffer(MFIDef,0,0,3,MFIArray);
  • Calculez la valeur actuelle du MFI en utilisant NormalizeDouble pour renvoyer une valeur de type double après avoir créé la variable MFI.
double MFIValue=NormalizeDouble(MFIArray[0],5);
  • Créez un commentaire sur le graphique à l'aide de la fonction Comment :
Comment("MFI Value is: ",MFIValue);

Le code complet sera le même que celui-ci :

//+------------------------------------------------------------------+
//|                                                   Simple MFI.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()
  {
//Create an array for MFI
   double MFIArray[];

//sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);

//creating a comment with MFI value
   Comment("MFI Value is: ",MFIValue);
  }
//+------------------------------------------------------------------+

L’Expert Advisor sera ensuite visible dans la fenêtre du Navigateur :

MFI navigateur 1

En double-cliquant sur l'Expert Advisor, la fenêtre suivante s’affiche :

Fenêtre MFI Simple

Après avoir cliqué sur OK, l'EA sera attaché au graphique :

MFI Simple attaché

Voici un exemple de signal généré d’après mes tests :

MFI Simple - signal

Si nous voulons nous assurer que la valeur MFI générée est la même que la valeur du MFI de l'indicateur intégré :

MFI Simple - Même signal

  • 1ère stratégie : MFI - OB et OS :

Voici le code complet pour créer le système de trading pour cette stratégie :

//+------------------------------------------------------------------+
//|                                                  MFI - OB&OS.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()
  {
   //Create an array for MFI
   double MFIArray[];
   
   //sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);
   
   //defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
   
   //filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);
   
   //calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);
   
   
   //Conditions of OS&OS
   //OS
   if(MFIValue<=20)
   {
   Comment("Oversold","\n","MFI value is : ",MFIValue);
   }
   
   //OB
   if(MFIValue>=80)
   {
   Comment("Overbought","\n","MFI value is : ",MFIValue);
   }
   
   //no signal
   if(MFIValue>20 && MFIValue<80 )
   {
   Comment("MFI value is : ",MFIValue);
   }   
  }
//+------------------------------------------------------------------+

Les différences dans ce code sont les suivantes :

Conditions de survente et de sur-achat :
   //Conditions of OS&OS
   //OS
   if(MFIValue<=20)
   {
   Comment("Oversold","\n","MFI value is : ",MFIValue);
   }
   
   //OB
   if(MFIValue>=80)
   {
   Comment("Overbought","\n","MFI value is : ",MFIValue);
   }
   
   //no signal
   if(MFIValue>20 && MFIValue<80 )
   {
   Comment("MFI value is : ",MFIValue);
   } 

Après avoir compilé ce code, l'EA est visible dans la fenêtre du Navigateur :

MFI navigateur 2

Glissez et déposez-le sur le graphique pour ouvrir sa fenêtre :

 Fenêtre MFI - OB_OS

Après avoir cliqué sur OK, l'EA sera attaché au graphique :

MFI - OB_OS attaché

Voici un exemple de signaux générés selon ce système de trading.

Signal de survente :

MFI Simple - OB_OS - OS

Signal de sur-achat :

MFI Simple - OB_OS - OB

Aucun signal :

MFI Simple - OB_OS - pas de signal

  • 2ème stratégie : MFI - tendance haussière - achat :

Voici le code de cette stratégie :

//+------------------------------------------------------------------+
//|                                          MFI - Uptrend - Buy.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()
  {
   //Create an array for MFI
   double MFIArray[];
   
   //sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);
   
   //defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);
   
   //filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);
   
   //calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);
   
   
   //Buy signal
   if(MFIValue<=50)
   {
   Comment("Buy signal");
   }
   
   //TP
   if(MFIValue>=70)
   {
   Comment("Take profit");
   }
  }
//+------------------------------------------------------------------+

Les différences sont les suivantes :

Conditions des signaux :

Signal d'Achat :

//Buy signal
   if(MFIValue<=50)
   {
   Comment("Buy signal");
   }

Signal de Prise de profit :

//TP
   if(MFIValue>=70)
     {
      Comment("Take profit");
     }

Après compilation, l'EA apparaît dans la fenêtre du Navigateur :

MFI navigateur 3

La fenêtre de l’EA sera la même que celle-ci :

Fenêtre MFI - Tendance haussière - Achat

Après avoir cliqué sur OK, l'EA sera attaché au graphique :

 MFI - Tendance haussière - Achat attaché

Voici un exemple des signaux générés :

Signal d'Achat :

MFI - Tendance haussière - Signal d'achat

Signal de Prise de profit :

MFI - Tendance haussière - Signal de Take profit

  • 3ème stratégie : MFI - tendance baissière - vente :

Voici le code complet du système de trading de cette stratégie :

//+------------------------------------------------------------------+
//|                                      MFI - Downtrend - Short.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()
  {
//Create an array for MFI
   double MFIArray[];

//sorting the array from the current data
   ArraySetAsSeries(MFIArray,true);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current MFI value
   double MFIValue=NormalizeDouble(MFIArray[0],5);


//Sell signal
   if(MFIValue>=50)
     {
      Comment("Sell signal");
     }

//TP
   if(MFIValue<=30)
     {
      Comment("Take profit");
     }
  }
//+------------------------------------------------------------------+

Les différences dans ce code sont les suivantes :

Conditions des signaux :

Signal de Vente :

//Sell signal
   if(MFIValue>=50)
     {
      Comment("Sell signal");
     }

Signal de Prise de profit :

//TP
   if(MFIValue<=30)
     {
      Comment("Take profit");
     }

Après compilation, on peut l'exécuter en double-cliquant sur le nom depuis le Navigateur :


Après un double-clic, sa fenêtre sera affichée :

 Fenêtre MFI - Tendance baissière - Short

Après avoir cliqué sur OK, l'EA sera attaché au graphique :

 MFI - Tendance baissière - Short attaché

Voici un exemple de signaux générés basés sur la stratégie MFI - tendance baissière - Short :

Signal de Vente :

MFI - Tendance baissière - Signal de vente

Signal de Prise de profit :

MFI - Tendance baissière - Signal de Take profit

  • 4ème stratégie : MFI - tendance haussière ou divergence :

Voici le code complet de la stratégie MFI - Tendance haussière ou divergence :

//+------------------------------------------------------------------+
//|                                  MFI - Uptrend or divergence.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()
  {
//Create arrays for MFI and price
   double MFIArray[];
   MqlRates PriceArray[];

//sorting arrays from the current data
   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the MFI array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current and previous MFI values
   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

//calculating current and previous highs
   double CurrentHighValue=NormalizeDouble(PriceArray[2].high,5);
   double PrevHighValue=NormalizeDouble(PriceArray[1].high,5);

//conditions of strong move or divergence
//strong up
   if(MFICurrentValue>MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Strong up move");
     }

//bearish divergence
   if(MFICurrentValue<MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Bearish divergence");
     }
  }
//+------------------------------------------------------------------+

Les différences dans ce code sont :

Création de tableaux pour le MFI et pour les prix à l'aide de la fonction MqlRates qui stocke les informations sur les prix, les volumes et les spreads :

   double MFIArray[];
   MqlRates PriceArray[];

Tri des tableaux

Pour le MFI, l'utilisation de la fonction ArraySetAsSeries est la même que celle mentionnée précédemment.

Pour les prix, utilisation de la fonction CopyRates pour obtenir les données historiques de MqlRates. Ses paramètres sont : le nom du symbole, la période, l’heure de début, l’heure de fin et le tableau des taux.

   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

Calcul des valeurs actuelles et précédentes du MFI :

   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

Calcul du plus haut actuel et du plus haut précédent :

   double CurrentHighValue=NormalizeDouble(PriceArray[2].high,5);
   double PrevHighValue=NormalizeDouble(PriceArray[1].high,5);

Conditions du MFI - stratégie de tendance haussière ou de divergence :

Signal haussier fort :

   if(MFICurrentValue>MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Strong up move");
     }

Divergence :

   if(MFICurrentValue<MFIPrevValue&&CurrentHighValue>PrevHighValue)
     {
      Comment("Bearish divergence");
     }

Après avoir compilé ce code, nous le retrouverons également avec les Expert Advisors du Navigateur :

MFI navigateur 5

Il en va de même pour son exécution. Glissez-déposez, ou double-cliquez dessus, pour ouvrir sa fenêtre :

Fenêtre MFI - Tendance haussière ou divergence

Cliquez ensuite sur OK pour l'attacher au graphique :

MFI - Tendance haussière ou divergence attaché

Voici un exemple de signaux générés basés sur cette stratégie, avec la fenêtre des données :

Signal haussier avec la fenêtre des données actuelles :

MFI - Tendance haussière ou divergence - haussier fort - valeurs actuelles

Signal haussier fort avec la fenêtre des données précédentes :

MFI - Tendance haussière ou divergence - haussier fort - valeurs précédentes

Signal de divergence avec la fenêtre des données actuelles :

MFI - Tendance haussière ou divergence - Divergence baissière - valeurs actuelles

Signal de divergence avec la fenêtre des données précédente :


  • 5ème stratégie : MFI - tendance baissière ou divergence :

Voici le code complet de cette stratégie :

//+------------------------------------------------------------------+
//|                                MFI - Downtrend or divergence.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()
  {
//Create arrays for MFI and price
   double MFIArray[];
   MqlRates PriceArray[];

//sorting arrays from the current data
   ArraySetAsSeries(MFIArray,true);
   int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);

//defining MFI
   int MFIDef=iMFI(_Symbol,_Period,24,VOLUME_TICK);

//filling the array
   CopyBuffer(MFIDef,0,0,3,MFIArray);

//calculating current and previous MFI values
   double MFICurrentValue=NormalizeDouble(MFIArray[0],5);
   double MFIPrevValue=NormalizeDouble(MFIArray[1],5);

//calculating current and previous highs
   double CurrentLowValue=NormalizeDouble(PriceArray[2].low,5);
   double PrevLowValue=NormalizeDouble(PriceArray[1].low,5);

//conditions of strong move or divergence
//strong down
   if(MFICurrentValue<MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Strong down move");
     }

//bullish divergence
   if(MFICurrentValue>MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Bullish divergence");
     }
  }
//+------------------------------------------------------------------+

Les différences dans ce code sont les suivantes :

Conditions des signaux générés selon cette stratégie :

Signal de mouvement baissier fort :

   if(MFICurrentValue<MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Strong down move");
     }

Divergence haussière :

   if(MFICurrentValue>MFIPrevValue&&CurrentLowValue<PrevLowValue)
     {
      Comment("Bullish divergence");
     }

Après compilation, l’Expert Advisor est disponible depuis la fenêtre du Navigateur :

MFI navigateur 6

Et lors de l'exécution, sa fenêtre se présente comme suit :

Fenêtre MFI - Tendance baissière ou divergence

Après avoir cliqué sur OK, l'EA sera attaché au graphique :

MFI - Tendance baissière ou divergence attaché

Voici un exemple des signaux générés en fonction des valeurs des tests, avec la fenêtre de données :

Fort mouvement baissier avec la fenêtre des données actuelles :

MFI - Tendance baissière ou divergence - fort - valeurs actuelles

Fort mouvement baissier avec la fenêtre des données précédentes :

MFI - Tendance baissière ou divergence - fort - valeurs précédentes

Divergence haussière avec la fenêtre des données actuelles :

MFI - Tendance baissière ou divergence - Divergence haussière - données actuelles

Divergence haussière avec la fenêtre des données précédentes :

MFI - Tendance baissière ou divergence - Divergence haussière - données précédentes

Conclusion

J'ai couvert le sujet du Money Flow Index (MFI) en donnant de nouvelles informations qui pourrait améliorer votre trading puisque maintenant nous savons quel est le volume, pourquoi il est très important dans le trading, ce qu'est l'indicateur MFI, et ce qu'il mesure. Nous avons aussi pu le calculer manuellement et l’insérer dans MetaTrader 5. Après avoir appris les bases de l'indicateur MFI et saisi son concept de base, nous avons appris quelques stratégies simples : les stratégies de sur-achat et de survente qui peuvent révéler les zones de sur-achat et de survente pour un instrument, la stratégie MFI - tendance haussière qui peut être utilisée pour détecter les signaux d'achat et de prise de profit pendant une tendance haussière, la stratégie MFI - tendance baissière qui peut être utilisée pour générer des signaux de vente et de prise de profit pendant une tendance baissière, la stratégie MFI - tendance haussière ou divergence qui peut être utilisé pour confirmer la force des mouvements haussiers pendant une tendance haussière ou nous avertir d'une divergence baissière, et le MFI - tendance baissière ou divergence qui peut être utilisée pour confirmer si les mouvements baissiers actuels sont forts ou avertir d'une divergence haussière.

Nous avons également développé un plan pour chaque stratégie pour nous aider à créer un système de trading de génération automatique des signaux dans MetaTrader 5 en concevant un plan étape par étape. Après cela, nous avons créé un système de trading pour chaque stratégie en MQL5 à exécuter dans la plateforme de trading MetaTrader 5 pour fonctionner automatiquement et avec précision sans interférence humaine pour faciliter notre trading et gagner du temps tout en faisant les choses efficacement.

J'espère que vous avez essayé d'appliquer et de mettre en pratique ce que vous avez appris grâce à cet article. J'espère également que cet article vous a donné des informations utiles sur le trading, qu'il s'agisse d'informations liées au sujet actuel ou à des sujets d’intérêts connexes. Comme je l'ai déjà dit, assurez-vous de tester toute stratégie avant de l'utiliser sur un compte réel. L'objectif principal de cet article est de contribuer à fournir des informations aux débutants pour apprendre à coder par eux-mêmes des stratégies de trading simples. Vous découvrirez peut-être ainsi que ces stratégies nécessitent une optimisation ou un ajustement, ou vous constaterez peut-être qu'il sera préférable de les combiner avec un autre outil technique. Il s'agit d'une approche utile pour combiner des outils techniques afin de révéler de nombreuses perspectives pour pouvoir prendre une décision appropriée. Après avoir combiné ces outils, vous pouvez également créer un système de trading. Tous les types de systèmes de trading peuvent être trouvés, des plus simples aux plus compliqués. Cette méthode nous permettra de faire exactement ce dont nous avons besoin tout en surmontant le problème de subjectivité qui peut être un obstacle pour atteindre vos objectifs de trading. La programmation est un outil incroyable qui nous aide à faire ce dont nous avons besoin facilement, avec précision et en douceur. Cela nous évite de faire les mêmes tâches répétitives à chaque fois, en plus de nombreuses autres fonctionnalités intéressantes.

Si vous trouvez cet article utile, vous pouvez lire mes autres articles de cette série pour savoir comment concevoir un système de trading basé sur les indicateurs techniques les plus populaires. J'espère qu'ils vous aideront à améliorer vos résultats de trading.

Traduit de l’anglais par MetaQuotes Ltd.
Article original : https://www.mql5.com/en/articles/11037

Apprenez à concevoir un système de trading basé sur les Volumes Apprenez à concevoir un système de trading basé sur les Volumes
Voici un nouvel article de notre série sur l'apprentissage de la conception de systèmes de trading basés sur les indicateurs techniques les plus populaires. Cette fois-ci, notre article sera consacré à l'indicateur Volumes. Le concept de volume est l'un des facteurs les plus importants dans le trading sur les marchés financiers. Nous devons donc y prêter attention. Dans cet article, nous allons apprendre à concevoir un système de trading simple grâce à l'indicateur des Volumes.
Développer un Expert Advisor à partir de zéro (partie 13) : Times &amp; Trade (II) Développer un Expert Advisor à partir de zéro (partie 13) : Times &amp; Trade (II)
Aujourd'hui, nous allons construire la deuxième partie du système Times & Trade pour notre analyse du marché. Dans l'article précédent "Times & Trade (I)", nous avons discuté d'un système graphique alternatif, qui permet d'avoir un indicateur pour une interprétation plus rapide des transactions exécutées sur le marché.
Développer un Expert Advisor de trading à partir de zéro (partie 14) : Ajout du Volume Au Prix (II) Développer un Expert Advisor de trading à partir de zéro (partie 14) : Ajout du Volume Au Prix (II)
Aujourd'hui, nous allons ajouter quelques ressources supplémentaires à notre EA. Ce nouvel article peut apporter de nouvelles idées et des méthodes de présentation des informations. Et il peut vous aider à corriger des défauts mineurs dans vos projets.
Développer un Expert Advisor à partir de zéro (partie 12) : Times et Trade (I) Développer un Expert Advisor à partir de zéro (partie 12) : Times et Trade (I)
Aujourd'hui, nous allons créer Times & Trade avec une interprétation rapide pour lire les flux d'ordres. Nous construirons le système dans la première partie. Dans le prochain article, nous compléterons le système avec les informations manquantes. Pour mettre en œuvre cette nouvelle fonctionnalité, nous devrons ajouter plusieurs éléments au code de notre Expert Advisor.