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

 
Andrey Barinov:

Je comprends que vous devez décharger à l'init (ou mieux ontik) après un changement. Par exemple, mémoriser les numéros de compte dans des variables globales et les décharger en cas de changement. Vous pouvez également essayer d'analyser _DeInitReason dans les init() et unload.

Cette solution a été présentée, mais elle ne fonctionne que si le même symbole existe après le changement de compte.

 
fxsaber:

Veuillez montrer ici le code source d'un EA qui se décharge lui-même lorsque le compte change.

En ai-je besoin ? Vous parlez ici du problème des différents noms de symboles.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Particularités de mql5, trucs et astuces

fxsaber, 2020.05.20 23:09

J'ai un très bon conseiller expert, qui devrait être supprimé lors du changement de compte.

Supposons que le conseiller expert fonctionne sur l'EURUSD. Il passera à un serveur où les symboles sont préfixés. Par exemple, EURUSD.abc.

Dans ce cas, l'EA se bloque toujours et ne peut pas se supprimer. Quelqu'un a-t-il une solution à ce problème ?


C'est exactement ce que j'ai répondu. Si les noms des instruments sont différents dans les différents comptes, utilisez les fonctions de traitement des chaînes de caractères et extrayez la bonne partie de cette chaîne.
 
Igor Zakharov:

dans quel cas la fonction OnInit() n'est pas lancée ?

Rien n'est déclenché.

Peut-être au niveau de OnDeinit() essayer de supprimer ?

ExpertRemove() n'est certainement pas une aide. Vous pouvez essayer via des modèles. Mais OnDeinit n'est pas capable de détecter qu'il y a eu un changement de compte.

 
Alexey Viktorov:

En ai-je besoin ? Vous parlez ici du problème des noms de personnages différents.

C'est exactement ce que j'ai répondu. Si les noms des instruments sont différents dans les différents comptes, utilisez les fonctions de traitement des chaînes de caractères et extrayez la bonne partie de cette chaîne.

Vous ne parlez pas à un débutant. Ne proposez pas d'hypothèses irréalisables.

 
fxsaber:

Rien ne démarre.

ExpertRemove() n'est d'aucune aide. Nous pouvons essayer par le biais de modèles. Mais dans OnDeinit il n'est pas possible de déterminer qu'il y a eu un changement de compte.

Là où ExpertRemove ne fonctionne pas - il y a aussi ChartClose(). Je ne comprends pas quel est le problème. Que se passe-t-il après la modification du compte ? Un graphique supplémentaire avec Expert Advisor apparaît ? Ou bien seul le symbole actuel du graphique change ? Peut-être que le ChartID a été modifié et que votre solution précédente ne fonctionne pas ? Les ticks sont traités de toute façon, cela signifie que nous devons décharger à OnTick, si OnInit ne fonctionne pas.

 
fxsaber:

Vous ne parlez pas à un nouveau venu. Ne proposez pas d'hypothèses irréalisables.

De même, vous ne devez pas publier un code qui ne fonctionne pas. Et n'abordez pas les problèmes rencontrés sur le chemin épineux d'un programmeur dans le thème des caractéristiques du langage.

 
Alexey Viktorov:

De la même manière, vous ne devez pas publier un code qui ne fonctionne pas. Et n'abordez pas dans le thème des caractéristiques du langage les problèmes rencontrés sur le chemin épineux d'un programmeur.

Vous êtes incompétent sur ce problème.

 

seuls les services ne sont pas liés au graphique. je ne l'ai pas testé, mais il est probable qu'il sera capable de redémarrer après avoir changé de compte. et déjà de cela changer les modèles d'autres graphiques. mais en général, il est étrange que REASON_ACCOUNT ne soit pas pris.

mais en général, c'est plus un bug qu'une fonctionnalité.

 
fxsaber:

Vous êtes incompétent sur ce problème.

Si vous êtes si compétent, alors dites-moi pourquoi cela ne fonctionne pas.

REASON_ACCOUNT

6

Unautre compte a été activé ou reconnecté au serveur commercial en raison d'une modification des paramètres du compte.

 
Alexey Viktorov:

Si vous êtes si compétent, dites-moi pourquoi cela ne fonctionne pas.

REASON_ACCOUNT

6

Un autre compte a été activé ou reconnecté au serveur commercial en raison d'une modification des paramètres du compte.

  1. La documentation est fausse. Vous pouvez le vérifier manuellement en vous reconnectant.
  2. Il n'y a pas de moyen facile de se décharger.
Raison: