[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 405
![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
D'après ce que je comprends, ce n'est pas ce dont nous avons besoin. Et nous avons besoin des derniers prix des serveurs Ask et Bid, et non des prix des terminaux locaux. N'est-ce pas ?
C'est pourquoi j'ai lancé la discussion ici, pour comprendre une fois pour toutes comment l'organiser de manière plus logique et plus correcte. Car en théorie, c'est correct, mais en pratique...
Le serveur est là, et on nous donne un terminal pour contacter le serveur. S'il y a une connexion, alors le dernier prix dans le terminal correspondra au dernier prix sur le serveur. S'il n'y a pas de connexion, les prix pratiqués n'ont aucune importance.
1. Simple. La fonction est déclarée comme double, elle renverra donc le double lorsqu'elle sera appelée, indépendamment du fait que return ait été appelé dans la fonction. Si vous ajoutez autre chose... ...mais ce n'est pas encore le cas.
2. Si cela ne fait aucune différence que vous appuyiez sur 3 ou 30 touches, vous n'avez pas besoin de ces offres et demandes. Si l'Expert Advisor ne fait pas de longs calculs, ce n'est pas grave, il est plus pratique d'utiliser Bid et Ask. S'il effectue de longs calculs, vous pouvez utiliser RefreshRates(). Tout peut être fait de plusieurs manières.
1. Oui, je suis juste surmené alors j'ai dû écrire une chose stupide.
2. Long est un terme relatif. Suggérez-vous que nous mesurions la vitesse du calcul moyen ?
Le serveur est là, quelque part, et on nous donne un terminal pour le contacter. S'il y a une connexion, alors le dernier prix dans le terminal correspondra au dernier prix sur le serveur. S'il n'y a pas de connexion, le prix qui figure sur le serveur n'a aucune importance.
Si nous supposons, comme vous l'avez écrit, que la dernière valeur de la variable de marché (dans notre cas, le prix ) correspond à la dernière valeur du serveur, cela signifie que le terminal met à jour les variables d'environnement du marché s'il est connecté au serveur. Mais ce n'est pas le cas, car cette fonction existe et cela signifie que les prix ne sont pas rafraîchis tout le temps, n'est-ce pas ?
Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !
Si nous supposons, comme vous l'avez écrit, que le terminal dispose de la dernière valeur de la variable de données de marché, dans notre cas le prix, correspondant à la dernière valeur du serveur, cela signifie que le terminal met lui-même à jour les variables d'environnement de marché s'il existe une connexion avec le serveur, ce qui signifie que la fonction RefreshRates() n'est pas nécessaire. Mais ce n'est pas le cas, car cette fonction existe et cela signifie que les prix ne sont pas rafraîchis tout le temps, n'est-ce pas ?
Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !
Si de nouveaux ticks arrivent pendant les calculs dans l'EA (lorsque la fonction start() est exécutée), l'EA ne les connaîtra pas (ticks). RefreshRates() permet d'utiliser les derniers prix mis à jour, mais cette fonction n'accède pas au serveur. Il actualise l'environnement du marché connu par le terminal. Aucune des fonctions, à l'exception de la négociation, n'accède au serveur.
Si de nouveaux ticks arrivent pendant les calculs dans l'EA (lorsque la fonction start() est exécutée), l'EA ne les connaîtra pas (ticks). RefreshRates() permet d'utiliser les derniers prix mis à jour, mais cette fonction n'accède pas au serveur. Il actualise l'environnement du marché connu par le terminal. Aucune des fonctions, à l'exception des fonctions commerciales, n'accède au serveur.
Ainsi, si la demande est locale et non adressée au serveur, cette fonction devrait fonctionner instantanément ! Comme indiqué ci-dessus, la fonction RefreshRates() peut ne pas avoir le temps de mettre à jour les données de l'environnement de marché...
Ainsi, si la demande est locale et non adressée au serveur, cette fonction devrait fonctionner instantanément ! Et il a été dit plus haut que la fonction RefreshRates() peut ne pas avoir le temps de rafraîchir les données de l'environnement de marché...
Cela fonctionne. Et il le rafraîchit s'il y a quelque chose à rafraîchir. Mais s'il n'y a pas de nouveau tic, il n'y a rien à mettre à jour.
Et ça va marcher. Et il le rafraîchit s'il y a quelque chose à rafraîchir. Mais s'il n'y a pas de nouveau tic, il n'y a rien à mettre à jour.
Donc, s'il n'y a pas de nouveau tick, le prix ne changera pas... et bien sûr, les prix précédents seront toujours valables. Il n'est donc pas nécessaire de compliquer les choses !
Et Vadim a écrit en haut qu'il était nécessaire de vérifier ce point. Mais il n'y avait aucune logique dans ses paroles, et aucune argumentation non plus. C'est étrange... J'insère donc RefreshRates() partout et à ce moment-là, les dernières données connues du terminal deviennent utilisables à la place des précédentes et tout se passe comme prévu. FourniRefreshRates() retourné TRU. Si c'est Faux, cela signifie que les données n'ont pas changé et que cela fonctionne avec les prix précédents... Est-ce que je raisonne correctement ?
Il suffit d'appelerRefreshRates() et cela fonctionnera avec les données réelles...
1. Ouais, je suis juste surmené, alors j'ai écrit un truc stupide...
2. Long est un terme relatif. Suggérez-vous que nous mesurions la vitesse du calcul moyen ?
3. si nous supposons, comme vous l'avez écrit, que le terminal correspond à la dernière valeur de la variable de données de marché, dans notre cas, le prix, cela signifie que le terminal met à jour les variables d'environnement de marché de lui-même, s'il existe une connexion avec le serveur,
4. il s'ensuit que la fonction RefreshRates() est inutile. Mais ce n'est pas le cas, car la fonction est présente, ce qui signifie que les prix ne sont pas toujours rafraîchis, n'est-ce pas ?
Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !
2. Où avez-vous vu cela et comment êtes-vous arrivé à cette conclusion surprenante ?
3. Oui. Vous pouvez imaginer, il suffit de regarder la fenêtre d'aperçu du marché, comment les chiffres rebondissent sans cesse.
4. Les variables Bid et Ask sont assignées (par le terminal) avec les valeurs qu'elles avaient lorsque la fonction Start a été exécutée, peu importe la durée d'exécution de la fonction, les valeurs de Bid et Ask seront les mêmes. C'est pourquoi nous avons besoin de RefreshRates() ou nous devrions utiliser MarketInfo().