Caractéristiques du langage mql5, subtilités et techniques - page 179

 
Konstantin Nikitin:

En option.

Pas un qui fonctionne.

 
fxsaber:

Ne fonctionne pas.

Il semble avoir rechargé le terminal de l'expert resté. Quand j'ai changé de compte, je l'ai supprimé du tableau. La seule chose que je dois jouer avec le nom global pour chaque variante du conseiller expert. Il est possible de l'ajouter au nom de l'omble. Je ne m'en suis pas occupé.

 
Konstantin Nikitin:

Je pense que j'ai surchargé le terminal et que l'expert est resté. Quand j'ai changé de compte, je l'ai supprimé du tableau... La seule chose que je dois jouer avec le nom global pour chaque variante du conseiller expert. Je peux l'ajouter au nom de char. Je ne m'en suis pas occupé.

Il faut que le conseiller expert travaille sur un graphique qui ne fonctionne pas. Et nous proposons des options avec des horaires de travail.

 
Konstantin Nikitin:

Je pense que j'ai surchargé le terminal et que l'expert est resté. Quand j'ai changé de compte, je l'ai supprimé du tableau... La seule chose que je dois jouer avec le nom global pour chaque variante du conseiller expert. Je peux l'ajouter au nom de char. Je ne m'en suis pas occupé.

  1. Ouvrez la démo sur ForexTimeFXTM-Demo01.
  2. Exécuter l'Expert Advisor sur le symbole Brent.
  3. Passez à MQ-Demo.
  4. Utilisez PKM dans le menu Experts pour voir si le conseiller expert est en cours d'exécution ou non.
 
fxsaber:

  1. Ouvrez la démo sur ForexTimeFXTM-Demo01.
  2. Exécuter l'Expert Advisor sur le symbole Brent.
  3. Passez à MQ-Demo.
  4. Utilisez le PCM dans le menu Experts pour voir si le conseiller expert est suspendu ou non.


fxsaber:

En général, appeler ExpertRemove sur REASON_ACCOUNT est une chose absolument dénuée de sens.


Je l'ai vérifié, je pense que c'est encore plus triste, même les erreurs critiques ne déchargent pas mon EA

const long login = AccountInfoInteger(ACCOUNT_LOGIN);
//+------------------------------------------------------------------+
int OnInit()
{
   Print(__FUNCTION__);
   Print("_StopFlag = ",_StopFlag);
   Print("_UninitReason = ",_UninitReason);
   Print("login = ",login);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   Print(__FUNCTION__);
   Print("_StopFlag = ",_StopFlag);
   Print("_UninitReason = ",_UninitReason);
   Print("login = ",login);
   if(_StopFlag && _UninitReason == 6) {int i=1; int j = 10/--i;}
}
//+------------------------------------------------------------------+

mais la portée globale est complètement effacée lorsque le compte est modifié.

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) OnDeinit

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) _StopFlag = 1

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) _UninitReason = 6

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) login = 21796970

2020.05.21 14:30:17.303 tst1 (EURUSD,H1) zero divide in 'tst1.mq5' (25,60)

2020.05.21 14:30:17.373 Experts Le trading automatique est désactivé car le compte a été modifié.

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) OnInit

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) _StopFlag = 0

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) _UninitReason = 0

2020.05.21 14:30:17.797 tst1 (EURUSD,H1) login = 500030706

2020.05.21 14:30:24.492 Experts le trading automatisé est activé

 
Igor Makanu:

Je l'ai vérifié, je pense que c'est encore plus triste, même les erreurs critiques ne déchargent pas mon EA

mais la portée globale est complètement effacée lorsque je change de compte.

Tout y fonctionne de manière logique (mais maladroite par endroits). Vous devez juste comprendre le mécanisme.

 
fxsaber:

Tout y fonctionne logiquement (mais maladroitement par endroits). Vous devez juste comprendre le mécanisme.

Eh bien, le mécanisme est dans l'aide, mais l'aide ne prend pas en compte tous les cas de travail - cette information a été donnée par l'administrateur, mais ensuite le modérateur a été impliqué et les deux sont arrivés à un verdict - vous êtes déliranthttps://www.mql5.com/ru/forum/334269/page53#comment_16412120


donner le mécanisme, l'aide était impuissante ;)

 
Igor Makanu:

donner le mécanisme, l'aide était impuissante ;)

LorsqueREASON_ACCOUNT(même si le compte n'est pas modifié, juste reconnecté), l'EA est complètement déchargé et une nouvelle copie est chargée.

Pour cette raison, ExpertRemove dans OnDeinit n'a aucun effet sur la nouvelle copie, car il concerne celle qui a été déchargée.


Si le symbole est absent, la nouvelle copie est chargée sans aucune exécution.

Et le problème était de décharger une nouvelle copie qui est suspendue, mais ne fonctionne pas.


Une copie suspendue signifie que si l'on passe à un autre compte où il y a un symbole, l'EA démarrera.

 
fxsaber:

Pourquoi le décharger s'il ne fonctionne pas du tout ?

 
Andrey Khatimlianskii:

Et pourquoi le décharger s'il ne fonctionne pas du tout ?

Il devrait y avoir un contrôle total.

Raison: