Questions des débutants MQL5 MT5 MetaTrader 5 - page 1136

 
Iurii Tokman:

Voici le code qui dessine une ligne sur M5 :

      int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
       int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);
            
       ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
                     NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));

Je voudrais que l'on trace une ligne au début de chaque heure sur la M5 qui ne sera pas reliée aux précédentes. C'est-à-dire juste une ligne horizontale, pas une ligne brisée. La ligne représente le prix moyen de l'heure précédente.

Et si on enlève la propriété *poutre* de cette ligne, ce serait parfait.

 
      
int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);

if(!NewBar(PERIOD_H1)) return;
            
ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
              NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));


//---
//---
bool NewBar(ENUM_TIMEFRAMES TF = 0)
  {
   static datetime NewTime=0;
   if(NewTime!=iTime(Symbol(),TF,0))
     {
      NewTime=iTime(Symbol(),TF,0);
      return(true);
     }
   return(false);
  }
//----
 
Iurii Tokman:

Ça ne marche pas. Il ne trace qu'une seule ligne au démarrage et c'est tout.

void OnTick()
{
  
int Price_high  = iHighest(Symbol(), 0, MODE_HIGH, 11, 1);
int Price_low   = iLowest(Symbol(), 0, MODE_LOW, 11, 1);

if(!NewBar(PERIOD_H1)) return;
            
ObjectCreate("TrendLine", OBJ_TREND, 0, Time[11], NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits), Time[1], 
              NormalizeDouble( (High[Price_high] + Low[Price_low])/2, Digits));

}
//+------------------------------------------------------------------+ 
//---
bool NewBar(ENUM_TIMEFRAMES TF = 0)
  {
   static datetime NewTime=0;
   if(NewTime!=iTime(Symbol(),TF,0))
     {
      NewTime=iTime(Symbol(),TF,0);
      return(true);
     }
   return(false);
  }
//----
//+------------------------------------------------------------------+
 
Snajper007:

Ça ne marche pas. Il ne trace qu'une seule ligne au démarrage et c'est tout.

Combien en faut-il ?

 
Iurii Tokman:

De combien avez-vous besoin ?

Je voudrais que l'on trace une ligne au début de chaque heure sur la M5 qui ne sera pas reliée aux précédentes. C'est-à-dire juste une ligne horizontale, pas une ligne brisée. La ligne représente le prix moyen de l'heure précédente.
 
Snajper007:
Je voudrais que l'on trace une ligne au début de chaque heure sur la M5 qui ne sera pas reliée aux précédentes. C'est-à-dire juste une ligne horizontale, pas une ligne brisée. La ligne représente le prix moyen de l'heure précédente.

milieu de la barre H1 ?

 
Iurii Tokman:

milieu de la barre H1 ?

Oui, seulement sur la M5.
 
Snajper007:
Oui, seulement sur la M5.

dessiner une image comme elle doit l'être, et non pas avec une seule ligne

 
Iurii Tokman:

dessiner une image comme elle doit l'être, et non pas avec une seule ligne

Voici
Dossiers :
 
Snajper007:
***

D'ailleurs, pourquoi dessiner exactement avec l'objet graphique Ligne horizontale ? Ne serait-il pas préférable de le faire avec un indicateur et le styleDRAW_ARROW?

Quelque chose comme cet affichage :

Résistance et support 2