Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1728

 
Snajper007 #:

Ce code montre le signal sur la 10ème bougie. J'ai besoin de vérifier le signal sur chaque bougie de 1 à N.

Modifier l'ordre de la recherche.

Vous cherchez depuis le fond des âges jusqu'à l'époque actuelle et trouvez donc le "signal le plus ancien".

A en juger par iCustom - vous en avez 4 et donc la numérotation.

la boucle doit être comprise entre 0 (plus probablement 1-2) et N

for(int i=0;i<n;i++)

 
Snajper007 #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
 
Autant que je me souvienne, l'indicateur FL11 est de travers et vous ne pouvez pas l'utiliser correctement. Redessiner... Le cycle devrait aller de 0 vers la gauche et s'interrompre si un signal est trouvé... Ou bien, remettez le temps du signal dans le corps du cycle et imprimez le résultat de chaque barre. Mais vous n'apprendrez rien avec cet indicateur, achetez-en un normal.
 
MakarFX #:
int n=10;
   datetime bar_sig_buy, bar_sig_sell;

   for(int i=n;i>=0;i--)
     {
     // для покупок
   double a1 = iCustom(NULL, 0, "FL11", 4, i);
   // для продаж 
   double a2 = iCustom(NULL, 0, "FL11", 5, i);


      if(a1 > 0)
         bar_sig_buy=Time[i];
         
      if(a2 > 0)
        bar_sig_sell = Time[i];
     Comment("bar_sig_sell = " + DoubleToString(bar_sig_sell)+ "\n" +
     "bar_sig_buy = " + DoubleToString(bar_sig_buy));

     }
Rien n'a changé. Le signal est toujours présent sur la 10ème bougie.
 
Snajper007 #:
Rien n'a changé. Le signal est toujours présent sur la 10ème bougie.
2021.11.08 18:44:44.620 2021.10.15 17:10:00  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.571 2021.10.15 17:07:30  BAG GBPUSD,H1: 0/sell: 2021.10.15 17:00:00
2021.11.08 18:44:44.530 2021.10.15 17:05:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.480 2021.10.15 17:02:30  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.432 2021.10.15 17:00:00  BAG GBPUSD,H1: 3/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.385 2021.10.15 16:59:59  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
2021.11.08 18:44:44.339 2021.10.15 16:57:30  BAG GBPUSD,H1: 2/sell: 2021.10.15 14:00:00
 
Snajper007 #:
Rien n'a changé. Le signal est toujours affiché sur la 10ème bougie.

Voici la fonction d'analyse du signal de cet indicateur provenant de mes anciennes archives, adaptez-la à vos propres besoins...

Renvoie le dernier signal. 1 - soleil supérieur, 0 - soleil inférieur. -1 - aucun signal/erreur.

int gsun(ENUM_TIMEFRAMES tf)
{
double up=0.0,dw=0.0;
for(int i=1;i<iBars(Symbol(),tf);i++)
  {
  up=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,5,i);
  dw=iCustom(Symbol(),tf,"FL11",Period1,Period2,Period3,Deviat1,Deviat2,Deviat3,4,i);
  if(up!=0.0&&up!=EMPTY_VALUE)return(1);
  if(dw!=0.0&&dw!=EMPTY_VALUE)return(0);
  }
return(-1);
}
//---
 

MakarFX

Merci ! Ça marche !

 
Nikolay Ivanov #:
Autant que je me souvienne, l'indicateur FL11 est de travers et vous ne pouvez pas l'utiliser correctement. Redessiner... Le cycle devrait aller de 0 vers la gauche et s'interrompre si un signal est trouvé... Ou bien, remettez le temps du signal dans le corps du cycle et imprimez le résultat de chaque barre. Mais vous n'apprendrez rien avec cet indicateur.
Qu'est-ce qu'un indicateur normal ?
 
Snajper007 #:


L'image doit être insérée à l'aide du bouton Image ou attachée à l'aide du bouton Joindre le fichier

 
Snajper007 #:
Quel est l'indicateur correct ?

Tout ce qui ne dépasse pas la logique, généralement 0 bar, pour les fractales 2.

Je juge en termes de fonctionnement correct.