Características del lenguaje mql5, sutilezas y técnicas - página 205

 
fxsaber:

No se ha llamado a ExpertRemove.

Ya veo. ¿Qué te impide manejar los códigos de desinicialización? Sólo tienen el cambio de cuenta en ellos.

 
Artyom Trishkin:

Ya veo. ¿Qué te impide manejar los códigos de desinicialización? Sólo tienen el cambio de cuenta en ellos.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Peculiaridades de mql5, consejos y trucos

fxsaber, 2021.06.30 15:45

Deberías probarlo. Hay una larga discusión sobre este tema en el enlace anterior.

ExpertRemove en OnDeinit es una construcción casi sin sentido.
 
fxsaber:
ExpertRemove en OnDeinit es una construcción casi sin sentido.

Qué confusión :)

¿Has probado a mirar los códigos de desinicialización en OnInit()?

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

¿Has probado a mirar los códigos de desinicialización en OnInit()?

Estudió seriamente la cuestión. Si quieres entender cómo funciona arquitectónicamente, no puedes hacerlo sin probarlo.

 
fxsaber:

Pruébalo. Hay una larga discusión sobre el tema en el enlace anterior.

No veo el problema. El momento del cambio de cuenta está resaltado en amarillo.

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:

No veo el problema. El momento del cambio de cuenta está resaltado en amarillo.

¿Es posible descargar el EA en el cambio de cuenta de esta manera?

 
fxsaber:

Entonces, ¿has conseguido descargar el EA al cambiar de cuenta?

No resolvió el problema de la descarga, resolvió el problema de las alertas innecesarias (trabajando en la cuenta equivocada):

Peculiaridades del lenguaje mql5, consejos y trucos

fxsaber, 2021.06.30 14:01

Este Asesor Experto avisa cuando cambio de cuenta. Parece que no debería hacerlo según la norma

Sin embargo, ocurre por el temporizador.

 
Andrey Khatimlianskii:

No resolvió el problema de la descarga, resolvió el problema de las alertas innecesarias (trabajo en la cuenta equivocada):

Alerta necesaria - para mostrar lo que está pasando. Demuestra una característica.

 

Cartas abiertas por el Probador.

<chart>
tester=1
 
¿Cómo puedo saber el take profit y el stop loss de una posición en el historial?
Razón de la queja: