[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 178

 
chief2000 >> :

J'ai eu des problèmes si j'ai configuré des tableaux pour stocker les états des variables pour n'importe quel "i" et

n'ont pas défini leurs dimensions comme "[]".

Si le tableau est défini comme indicateur SetIndexBuffer(0,MyArray) ; dans int init(), il n'a pas besoin d'être initialisé en plus,

Sinon, en plus de déclarer MonRéseau[] ; vous devez initialiser la taille ArrayResize(MonRéseau,Compte) ;,

et exactement dans la fonction où l'affectation sera effectuée.

alors dans

int start()
{ArrayResize( MyArray, Count);
//...
return(0);
}

.

Mais si la taille du tableau est déclarée explicitement par le nombre MyArray[1000]; ; nous n'avons pas besoin de tout cela.

La méthode ArrayResize est utile, lorsque vous ne connaissez pas la taille du tableau à l'avance, et que vous la calculez dans le programme.

 
Urain >> :

Si un tableau est défini comme un indicateur SetIndexBuffer(0,MyArray) ; dans int init(), il n'est pas nécessaire de l'initialiser en plus,

Sinon, en plus de déclarer MonTableau[] ;, vous devez initialiser la taille de ArrayResize(MonTableau,Count) ;,

et exactement dans la fonction où l'affectation sera effectuée.

puis dans

.

Mais si la taille d'un tableau est explicitement déclarée comme MyArray[1000] ;, nous n'avons pas besoin de tout cela.

La méthode ArrayResize est utile lorsque vous ne connaissez pas la taille du tableau à l'avance, mais que vous la calculez dans le programme.



La réponse est exhaustive ! Merci beaucoup !

 
chief2000 >> :

La réponse est exhaustive ! Merci beaucoup !

Je ne résiste pas à l'envie d'ajouter que tout cela, et bien d'autres choses encore, est écrit de manière compacte et très claire dans le manuel, et que l'on devrait progressivement passer de l'écoute des contes à leur lecture.

 

Veuillez expliquer si l'instruction switch peut être insérée après If ?

ceux-là :

si (condition)

commutateur

 
chief2000 >> :

Un Chukcha pêche sur le rivage. Un sous-marin américain surgit, le capitaine en sort.

Il regarde autour de lui, crie vers un cours de nord-est. Le bateau a plongé et a disparu. Quelque temps plus tard, un sous-marin russe

un sous-marin russe surgit. Le capitaine demande au Chukcha dans quelle direction le sous-marin américain a disparu.

Chukcha répond :
- Cap sur le nord-est !
- Ne fais pas le malin avec moi, montre-moi avec ton doigt !

:)

Quelques conseils pour un débutant.

Il y a certaines fonctions dans MQL qui sont appelées pour faire un poisson.

Si cette fonction est disponible, elle peut être réécrite comme une DLL et il sera alors possible de l'appeler dans d'autres programmes, par exemple dans Omega.

Merci.

 
granit77 >> :

Je ne résiste pas à l'envie d'ajouter que tout cela, et bien d'autres choses encore, est écrit de manière compacte et très claire dans le manuel, et que l'on devrait progressivement passer de l'écoute des contes à la lecture par soi-même.

Tout cela est vrai, mais tout prend du temps. Et bientôt vous devrez étudier le MQL5.

 

People kind help with the condition ... comment épeler correctement la condition telle que : il y a un indicateur avec 2 niveaux de 0 et 100 ... et la condition est la suivante : la ligne est descendue en dessous du niveau 0 après un certain temps, est passée au-dessus du niveau 0 et a dépassé le niveau de 100 et le niveau de sortie de 100 condition devrait se terminer.

ׂ

Je ne peux pas le mettre dans mon EA... Je ne sais pas comment faire, ........ ?????

et est-il possible d'écrire la condition ci-dessous ?


 
Infinity >> :

Comment épeler correctement la condition comme : il y a un indicateur avec 2 niveaux de 0 et 100 ... et la condition est la suivante : la ligne est descendue en dessous du niveau 0 après un certain temps, est passée au-dessus du niveau 0 et a dépassé le niveau de 100 et le niveau de sortie de 100 condition devrait se terminer.

Je ne peux pas le mettre dans mon EA... Je ne sais pas comment faire, ........ ?????

et est-il possible d'écrire la condition ci-dessous ?


Cherchez une EA de Laguero, je pense qu'il y avait de telles conditions là-bas ; je ne me souviens pas exactement, mais la vôtre y ressemble beaucoup...

 
Infinity писал(а) >>

Comment épeler correctement la condition comme : il y a un indicateur avec 2 niveaux de 0 et 100 ... et la condition est la suivante : la ligne est descendue en dessous du niveau 0 après un certain temps, est passée au-dessus du niveau 0 et a dépassé le niveau de 100 et le niveau de sortie de 100 condition devrait se terminer.

Je ne peux pas le mettre dans mon EA... Je ne sais pas comment faire, ........ ?????

et est-il possible d'écrire la condition ci-dessous ?

Ça doit être quelque chose comme :

if( ind[1]>0 && ind[2]<=0) flag_1 = true;
if( ind[1]<0 && ind[2]>=0) flag_1 = false;

if( flag_1 && ind[1]>100 && ind[2]<=100) { flag_2 = true; flag_1=false; }

if( flag_2 && flag_2 && ind[1]<100 && ind[2]>=100)
{
   flag_2 = false;
   // Здесь вроде бы произошло описываемое событие...
   // Но надо экспертом проверять...
}
Ce que je voulais dire c'est qu'il faut décrire avec ces cases à cocher alors il y aura moins de calculs, et de plus il n'y aura pas de cycles....
 
Infinity >> :

Comment épeler correctement la condition comme : il y a un indicateur avec 2 niveaux de 0 et 100 ... et la condition est la suivante : la ligne est descendue en dessous du niveau 0 après un certain temps, est passée au-dessus du niveau 0 et a dépassé le niveau de 100 et le niveau de sortie de 100 condition devrait se terminer.

Je ne peux pas le mettre dans mon EA... Je ne sais pas comment faire, ........ ?????

et est-il possible d'écrire la condition ci-dessous ?


Peut-être quelque chose comme ça - juste une idée( !) - pour l'Indicateur :

x[ i]=iRSI(...); // <= Пусть RSI будет в качестве Примера. 

TimeStart = 0;
TimeEnd   = 0;


if( x[ i]>0   &&   x[ i+1]<=0) {
   TimeStart=Time[ i];
}
if( x[ i]>=100   &&   x[ i+1]<100){
   TimeEnd=Time[ i+1];
}

if( TimeStart!=0   &&   TimeEnd!=0   &&   TimeEnd> TimeStart) {
   Range_i_Start = iBarShift(NULL,0, TimeStart);
   Range_i_End   = iBarShift(NULL,0, TimeEnd);

   bool status = false;
   for(int k = ... Range_i_Start -> Range_i_End  ) {
      if( x[ k]<0   ||   x[ k]>100) {
         status = true;
         break;
      }
   } // for()

   if( status==false) {
      ... Done;

      TimeStart = 0;
      TimeEnd   = 0;
   }
} // if(TimeStart!=0   &&   TimeEnd!=0) {
Raison: