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

 
Bonjour, Toujours après avoir désactivé et activé"Allow EA to trade" une position s'ouvre qui ne devrait pas s'ouvrir. Je suppose que c'est parce que les variables ne sont pas réinitialisées. Comment puis-je activer ou désactiver "Allow EA to trade" et réinitialiser toutes les variables, telles qu'elles sont après le redémarrage de la plateforme MT4 ?
 
abeiks:
Bonjour, Toujours après avoir désactivé et activé "Allow EA to trade" une position s'ouvre qui ne devrait pas s'ouvrir. Je suppose que c'est parce que les variables ne sont pas réinitialisées. Comment puis-je réinitialiser toutes les variables après l'activation ou la désactivation de "Allow EA to trade" telles qu'elles sont après le redémarrage de la plateforme MT4 ?
Il suffit de réinitialiser ces variables au moment où cette case est décochée et de ne pas y toucher jusqu'à ce qu'un utilisateur l'active à nouveau. Attention à MQLInfoInteger(MQL_TRADE_ALLOWED).
 
evillive:
Il suffit de réinitialiser ces variables au moment où cette même case est décochée et de ne plus y toucher jusqu'à ce qu'un utilisateur l'active à nouveau. Attention à MQLInfoInteger(MQL_TRADE_ALLOWED).
Merci !
 
evillive:
Il suffit de réinitialiser ces variables au moment où cette même case est décochée et de ne plus y toucher jusqu'à ce qu'un utilisateur l'active à nouveau. Attention à MQLInfoInteger(MQL_TRADE_ALLOWED).
Existe-t-il un moyen de s'assurer qu'après IsTradeAllowed()==false l'expert est supprimé et rechargé ( expert : removed ; expert : load successfully) ?
 
evillive:

Il s'agit du même branchement que if(), mais il est plus propre et plus facile à coder s'il y a au moins trois choix uniques d'entiers parmi lesquels choisir. S'il n'y a que deux variantes, ou si des expressions non entières sont comparées, alors seul if(). En outre, avec if(), vous pouvez combiner plusieurs options (if( option1 && option2 || option3 ) {action;}), alors que switch ne peut pas le faire directement, seulement une à la fois.

commutateur
si()
interrupteur (x)
{
cas 1 : action sur l'option 1 ; rupture ;
cas 2 : action sur l'option 2 ; rupture ;
cas 3 : action sur l'option 3 ; rupture ;
default : action par défaut ; break ;
}
if( option1 ) { action dans l'option 1 ; }
else if( option2 ) { actions by option 2 ; }
else if( option3 ) { actions by option 3 ; }
else { action par défaut ; }

Merci ! Je n'ai pas vu une telle comparaison dans le tutoriel, mais peut-être que je lis dans le désordre.

Quoi qu'il en soit, c'est exactement ce qu'un débutant attend d'un professionnel : qu'il lui révèle des subtilités qu'il ne trouvera ni dans un manuel ni dans une référence.

 
Encore une fois, la question est la suivante : y a-t-il une restriction d'attachement (voir SRC) dans la boucle if-else ?
if()
   {if()
      {}
      else
      {}
    }
    else
    {
    if()
      {}
      else ...и т.д....
     }             
Je ne trouve aucune raison pour laquelle un code aussi primitif ne fonctionne pas.
 
rapid_minus:
Je pose à nouveau la question : y a-t-il une restriction de l'attachement (voir SRC) dans la boucle if-else ? Je ne trouve pas de raison pour laquelle un code aussi primitif ne fonctionne pas.
Qu'est-ce qui ne marche pas exactement ?
 
evillive:
Qu'est-ce qui ne va pas exactement ?


Tout :( Lors du test, la position s'ouvre immédiatement selon des critères non spécifiés dans le code, et ne la ferme pas avant la fin du test, c'est-à-dire qu'elle ignore toutes les conditions de fermeture, prescrites dans le code.

Il n'est pas clair si les conditions de fermeture sont spécifiées de manière incorrecte ou si laposition ouverte n'est pas lisible.

 
rapid_minus:


Tout :( Pendant le test, la position est ouverte immédiatement, selon des critères non spécifiés dans le code, et ne la ferme pas avant la fin du test, c'est-à-dire qu'elle ignore toutes les conditions de fermeture prescrites dans le code.

Il n'est pas clair si les conditions de fermeture sont définies de manière incorrecte ou si la position ouverte n'est pas lisible.

Dans ce cas, lorsqu'il n'est pas clair où se situe le problème, il est recommandé d'insérer après chaque action une impression avec la description de l'action (et la sortie d'erreur, si nécessaire).
 
evillive:
Dans de tels cas, lorsqu'il n'est pas clair où se situe le problème, il est recommandé d'insérer une impression après chaque action avec une description de l'action (et une sortie d'erreur si nécessaire).

Merci. C'est beaucoup de travail, mais il semble que je ne trouverai pas l'erreur autrement.
Raison: