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) ;
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); } } //+------------------------------------------------------------------+
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.
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.
Félicitations pour l'article.
Merci pour votre commentaire, c'est une bonne observation.
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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 :
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