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

 
fxsaber:

ExpertRemove n'a pas été appelé.

Je vois. Qu'est-ce qui vous empêche de gérer les codes de désinitialisation ? Ils ont juste le changement de compte en eux.

 
Artyom Trishkin:

Je vois. Qu'est-ce qui vous empêche de gérer les codes de désinitialisation ? Ils ont juste le changement de compte en eux.

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, 2021.06.30 15:45

Vous devriez essayer. Il y a une longue discussion sur ce sujet au lien ci-dessus.

ExpertRemove dans OnDeinit est une construction presque sans signification.
 
fxsaber:
ExpertRemove dans OnDeinit est une construction presque sans signification.

Quelle confusion :)

Avez-vous essayé de regarder les codes de désinitialisation dans OnInit() ?

Документация по MQL5: Предопределенные переменные / _UninitReason
Документация по MQL5: Предопределенные переменные / _UninitReason
  • www.mql5.com
_UninitReason - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:

Avez-vous essayé de regarder les codes de désinitialisation dans OnInit() ?

J'ai étudié la question sérieusement. Si vous voulez comprendre comment cela fonctionne sur le plan architectural, vous ne pouvez pas le faire sans essayer.

 
fxsaber:

Essayez-le. Il y a une longue discussion sur le sujet au lien ci-dessus.

Je ne vois pas le problème. Le moment du changement de compte est surligné en jaune.

long prev_account = 0;

int OnInit(void)
{
        prev_account = AccountInfoInteger( ACCOUNT_LOGIN );
        EventSetTimer(1);

        Print( "Initialization on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
        return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
{
        Print( "Deinitialization on account #", prev_account );
        prev_account = 0;
        EventKillTimer();
}

void OnTick(void)
{
        if ( AccountInfoInteger( ACCOUNT_LOGIN ) != prev_account ) return;

        Print( "New tick on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
}

void OnTimer(void)
{
        if ( AccountInfoInteger( ACCOUNT_LOGIN ) != prev_account ) return;

        Print( "Timer on account #", AccountInfoInteger( ACCOUNT_LOGIN ) );
}
2021.07.01 11:53:13.404 test (USDCHF,M5)        Initialization on account #30966228
2021.07.01 11:53:14.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:15.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:16.404 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:17.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:18.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:19.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:20.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:21.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:22.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:23.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:24.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:25.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:25.904 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:26.419 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:27.097 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.214 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.338 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.416 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:27.470 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.574 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:27.682 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:28.282 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:28.407 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:28.408 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.099 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.411 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:29.507 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.644 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:29.873 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:30.234 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:30.405 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:30.449 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:31.238 test (USDCHF,M5)        New tick on account #30966228
2021.07.01 11:53:31.410 test (USDCHF,M5)        Timer on account #30966228
2021.07.01 11:53:31.720 test (USDCHF,M5)        Deinitialization on account #30966228
2021.07.01 11:53:32.226 test (USDCHF,M5)        Initialization on account #42821331
2021.07.01 11:53:33.225 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:33.338 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:33.689 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:34.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:35.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:36.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:36.511 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:36.624 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:36.728 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.157 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.220 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:37.391 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.862 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:37.960 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.210 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.225 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:38.340 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:38.571 test (USDCHF,M5)        New tick on account #42821331
2021.07.01 11:53:39.227 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:40.227 test (USDCHF,M5)        Timer on account #42821331
2021.07.01 11:53:40.689 test (USDCHF,M5)        Deinitialization on account #42821331
 
Andrey Khatimlianskii:

Je ne vois pas le problème. Le moment du changement de compte est surligné en jaune.

Était-il possible de décharger l'EA lors du changement de compte de cette manière ?

 
fxsaber:

Avez-vous réussi à décharger l'EA lors du changement de compte ?

N'a pas résolu le problème du déchargement, a résolu le problème des alertes inutiles (travail sur le mauvais compte) :

Particularités du langage mql5, trucs et astuces

fxsaber, 2021.06.30 14:01

Ce conseiller expert m'alerte lorsque je change de compte. Il semblerait qu'il ne devrait pas le faire selon la règle

Cependant, cela arrive à cause de la minuterie.

 
Andrey Khatimlianskii:

N'a pas résolu le problème du déchargement, a résolu le problème des alertes inutiles (travail sur le mauvais compte) :

Alerte nécessaire - pour montrer ce qui se passe. Démonstration d'une fonctionnalité.

 

Graphiques ouverts par le Testeur.

<chart>
tester=1
 
Comment connaître le take profit et le stop loss d'une position dans l'historique ?