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

 
niktron:

Bonjour !

Pouvez-vous me dire comment faire une condition -

s'il y a assez de marge libre pour ouvrir une position ?

(pour que l'erreur 131 ne s'affiche pas)... Merci !

Vous devez vérifier le volume de la position autorisée, et non la marge. La 131e erreur indique un lot incorrect
 

Besoin de trouver la valeur maximale de l'indicateur sur 15 périodes. La recherche dans les barres n'est pas un problème, mais dans un indicateur ?

Je suppose que pour cela vous devez faire une boucle de contrôle, déclarer un tableau et y trouver cette valeur. La boucle est faite, mais je ne sais pas comment déclarer le tableau.

Et ensuite utiliser la fonction ArrayMaximum pour trouver la valeur ? Pouvez-vous me dire comment accomplir cette tâche ?

for(int i=0;i<=15;i++)
{
double indicator[];
ArrayInitialize(indicator,0);
double MA_2_t=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
}
 
niktron:

Bonjour !

Pouvez-vous me dire comment faire une condition -

s'il y a assez de marge libre pour ouvrir une position ?

(pour que l'erreur 131 ne s'affiche pas)... Merci !


https://docs.mql4.com/ru/account/accountfreemargincheck
 
Forexman77:

Besoin de trouver la valeur maximale de l'indicateur sur 15 périodes. La recherche dans les barres n'est pas un problème, mais dans un indicateur ?

Je suppose que pour cela vous devez faire une boucle de contrôle, déclarer un tableau et y trouver cette valeur. La boucle est faite, mais je ne sais pas comment déclarer le tableau.

Et ensuite, je vais utiliser la fonction ArrayMaximum pour trouver la valeur. Veuillez me conseiller sur la façon d'accomplir cette tâche.

Vous avez besoin non seulement d'un tableau, mais aussi d'un tampon indicateur. Dans la boucle principale, remplissez le tampon avec les valeurs des indicateurs et utilisez ArrayMaximum() pour ce tampon.
 
Integer:
Vous n'avez pas seulement besoin d'un tableau, mais d'un tampon indicateur. Dans la boucle principale, remplissez le tampon avec les valeurs des indicateurs et utilisez ArrayMaximum() pour ce tampon.

La recherche est nécessaire pour le conseiller expert. Le tampon indicateur fonctionnera-t-il avec lui ?
 
Forexman77:
La recherche est nécessaire pour le conseiller expert. Un tampon indicateur fonctionnera-t-il avec elle ?


Il n'y a pas de tampon indicateur dans l'EA.

Si vous êtes dans l'EA, vous avez deux possibilités :

1. Faites tout dans l'indicateur, l'EA appelle l'indicateur et obtient une valeur prête.

2. Faire une boucle dans le conseiller expert. Mais dans ce cas, le tableau n'est pas du tout nécessaire.

val=0;

for(i=1;i<=15;i++) {

    ind=iMA(...,i);

   if(ind>val) val=ind;

}
 
Integer:


Le conseiller expert n'a pas de tampon d'indicateur.

Si vous êtes dans l'EA, vous avez deux possibilités :

1. Faites tout dans l'indicateur, l'EA appelle l'indicateur et obtient une valeur prête.

2. Faire une boucle dans le conseiller expert. Mais dans ce cas, le tableau n'est pas du tout nécessaire.

Un tableau sera nécessaire. Pour trouver le minimum. Le minimum ne sera pas trouvé de cette manière.
 
Forexman77:
Un tableau sera nécessaire. Pour trouver le minimum. Le minimum ne sera pas trouvé de cette manière.



Donc vous savez exactement et êtes absolument sûr ? Il n'est pas nécessaire de réfuter votre opinion ? Préféreriez-vous vous y tenir ?

 
niktron:

Bonjour !

Pouvez-vous me dire comment faire une condition -

s'il y a assez de marge libre pour ouvrir une position ?

(pour que l'erreur 131 ne s'affiche pas)... Merci !

peut-être que le lot est faux si 131 ?
 
Integer:



Vous êtes donc sûr et absolument certain ? Il n'est pas nécessaire de réfuter votre opinion ? Préférez-vous vous y tenir ?

Bien sûr que oui ! Eh bien, comment appliquer cette construction pour trouver le minimum ? Je n'arrive pas à m'y retrouver)
Et je veux apprendre à déclarer un tableau. J'ai essayé de cette façon :

double massiv[];
int start()
  {
//----
for(int i=0;i<=33;i++)
{
double ind=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,i); 
massiv[33]=ind;
double minValueidx=ArrayMinimum(massiv,33,0);
Alert("minValueidx=",minValueidx);
}
//----
   return(0);
  }
Elle sort à -1.
Raison: