Discussion de l'article "Comment traiter les niveaux avec MQL5"

 

Un nouvel article Comment traiter les niveaux avec MQL5 a été publié :

Dans cet article, vous découvrirez comment traiter les lignes les plus importantes telles que les lignes de tendance, de support et de résistance avec MQL5.

Nous pouvons utiliser la ligne de tendance dans le trading en plaçant nos ordres en fonction du type de ligne de tendance. S'il existe une ligne de tendance haussière, on peut s'attendre à ce que le prix se déplace vers le bas pour tester cette ligne de tendance par le haut avant de rebondir vers le haut. Nous pouvons alors placer notre ordre d'achat autour de cette ligne de tendance. Inversement, s'il y a une ligne de tendance à la baisse, il se peut que le prix monte pour tester cette ligne de tendance à partir du bas, puis rebondisse vers le bas. Nous pouvons alors placer notre ordre de vente ou de vente à découvert autour de cette ligne de tendance à la baisse.

L'exemple suivant concerne la ligne de tendance à la hausse :

 Ligne de tendance haussière

Il est clair dans la figure précédente que nous avons un mouvement haussier. Si nous essayons de relier les trois derniers bas, nous voyons qu'ils sont sur la même ligne, dans une direction à la hausse.

Auteur : Mohamed Abdelmaaboud

 
mais pourquoi ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low) ; ?
assez ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low) ;
 
MetaQuotes:

L'article"Comment travailler avec des lignes avec les outils MQL5" a été publié :

Auteur : Mohamed Abdelmaaboud

C'est un article intéressant pour les débutants, mais pour un fonctionnement correct des Expert Advisors, une petite modification des codes est nécessaire.

Cordialement, Vladimir.

//+------------------------------------------------------------------+
//|Système UpwardTrendline.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pLow[];
   ArraySetAsSeries(pLow,true);
   int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow);
   if(copy_low>0)
     {
      int candleLow = ArrayMinimum(pLow,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"UpwardTrendline");
      ObjectCreate(0,"UpwardTrendline",OBJ_TREND,0,pArray[candleLow].time,pArray[candleLow].low,
                   pArray[0].time,pArray[0].low);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_COLOR,Blue);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"UpwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|DownwardTrendline System.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pHigh[];
   ArraySetAsSeries(pHigh,true);
   int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh);
   if(copy_high>0)
     {
      int candleHigh = ArrayMaximum(pHigh,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"DnwardTrendline");
      ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,pArray[candleHigh].high,
                   pArray[0].time,pArray[0].high);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|Système de ligne d'assistance.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pLow[];
   ArraySetAsSeries(pLow,true);
   int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow);
   if(copy_low>0)
     {
      int candleLow = ArrayMinimum(pLow,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"supportLine");
      ObjectCreate(0,"supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low,
                   pArray[0].time,pArray[0].low);
      ObjectSetInteger(0,"supportLine",OBJPROP_COLOR,Green);
      ObjectSetInteger(0,"supportLine",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"supportLine",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"supportLine",OBJPROP_RAY,true);
     }
  }
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|Système de ligne de résistance.mq5 |
//+------------------------------------------------------------------+
void OnTick()
  {
   int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
   double pHigh[];
   ArraySetAsSeries(pHigh,true);
   int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh);
   if(copy_high>0)
     {
      int candleHigh = ArrayMaximum(pHigh,0,candles);
      MqlRates pArray[];
      ArraySetAsSeries(pArray,true);
      int Data = CopyRates(_Symbol,_Period,0,candles,pArray);
      ObjectDelete(0,"resistanceLine");
      ObjectCreate(0,"resistanceLine",OBJ_HLINE,0,pArray[candleHigh].time,pArray[candleHigh].high,
                   pArray[0].time,pArray[0].high);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_COLOR,Red);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,"resistanceLine",OBJPROP_WIDTH,3);
      ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true);
     }
  }
//+------------------------------------------------------------------+
 
MrBrooklin #:

Article intéressant pour les débutants, mais pour que les EA fonctionnent correctement, il faut modifier un peu les codes.

Cordialement, Vladimir.




Merci pour votre commentaire, je vais l'examiner.
 
La façon dont vous avez tracé la ligne est très agréable. Une remarque sur les lignes de tendance: il n'est pas très utile que le deuxième point d'ancrage soit toujours la barre d'indice 0, car à chaque nouvelle barre, la ligne de tendance sera mise à jour et la ligne de tendance ne sera donc d'aucune utilité. L'idéal serait de définir le deuxième point d'ancrage sur la base d'un critère spécifique. Par exemple, la deuxième barre avec le prix le plus élevé, avec une distance minimale de 30 barres par rapport à la première, ou prendre la barre avec le prix le plus élevé le jour suivant, et ainsi de suite.

Félicitations pour l'article.
 
Andrei Pereira lignes de tendance: il n'est pas très utile que le deuxième point d'ancrage soit toujours la barre d'indice 0, car à chaque nouvelle barre, la ligne de tendance sera mise à jour et la ligne de tendance ne sera donc d'aucune utilité. L'idéal serait de définir le deuxième point d'ancrage sur la base d'un critère spécifique. Par exemple, la deuxième barre avec le prix le plus élevé, à au moins 30 barres de la première, ou prendre la barre avec le prix le plus élevé le jour suivant, et ainsi de suite.

Félicitations pour l'article.

Merci pour votre commentaire, c'est une bonne observation.

 
Mohamed Abdelmaaboud #:
Merci pour votre aimable commentaire, je vais le réviser.

Cela fait presque 10 mois et aucune modification de ses codes n'a été faite par l'auteur de l'article. ))

Cordialement, Vladimir.

 
MrBrooklin #:

Près de 10 mois se sont écoulés et l'auteur de l'article n'a pas modifié ses codes. ))

Cordialement, Vladimir.

Merci pour votre rappel et votre contribution. Elle sera envoyée pour être éditée.