[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 397

 

Comment puis-je trouver les queues maximales des chandeliers d'achat ?

C'est-à-dire que le chandelier actuel est construit, le chandelier d'achat précédent, nous avons déterminé la queue du chandelier d'achat, puis nous continuons à construire le graphique, le chandelier d'achat apparaît à nouveau et nous avons à nouveau calculé la queue,

maintenant comment trouver le maximum de ces queues et les écrire dans la variable ????

int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b=10;
extern int Num_kolvo_s=10;
int Zn_b;
int Max_b;

int start()
  {
   
  int xBost_b;
  int xBost_s;
double hi=High[1];
double op=Open[1];
double cl=Close[1];
double lo=Low[1];


   if (last_time != Time[0])
   {
      // Ура, новый бар!
      last_time = Time[0];      // запоминаем новый бар
      if(Close[1]>Open[1])
      { 
xBost_b=(hi-cl)*10000;
Kol_vo_b++;
}
      if(Close[1]<Open[1])
      {
 xBost_s=(cl-lo)*10000; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b=0;
Sum_xb=0;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s=0;
Sum_xs=0;
}  
 
Sum_xb=Sum_xb+xBost_b;
Sr_zn_b=Sum_xb/Kol_vo_b;

Sum_xs=Sum_xs+xBost_s;
Sr_zn_s=Sum_xs/Kol_vo_s;

Zn_b=xBost_b;
if(xBost_b>Zn_b)
Max_b=xBost_b;
}




Comment("\n xBost_b=",xBost_b,"\n Sum_xb=",Sum_xb,"\n Kol_vo_b=",Kol_vo_b,"\n Sr_zn_b=",Sr_zn_b,
"\n\n\n\n kolvo_s=",xBost_s,"\n Sum_xs=",Sum_xs,"\n Kol_vo_s=",Kol_vo_s,"\n Sr_zn_s=",Sr_zn_s,"\n\n\n\n Max_b=",Max_b);

return(0);
  }

comment écrire correctement cette partie du code pour trouver le maximum !

Zn_b=xBost_b;
if(xBost_b>Zn_b)
Max_b=xBost_b;

 
Les gens, pouvez-vous me dire comment trouver le maximum ? !
 
//Функция поиска максимума/минимума за заданное количество баров
// type-максимум или минимум, barsearch -количество баров

double yMaxDayPrice(int type,int barsearch)
{
    int    timeframe=1440;
    double minmax;

    if(type==2)
       {
           minmax=Low[iLowest(timeframe,0,MODE_LOW,barsearch,0)];
       }
    if(type==1)
       {
           minmax=High[iHighest(timeframe,0,MODE_HIGH,barsearch,0)];
       }
return(minmax);          
}
 
BeerGod:

le timeframe peut-il être remplacé par null (current), par exemple ?
 

https://docs.mql4.com/ru/series/ilowest vous pouvez, pour que tout soit précis au moment du débogage, mettre les valeurs hautes et basses dans le commentaire.

https://docs.mql4.com/ru/constants/timeframes

 

Mais c'est un peu différent de ce que je voudrais voir...

Pour les barres d'achat, nous déterminons la queue en points xBost_b=(hi-cl)*10000 ;

pour les barres de vente... xBost_s=(cl-lo)*10000;

B-Acheter, S-Vendre, ()-barre actuelle

par exemple une série de barres :

1) B(S)-déterminer la queue de B

2)BS(B) - définissez maintenant la queue de S

3) BSB(S) - maintenant nous définissons la queue de la barre B une fois de plus et ensuite nous devons déterminer quelle queue est plus grande celle-ci ou celle-là, lamême chose pour les barres devente.

Mais après le recalcul (par exemple), le maximum de 10 barres sera réinitialisé et tout reviendra à zéro.

par exemple :

int Sum_xb;
int Sum_xs;
datetime last_time;   // глобальная переменная
int Kol_vo_b;
int Kol_vo_s;
int Sr_zn_b;
int Sr_zn_s;
extern int Num_kolvo_b=10;
extern int Num_kolvo_s=10;
int Zn_b;
int Max_b;

int start()
  {
   
  int xBost_b;
  int xBost_s;
double hi=High[1];
double op=Open[1];
double cl=Close[1];
double lo=Low[1];


   if (last_time != Time[0])
   {
      // Ура, новый бар!
      last_time = Time[0];      // запоминаем новый бар
      if(Close[1]>Open[1])
      { 
xBost_b=(hi-cl)*10000;
Kol_vo_b++;
}
      if(Close[1]<Open[1])
      {
 xBost_s=(cl-lo)*10000; 
 Kol_vo_s++;
 
   }
   
if (Kol_vo_b==Num_kolvo_b)
{
Kol_vo_b=0;
Sum_xb=0;
}
if (Kol_vo_s==Num_kolvo_s)
{
Kol_vo_s=0;
Sum_xs=0;
}
 
Je sais comment en tirer le meilleur parti dans ma tête, mais je n'arrive pas à le convertir en code) J'espère votre aide !
 
DanLett:
Je sais comment en tirer le meilleur parti dans ma tête, mais je n'arrive pas à le convertir en code) J'espère votre aide !


Je ne prétends pas avoir raison, car je suis un amateur, mais dans un de mes EA, j'ai trouvé des maxima et des minima de la même manière, comme on vous l'a déjà dit :

extern int count = 10 ;

..............................

highprice = High[iHighest(NULL,0,MODE_HIGH,count,0)] ;

..............................

lowprice = Low[iLowest(NULL,0,MODE_LOW,count,0)] ;

 
BeerGod:


Ce n'est pas une bonne idée de poster du code avec des erreurs.
 

CHERS PROGRAMMATEURS !!!!

Veuillez me dire où je peux trouver une liste de toutes les erreurs telles que "(" - point-virgule attendu ou "{" - expression sur la portée globale non autorisée et ainsi de suite. Chaque fois, je dois parcourir des forums sur Internet et chercher des traductions de ces erreurs.

MERCI ! !!!

Raison: