Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Salut Stringo,
malheureusement, ce bug persiste.
En exécutant le script de test ci-dessous et en passant d'un compte à l'autre (dans mon cas de test, j'ai utilisé des comptes de 2 ou 3 courtiers différents et je suis passé de l'un à l'autre), vous pouvez constater qu'après quelques accountChanges (nombre assez aléatoire), le connectionState ne revient pas vraiment à 1, il reste à 0 même si le terminal _est_ connecté.
À vos yeux, il ne s'agit peut-être pas d'un bug critique. Cependant, pour certaines personnes développant des scripts qui affichent le connectionState, les résultats des tests effectués sont assez alarmants.
C'est pourquoi je vous serais très reconnaissant de bien vouloir réexaminer ce problème.
Voici le testScript :
Sincèrement vôtre,
Daniel.
Je dois également confirmer le même bug. Dans mon EA, je vérifie simultanément si la connexion existe. Si ce n'est pas le cas, mon script s'arrête.
A-t-on trouvé une solution de contournement ?
Le script ne peut pas déterminer le problème à cause de la boucle sans fin et de l'indépendance des ticks entrants.
Le problème ne peut montrer que l'expert. Expert simple avec une seule ligne de code - Print(IsConnected()) ;
Les ticks arrivent (cela signifie que le terminal est connecté) - la fonction de démarrage s'exécute - oops ! IsConnected() retourne 0 (c'est à dire faux)
Merci
Oui, j'utilise
Le problème est que lorsque la connexion est rétablie, IsConnected() garde l'ancienne valeur false et ne devient pas true ! Mais je vois le prix bouger et le terminal est connecté à 100%. C'est un bug car la boucle infinie a été cassée et le démarrage a été exécuté car rien ne s'est passé sur le premier tick après le rétablissement de la connexion. Mais pour une raison quelconque, Is Connected() renvoie toujours false. Si je supprime l'EA du graphique et que je le remets en place, tout fonctionne bien jusqu'à la prochaine perte de connexion.
Cela me rend fou. S'il vous plaît, faites quelque chose à ce sujet !
Merci
Liliput - si ce qui précède est un aperçu de l'utilisation de start(), pourquoi y rester avec une boucle infinie ?
Je demande parce que la manière normale ? est d'entrer > est-ce que je veux travailler ? non:return > faire le travail > return
(normal - est subjectif bien sûr ;o)
je ne vous dis pas comment concevoir - c'est votre affaire, je vous demande juste votre raisonnement, alors j'apprends plus/je vois différentes façons de faire les choses !
Qu'est-ce qui me pousse à demander ?
Je n'ai aucune idée du comportement du Terminal si, par exemple, un EA refuse de revenir vers lui pendant peut-être de nombreux ticks de données et que, puisque l'EA ne revient pas, le Terminal ne fait pas l'appel à start()... ou - ne fait-il pas l'appel et finalement, en raison des nombreux ticks de données qui s'écoulent sans avoir pu appeler start() d'EA, le Terminal entre dans des profondeurs inexplorées et manifeste le problème connecté ?
;)
Est-ce que cela pourrait résoudre le problème... ?
Liliput - si ce qui précède est un aperçu de l'utilisation de start(), pourquoi y rester avec une boucle infinie ?
Je demande parce que la manière normale ? est d'entrer > est-ce que je veux travailler ? non:return > faire le travail > return
(normal - est subjectif bien sûr ;o)
je ne vous dis pas comment concevoir - c'est votre affaire, je vous demande juste votre raisonnement, alors j'apprends plus/je vois différentes façons de faire les choses !
Qu'est-ce qui me pousse à demander ?
Je n'ai aucune idée du comportement du Terminal si, par exemple, un EA refuse de revenir vers lui pendant peut-être de nombreux ticks de données et que, puisque l'EA ne revient pas, le Terminal ne fait pas l'appel à start()... ou - ne fait-il pas l'appel et finalement, en raison des nombreux ticks de données qui s'écoulent sans avoir pu appeler start() d'EA, le Terminal entre dans des profondeurs inexplorées et manifeste le problème connecté ?
;)
ukt, pas de problème je vais répondre. Je fais une boucle infinie parce que j'ai besoin de faire plusieurs opérations et je ne veux pas attendre un nouveau tick pour les faire. Je prends donc le contrôle du terminal de cette façon et je fais mon travail quand j'en ai besoin et quand je le veux. J'utilise RefreshRates() pour obtenir les données réelles.
Il est donc logique de vérifier si la connexion avec le courtier existe parce que j'envoie/ferme/modifie les ordres et si aucune connexion n'existe, alors aucun travail n'est possible. C'est aussi simple que cela. Il y a aussi d'autres vérifications pour sortir de la boucle que j'utilise. par exemple IsStoped() et ainsi de suite mais le problème n'est pas dans mon code mais dans IsConnected().