Erreur numéro 6 - page 28

 
C'est ce que j'ai reçu hier. Build 183 beta de 7/10. Après le redémarrage manuel, tout va bien.

18:29:55 TradeContext : démarrage de la connexion
18:29:55 'Alpari-Demo' : démarrage de la connexion
18:29:56 '67794' - erreur de connexion (6, 10054)
18:29:56 '67794' : impossible de se connecter [Pas de connexion].
18:30:35 'TradeContext' : démarrage de la connexion
18:30:35 'Alpari-Demo' : démarrage de la connexion
18:30:35 '67794' - erreur de connexion (6, 10054)
18:30:35 '67794' : impossible de se connecter [Pas de connexion].
18:31:03 'TradeContext' : démarrage de la connexion
18:31:03 'Alpari-Demo' : démarrage de la connexion
18:31:03 '67794' - erreur de connexion (6, 10054)
18:31:03 '67794' : impossible de se connecter [Pas de connexion].
18:31:10 'TradeContext' : démarrage de la connexion
18:31:10 'Alpari-Demo' : démarrage de la connexion
18:31:10 '67794' - erreur de connexion (6, 10054)
18:31:10 '67794' : impossible de se connecter [Pas de connexion].
18:31:11 'TradeContext' : démarrage de la connexion
18:31:11 'Alpari-Demo' : démarrage de la connexion
18:31:11 '67794' - erreur de connexion (6, 10054)
18:31:11 '67794' : impossible de se connecter [Pas de connexion].
18:31:20 'TradeContext' : démarrage de la connexion
18:31:20 'Alpari-Demo' : démarrage de la connexion
18:31:20 '67794' - erreur de connexion (6, 10054)
18:31:20 '67794' : impossible de se connecter [Pas de connexion].
18:31:27 'TradeContext' : démarrage de la connexion
18:31:27 'Alpari-Demo' : démarrage de la connexion
18:31:27 '67794' - erreur de connexion (6, 10054)
18:31:27 '67794' : impossible de se connecter [Pas de connexion].
 
xxx
 
Résultats du test expert proposé par Slava "take it from this thread and run it".
"Je l'ai exécuté sur deux ordinateurs avec des versions différentes de MT4 de 18:00 à 24:00 le 11.10.2005.
Premier ordinateur : version Extended Logging du 05.10.2005 : 114 erreurs 146 et 1 erreur 138.
Deuxième ordinateur : version officielle du 07.10.2005 : 278 erreurs numéro 146

Explique, Slava...
 
Première comp : version avec journalisation étendue du 05.10.2005 : 114 ошибок номер 146 и 1 номер 138
Deuxième comp : version officielle du 07.10.2005 : 278 erreurs numéro 146

Expliquez, Slava...

Laissez-moi vous expliquer. Pour exclure l'erreur 146 (le contexte commercial est occupé), vous devez faire une pause avant de libérer le sémaphore. Au lieu de
if(!IsTesting()) GlobalVariableSet(strTradeSemaphore, 0.0) ;


écrire

	if(!IsTesting()) { Sleep(1000) ; GlobalVariableSet(strTradeSemaphore, 0.0) ; }


la taille du délai doit être ajustée "organoleptiquement". elle peut être différente selon les ordinateurs.

 
<br / translate="no">la taille du délai doit être ajustée "organoleptiquement". elle peut être différente selon les ordinateurs.
Cool !
"Quelque chose dans mon moteur a commencé à taper
Ecoutons-la
Et il y a une odeur d'essence qui vient de la cabine.
Allons le sentir."
 
Sleep(1000) ; - l'erreur n'a pas disparu
Sleep(10000) ; - l'erreur n'a pas disparu
Comment le faire "organoleptiquement" ?
 
Sleep(1000) ; - l'erreur n'a pas disparu<br / translate="no"> Sleep(10000) ; - l'erreur n'a pas disparu
Quelle est la manière "organoleptique" de le faire ?

trouvez la valeur lorsque l'erreur disparaît. rapportez cette valeur et envoyez les logs du conseiller expert de la valeur précédente (toujours erronée) à stringoATmetaquotesDOTru
 
Après réflexion, il s'avère qu'il existe une méthode exacte. Je vais essayer de la formuler
while(!IsStopped() && !IsTradeAllowed()) Sleep(1000) ; GlobalVariableSet(strTradeSemaphore, 0.0) ;


c'est-à-dire que nous attendons que notre propre contexte de transaction soit libéré

et cette situation est extrêmement étrange. après l'exécution d'une opération de transaction, le contexte est libéré instantanément. sinon, il serait impossible de fermer des positions dans une boucle.

 
Sleep(1000) ; - l'erreur n'a pas disparu<br/ translate="no"> Sleep(10000) ; - l'erreur n'a pas disparu
Qu'est-ce que c'est pour le faire "organoleptiquement" ?

une autre question. n'avez-vous pas d'autres Expert Advisors qui négocient ? ils peuvent ne rien savoir de notre sémaphore de négociation. alors l'erreur 146 est très bien explicable
 
journaux envoyés.
Où dois-je mettre ce code ?
while(!IsStopped() && !IsTradeAllowed()) Sleep(1000) ; GlobalVariableSet(strTradeSemaphore, 0.0) ;