Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 179

 
Konstantin Nikitin:

Come opzione.

Non uno funzionante.

 
fxsaber:

Non funziona.

Sembra aver ricaricato l'esperto terminale è rimasto. Quando ho cambiato l'account l'ho cancellato dal grafico. L'unica cosa che devo giocare con il nome globale per ogni variante dell'Expert Advisor. È possibile aggiungerlo al nome del char. Non me ne sono preoccupato.

 
Konstantin Nikitin:

Credo di aver sovraccaricato il terminale e l'esperto è rimasto. Quando ho cambiato l'account l'ho cancellato dal grafico... L'unica cosa che devo giocare con il nome globale per ogni variante dell'Expert Advisor. Posso aggiungerlo al nome di char. Non mi sono preoccupato.

Ha bisogno che l'Expert Advisor lavori su un grafico non funzionante. E offriamo opzioni con orari di lavoro.

 
Konstantin Nikitin:

Credo di aver sovraccaricato il terminale e l'esperto è rimasto. Quando ho cambiato l'account l'ho cancellato dal grafico... L'unica cosa che devo giocare con il nome globale per ogni variante dell'Expert Advisor. Posso aggiungerlo al nome di char. Non mi sono preoccupato.

  1. Aprire la demo su ForexTimeFXTM-Demo01.
  2. Esegui l'Expert Advisor sul simbolo Brent.
  3. Passare a MQ-Demo.
  4. Usa PKM nel menu Experts per vedere se Expert Advisor è in esecuzione o meno.
 
fxsaber:

  1. Aprire la demo su ForexTimeFXTM-Demo01.
  2. Esegui l'Expert Advisor sul simbolo Brent.
  3. Passare a MQ-Demo.
  4. Usa il PCM nel menu Esperti per vedere se l'Expert Advisor è sospeso o no.


fxsaber:

In generale, chiamare ExpertRemove su REASON_ACCOUNT è una cosa assolutamente senza senso.


Controllato, penso che sia ancora più triste, anche gli errori critici non scaricano il mio 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;}
}
//+------------------------------------------------------------------+

ma l'ambito globale viene completamente cancellato quando l'account viene cambiato

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 Esperti il trading automatico è disabilitato perché il conto è stato cambiato

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 Esperti il trading automatico è abilitato

 
Igor Makanu:

Controllato, penso che sia ancora più triste, anche gli errori critici non scaricano il mio EA

ma l'ambito globale viene completamente cancellato quando cambio l'account

Lì tutto funziona in modo logico (ma scomodo in alcuni punti). Bisogna solo capire il meccanismo.

 
fxsaber:

Lì tutto funziona in modo logico (ma goffamente in alcuni punti). Bisogna solo capire il meccanismo.

Bene, il meccanismo è nell'aiuto, ma l'aiuto non tiene conto di tutti i casi in lavorazione - questa informazione è stata data dall'amministratore, ma poi il moderatore è stato coinvolto e i due sono arrivati a un verdetto - sei delirantehttps://www.mql5.com/ru/forum/334269/page53#comment_16412120


dare il meccanismo, l'aiuto era impotente ;)

 
Igor Makanu:

dare meccanismo, aiuto era impotente ;)

QuandoREASON_ACCOUNT(anche se l'account non è cambiato, solo ri-loggato), l'EA viene completamente scaricato e viene caricata una nuova copia.

Per questo motivo, ExpertRemove in OnDeinit non ha effetto sulla nuova copia, perché riguarda quella scaricata.


Se il simbolo manca, la nuova copia viene caricata senza alcuna esecuzione.

E il problema era quello di scaricare una nuova copia che è sospesa, ma non in esecuzione.


Una copia sospesa significa che se c'è un passaggio ad un altro conto dove c'è un simbolo, l'EA partirà.

 
fxsaber:

Perché scaricarlo se non funziona affatto?

 
Andrey Khatimlianskii:

E perché scaricarlo se non funziona affatto?

Ci dovrebbe essere il pieno controllo.