Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 217

 
artmedia70:


J'essaie d'appeler Alert pour vérifier, mais rien ne sort. Le problème est que mon indicateur n'a pas changé depuis les trois dernières barres. Je l'ai configuré pour couper les faux mouvements.

Par exemple, lorsque je vois une croissance, il monte, mais si les mouvements suivants se produisent dans le filtre spécifié, il ne change pas et se déplace strictement à l'horizontale. Nebhodhimosti avant que l'indicateur ne se mette à plat, comparez les deux dernières valeurs et déterminez la tendance. Si vous voulez, je peux vous envoyer le code.

 
Forexman77:

J'essaie d'appeler Alert pour vérifier, mais rien ne sort. Le problème est que mon indicateur n'a pas changé depuis les trois dernières barres. Je l'ai configuré pour couper les faux mouvements.

Par exemple, lorsque je vois une croissance, il monte, mais si les mouvements suivants se produisent dans le filtre spécifié, il ne change pas et se déplace strictement à l'horizontale. Nebhodhimosti avant la mise à plat de l'indicateur, comparez les deux dernières valeurs et déterminez la tendance. Si vous voulez, je peux vous envoyer le code.

Je vous ai montré comment trouver l'extremum le plus proche de la ligne de l'indicateur dans votre Expert Advisor. Rendez nBars égal à Bars ou remplacez simplement nBars par Bars.
 
artmedia70:
Je vous ai montré comment trouver l'extremum le plus proche d'une ligne d'indicateur dans un EA. Rendez nBars égal à Bars ou remplacez simplement nBars par Bars.

De nombreux paramètres sortent maintenant lorsqu'une valeur quelconque est appelée : a, b ou c.

Le code de l'indicateur :

#property copyright ""
#property link      ""
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//--- input parameters

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,0,2);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,
    MA_1_t,                                                  
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   static double MA_otshet;
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.001 && raznica_static < 0.001)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.001 && raznica < 0.001)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.001) || (raznica <- 0.001))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
Nah... Vous feriez mieux de me montrer ce que vous faites dans votre EA. Comment obtenez-vous les données de votre indicateur ?
 
artmedia70:
Nah... Vous feriez mieux de me montrer ce que vous faites dans votre EA. Comment prenez-vous les données de votre inducteur ?

Pas grand-chose, j'essaie d'alerter et de voir le plus proche de l'altitude là)

Chargez l'indicateur sur le quotidien, trois jours sans changement, ce doit être le problèmeA ?

for (i=2 ; i<Bars ; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1) ;
double b=iCustom(NULL, 0, "EMAF",0,0,i) ;
double c=iCustom(NULL, 0, "EMAF",0,0,i-1) ;
if ((a-b)*(b-c)<0) {
if (b<c) {
;// Found bottom
}
if (b>c) {
Alert ("b=",b) // Found bottom
}
}
}

 
Forexman77:

Pas grand-chose, j'essaie d'alerter et de voir le plus proche de l'altitude là)

Chargez l'indicateur sur le quotidien, trois jours sans changement, ce doit être le problèmeA ?

for (i=2 ; i<Bars ; i++) {
double a=iCustom(NULL, 0, "EMAF",0,0,i+1) ;
double b=iCustom(NULL, 0, "EMAF",0,0,i) ;
double c=iCustom(NULL, 0, "EMAF",0,0,i-1) ;
si ((a-b)*(b-c)<0) {
if (b<c) {
;//Trouver le fond
}
if (b>c) {
Alert ("b=",b)// Peg trouvé
}
}
}

Ça ne peut pas être le problème. Nous avons fait une boucle avant Bars. Pause d'écriture après l'alerte ;
 
artmedia70:
Ça ne peut pas être le problème. Nous avons fait la boucle avant Bars. Après l'alerte, écrivez pause ;

.
Après la pause ; un message apparaît. Mais la valeur ne correspond pas à l'indicateur, peut-être y a-t-il un problème avec l'indicateur lui-même ?
L'indicateur montre la ligne comme j'en ai besoin. Le calcul de l'indicateur est basé sur trois conditions, qui correspondent à la situation actuelle.
 
Forexman77:
Après la pause ; un message apparaît. Mais, la valeur ne correspond pas à l'indicateur, peut-être y a-t-il un problème avec l'indicateur lui-même ?
L'indicateur montre la ligne comme j'en ai besoin. L'indicateur est calculé sur la base de trois conditions qui correspondent à la situation actuelle.

Au lieu de Alert("b=",b) ; Type :

Alert("Цена b="+DoubleToStr(b,Digits)+"\nВремя бара="+TimeToStr(Time[i]));
 
artmedia70:

Au lieu de Alert("b=",b) ; Écrire :



Je ne peux pas, j'ai essayé de différentes manières. Les valeurs ne sont clairement pas appropriées,

Oui et l'heure dans toutes les valeurs "Bar time=2010.11.04 00:00". Appeler par le script.

Il est fort probable que le problème se situe au niveau de l'indicateur : la valeur est obtenue à partir de

ExtMapBuffer1[i]

qui est obtenu à partir de trois conditions différentes correspondant à l'heure actuelle.

Lorsque j'appelle la valeur actuelle de l'EURUSD, tout est OK : 1.3717, ce qui ne peut pas être dit sur les sommets.

 
Les amis, pourriez-vous me dire le code qui a montré le solde qui était au début du mois...