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

 
evillive:
Exact, lorsque vous utilisez les bandes de Bollinger, vous n'avez pas besoin d'appeler iCustom, vous appelez iBands, pour chaque ligne d'indicateur - séparément. L'autre façon de procéder sans appeler l'indicateur ("sans utiliser de tampons, de tableaux et de boucles") est d'implémenter dans l'Expert Advisor l'algorithme de calcul de l'indicateur et de lire la bonne valeur lorsque cela est nécessaire (vous pouvez lire uniquement la bonne valeur, par exemple, uniquement la ligne du bas). Mais il est impossible de se passer complètement de boucles et de tableaux.

OK. Alors comment l'écrire correctement ?

MB_2=iBandes(NULL,0,10,0,2.0,PRICE_CLOSE,2) ;
Delta_0=iBandes(ExtUpperBuffer[0]-ExtLowerBuffer[0]) ;

Comment extraire les valeurs de ExtUpperBuffer[0] et ExtUpperBuffer[1], respectivement inférieures et supérieures ?

 
rapid_minus:

OK. Alors comment l'écrire correctement ?

MB_2=iBandes(NULL,0,10,0,2.0,PRICE_CLOSE,2) ;
Delta_0=iBandes(ExtUpperBuffer[0]-ExtLowerBuffer[0]) ;

Comment extraire les valeurs de ExtUpperBuffer[0] et ExtUpperBuffer[1], respectivement en haut et en bas ?

Ici encore, l'appel de l'indicateur est écrit de manière incorrecte.

Je l'ai déjà écrit correctement ici. Vous n'avez rien à inventer de vous-même, tout est dans la référence.

Encore une fois :

High_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,2); //это и есть ExtUpperBuffer[2]
High_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,1); //ExtUpperBuffer[1]
High_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_UPPER,0); //ExtUpperBuffer[0]
Low_2=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,2); //ну и нижние соответственно, ExtLowerBuffer[2]
Low_1=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,1); //ExtLowerBuffer[1]
Low_0=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_LOWER,0); //ExtLowerBuffer[0]
 
evillive:

Ici encore, l'appel de l'indicateur est écrit de manière incorrecte.

J'ai déjà écrit la manière correcte ici. Vous n'avez pas besoin d'inventer quoi que ce soit, tout est dans le manuel.

Encore une fois :

Eh bien, je l'ai eu la troisième fois. Il semble.

Donc l'erreur dans MB_2 est qu'il n'y a pas de désignation de ligne appelable, n'est-ce pas ? Mais je n'ai pas encore trouvé comment appeler la ligne médiane de Bollinger. Ou simplement comme une moyenne mobile ? MODE_SMA ?

 
rapid_minus:

Eh bien, je l'ai eu à la troisième fois. Il semble que oui.

Donc l'erreur dans MV_2 est qu'il n'y a pas de désignation de ligne appelable, n'est-ce pas ? Mais je n'ai pas encore trouvé comment appeler la ligne moyenne de Bollinger. Ou simplement comme une moyenne mobile ? MODE_SMA ?

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0) ; - à la barre zéro (dernier chiffre entre parenthèses - décalage à la barre désirée).

Pas besoin de se précipiter, lisez attentivement l'aide.

 
evillive:

Mid=iBands(NULL,0,20,2,0,PRICE_CLOSE,MODE_MAIN,0) ; - à la barre zéro (dernier chiffre entre parenthèses - décalage à la barre requise).

Pas besoin de se précipiter, lisez attentivement l'aide.

Merci !

Seulement, comment la trouver dans l'aide lorsque vous ne savez pas comment formuler la question - c'est là la question !

Merci encore. Je vais creuser un peu plus.

 
rapid_minus:

Merci !

Seulement, comment la trouver dans l'aide lorsque vous ne savez pas comment formuler la question - c'est là la question !

Merci encore. Je vais aller creuser un peu plus.

Apprendre à poser les bonnes questions est la moitié de la réponse, en quelque sorte ;)
 
mario065:
Voici un exemple où j'ai montré comment mesurer une mesure après avoir traversé 2 muves.

J'ai essayé votre code.

La question est le numéro de barre ?

J'ai expliqué sa valeur ; elle dessine différents chiffres, dont le zéro de l'aiguille des heures.

J'ai essayé de le faire passer dans un testeur, même chose.

Si la valeur de l'un est la même que celle de l'autre, il essaiera de tirer des nombres comme je l'ai demandé.

merci

 
sannin:

J'ai essayé votre code

La question est le numéro de barre ?

J'ai expliqué sa valeur ; elle dessine différents chiffres, dont le zéro de l'aiguille des heures.

J'ai essayé de le faire passer dans un testeur, même chose.

Si la valeur de l'un est la même que celle de l'autre, il essaiera de tirer des nombres comme je l'ai demandé.

Merci

J'essaie juste de donner un exemple.

Je vois que tu l'as fait.)

Voici le code :

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

extern int limit = 300;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    static datetime time,timeup,timedn;
    double spread=MarketInfo(Symbol(),MODE_SPREAD);
    double maslow1,mafast1,maslow2,mafast2;
    int    shift,shift1,shift2,f,j;
    
    for(shift=limit;shift>0;shift--){
        shift1=shift+1;shift2=shift+2;
        maslow1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift1);
        mafast1 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift1);
        maslow2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_OPEN,shift2);
        mafast2 = iMA(NULL,0,5,0,MODE_SMA,PRICE_OPEN,shift2);
 
     if(mafast2<maslow2 && mafast1>maslow1){
        timeup=Time[shift1];
       } 
     if(mafast2>maslow2 && mafast1<maslow1){
        timedn=Time[shift1];
       } 
     
     if(timeup > timedn){
        time = timeup;
       } else {
        time = timedn;
       }
     }
 
      int b1=iBarShift(Symbol(), 0, time);      
      int b2=iBarShift(Symbol(), 0, TimeCurrent());
//Преброяване на баровете-от нулевия до началната дата
    for(j=b2;j<=b1;j++){
        f=b1-b2;
       }
      
   Comment("\n Време на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS)," Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
           "\n Текущ спред: ",DoubleToStr(spread/10,1),
           "\n=====================",
           "\n Начална дата:           ",TimeToStr(time,TIME_DATE|TIME_SECONDS), 
           "\n Брой барове:            ",f,
           "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+

 
mario065:

Je l'ai écrit à titre d'exemple.

Je vois que vous avez réussi :)

Voici le code :

Merci beaucoup.

Je partagerai quand je serai riche.

 
sannin:

Merci beaucoup.

Je partagerai quand je serai riche.

Le café suffit quand on devient riche ;)