Errori, bug, domande - pagina 2399

 

Il terminale si blocca quando si passa a un altro account.

Build: 2007, OS: Win7 x64


 
Vitaly Muzichenko:

Il terminale si blocca quando si passa a un altro account.

Build: 2007, OS: Win7 x64

Speravo in personaggi personalizzati in queste situazioni, visto che ho tutto in loro.

Probabilmente non li avete. Allora il problema è un altro.

 
fxsaber:

Se cercate di cancellare uno script in loop, il terminale potrebbe bloccarsi per un po'.

Ma se si esegue un Expert Advisor in loop nel Tester, si blocca immediatamente quando si preme il pulsante Stop.


Perché c'è un comportamento diverso in questi casi?

Quanto fa il loop? C'è un controllo IsStopped() nel ciclo?

Se il terminale si blocca, significa che il thread dell'interfaccia è bloccato. Lo script ha 3 secondi per fermarsi e se non c'è un controllo di IsStopped(), continuerà a funzionare fino a quando non verrà fermato esplicitamente. E in questo caso il thread dell'interfaccia può essere bloccato.

Un tester si fermerà molto più velocemente perché non può eseguire funzioni critiche (ad esempio, il trading). Inoltre, il tester è un processo separato che non influenza il terminale client

 
Slava:

Quanto è in loop? C'è un controllo IsStopped() nel ciclo?

Parlavo specificamente di uno script senza questo controllo.

Se il terminale si blocca, significa che il thread dell'interfaccia è bloccato. Lo script ha 3 secondi per fermarsi e se non c'è un controllo IsStopped(), continuerà a funzionare fino a quando non verrà fermato. E in questo caso il thread dell'interfaccia può essere bloccato.

Tester ha un arresto molto più veloce, perché non può eseguire funzioni critiche (ad esempio il trading). Inoltre, il tester è un processo completamente separato che non influenza il terminale client

Così ho notato che l'arresto duro in Tester e Terminale viene eseguito in modo diverso.

 
fxsaber:

Ho peccato per i personaggi personalizzati in situazioni come questa, perché ho tutto in loro.

Probabilmente non li avete. Allora il problema è diverso.

Non ce ne sono di personalizzati.

Se si passa da un account all'altro sullo stesso server, si blocca per un breve periodo e il registro mostra "terminale anomalo".

Se si passa tra diversi server (DC), si blocca per molto tempo.

Se lavora molto a lungo su un server senza passare, per esempio 3-5 giorni, e poi passare, allora il terminale si blocca stretto.

 
Vitaly Muzichenko:


poi si blocca per un breve periodo e il registro mostra "terminale anormale".


Si prega di fornire la voce completa del registro

 
Slava:

Per favore, dammi la voce completa del registro

Capisco, il problema deve essere dalla mia parte e il blocco è del mio consulente.

EJ      2       08:58:24.000    EA_Trade (EURCAD,H1)    Abnormal termination

Giusto?

 
Vitaly Muzichenko:

Capisco, il problema deve essere dalla mia parte e il blocco è del mio consulente.

Giusto?

Sembra un EA in loop senza controllo IsStopped()
 
Slava:
Sembra un EA in loop senza controllo IsStopped()

Sì, lo è, ma non in loop, ma a tempo.

Aggiungo IsStopped().

Grazie!

 
Vitaly Muzichenko:

Sì, lo è, ma non in loop, ma a tempo.

Aggiungo IsStopped().

Grazie!

Se OnTimer non è in loop, non ci dovrebbe essere nessuna terminazione anomala.

Potete dare il vostro esperto per controllare il comportamento del terminale client?