![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Le graphique vient d'être "mis à jour". Et c'est encore la même chose :
Le graphique vient d'être "mis à jour". Et c'est encore la même chose :
Écrivez à Servicedesk de toute urgence et gardez le terminal ouvert.
Je viens de vérifier dans le terminal - le graphique EURUSD M1 est complètement présent à l'emplacement spécifié, sans aucune discontinuité.
Essayez de donner la commande "Rafraîchir" dans le menu contextuel du graphique.
Je viens de vérifier dans le terminal - le graphique EURUSD M1 est entièrement présent à l'emplacement spécifié, sans aucune discontinuité.
Essayez de donner la commande "Rafraîchir" dans le menu contextuel du graphique.
Je viens de vérifier dans le terminal - le graphique EURUSD M1 est complètement présent à l'emplacement spécifié, sans aucune discontinuité.
Essayez de donner la commande "Rafraîchir" dans le menu contextuel du graphique.
Il a été mis à jour manuellement, merci. Comme je ne travaille pratiquement pas avec des graphiques, j'ai une question : comment mettre à jour la base des minutes dans une telle situation ? Le terminal ne fonctionne qu'avec la base qu'il possède. Dois-je intégrer la fonction de contrôle de la synchronisation ?
J'ai mémorisé le temps de perte et de reprise de la communication dans un minuteur.
En disposant de ces informations, vous pouvez essayer de télécharger l'historique de la période (vous pouvez également vérifier la synchronisation avec le serveur, si cela a un sens).
Messieurs les développeurs, je suis sans voix. J'ai été confronté à un problème d'"effacement" des variables locales dans la méthode de l'objet après un appel interne de la même méthode à partir d'un autre objet. Il se peut que ce soit lié à une optimisation des appels de fonctions imbriquées d'objets, mais au moins il n'y a pas d'erreurs dans le journal et pas de fuites de mémoire. Je ne peux pas citer un grand code, mais le sens sera clair à partir des exemples de principe :
variante 1
variante 2
Enthéorie, le code devrait fonctionner exactement dela même manière. Mais... les variantes fonctionnent différemment.
Ainsi. La variante 1 ne fonctionne pas correctement. J'ai effectué un enregistrement dans le fichier de débogage et j'ai découvert que la variable d1 définie dans la fonction operate est écrasée par la valeur de la variable d1 dans un appel interne de la même fonction operate mais dans un autre objet du même type. C'est-à-dire en bref. après avoir appelébool d2 = s2.process();
La variable d1 change de valeur pour prendre celle qui s'est produite lors de l'appel interne operate dans s2.process. Ce comportement est le même que lors de la modification de la valeur d'une variable statique pour les objets du même type. Mais ici la variable a clairement une portée locale.
La question des variables statiques a été soulevée dans ce fil de discussion et tout est clair. Mais que faire en cas d'incertitude sur les valeurs des variables locales ?
"...la variable d1 définie dans la fonction operate est écrasée par la valeur de la variable d1 dans l'appel interne de la même fonction operate, mais dans un autre objet du même type. C'est-à-dire, en résumé, après avoir appelé
bool d2 = s2.process() ;
lavariable d1 change sa valeur pour celle qui s'est produite dans l'appel interne operate à l'intérieur de s2.process".
On dirait soit une récursion cachée, avec les effets secondaires habituels, soit...
En théorie, le code devrait fonctionner exactement dela même manière. Mais... les variantes fonctionnent différemment.
Non. Ce n'est pas identique.
Dans le premier cas, s1.process et s2.process sont appelés sans condition.
Dans la deuxième variante, s1.process ne sera appelé que si s2.process renvoie true. C'est ce qu'on appelle "l'évaluation abrégée des conditions".