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
J'étais devant l'ordinateur, je n'ai pas fait de calculs. Je n'ai pas chargé le processeur avec quoi que ce soit.
19 ms et 48 ms pour l'exécution de SymbolInfoTick. Il y avait plusieurs dizaines de cas où la durée était de plusieurs centaines de microsecondes. Mais je ne les ai pas cités.
Apparemment, pour le reproduire, il faut faire tourner des conseillers de combat pendant 24 heures, et ensuite seulement regarder. À mon avis, il est irréaliste de chercher à savoir ce qui est à l'origine de ces décalages.
Parfois, l'ordinateur peut être en train de pomper des mises à jour ou d'effectuer certaines tâches de service. De même, une variation de la tension du réseau peut avoir un effet. De cette façon, on peut arriver à des cartes réseau programmables, où toute la logique du robot est câblée :) mais même là, il y aura des retards dus aux fluctuations des champs quantiques.
Les développeurs ont fait du mieux qu'ils pouvaient. Et sans cela, la branche a fourni un code qui montre comment le tick est en retard sur le Market Watch et vice versa. Comment la séquence d'arrivée des tics est cassée et probablement autre chose. Dans l'ensemble, un mauvais code valide est affiché pour reproduire d'autres situations.
SymbolInfoTick envoie les données reçues du serveur du courtier. Ce que le serveur envoie est ce que vous recevez.
SymbolInfoTick() est-il exécuté en mode bloquant ou non bloquant ?
Par exemple, il se trouve dans le corps de la boucle while et il n'y a pas de connexion ou le marché est fermé pour le week-end,
alors il sera bloqué en arrêtant la boucle ou il sera exécuté de manière asynchrone ?
comment la surveillance du marché est en retard sur la surveillance du marché et vice versa.
Par exemple, SymbolInfoTick attrape un nouveau tick et nous obtenons un Ask et un Bid différents en interrogeant le Market Watch (sans attendre un événement de changement de Market Watch) ? Il n'était pas possible de le faire il y a un an environ. SymbolInfoTick et CopyTick et vintage conduisent toujours au même tick. Si vous obtenez des tics par le biais de diverses fonctions OnXXX, bien sûr, vous obtiendrez quelque chose par le biais d'une fonction, et quelque chose par le biais d'une autre...
Par exemple, SymbolInfoTick attrape un nouveau tick et nous obtenons un Ask et un Bid différents en interrogeant la coupe (sans attendre l'événement de changement de coupe) ?
Ici.
Ici.
Comme je le pensais, vous testez OnBookEvent et OnTick, et non MarketBookGet et SymbolInfoTick. Si vous faisiez des tests avec ce schéma, vous auriez tout fait correspondre :
p.s Lire vos messages ci-dessous. Vous le comprenez aussi. Pourquoi avez-vous besoin de OnBookEvent et OnTick ? Dans mon exemple, Sleep(1) prend 1 à 2 millisecondes, la demande et le tick avec SymbloInfoTick prend moins d'une MICROseconde. Le processeur est déjà au repos 99,9% du temps s'il n'y a pas de tics. Quel est l'avantage d'utiliser OnBookEvent et OnTick ?
Comme je le pensais, vous testez OnBookEvent et OnTick, et non MarketBookGet et SymbolInfoTick. Si vous testiez selon ce schéma, tout correspondrait :
p.s Lire vos messages ci-dessous. Vous le comprenez aussi. Pourquoi avez-vous besoin de OnBookEvent et OnTick ? Dans mon exemple, Sleep(1) prend 1 à 2 millisecondes, la demande et le tick avec SymbloInfoTick prend moins d'une MICROseconde. Le processeur est déjà au repos 99,9% du temps s'il n'y a pas de tics. Quel est l'avantage d'utiliser OnBookEvent et OnTick ?
Sans un soupçon de diplomatie, vous dites n'importe quoi. Sleep(1) est un dixième de milliseconde. Je ne vois qu'un seul théoricien.
Les utilisateurs de OnTick veulent voir un tick frais et non celui qui est arrivé au terminal il y a quelque temps. Vous pouvez mettre SymbolInfoTick juste après MarketBookGet dans le code source.
Les développeurs ont pleinement reconnu deux problèmes liés à leur silence.
Sans un soupçon de diplomatie, vous dites n'importe quoi. Sleep(1) est une douzaine de millisecondes. Je ne vois qu'un seul théoricien.
Les utilisateurs veulent voir un tick frais dans OnTick et non un tick arrivé au terminal il y a quelque temps. Vous pouvez mettre SymbolInfoTick juste après MarketBookGet dans le code source.
Les développeurs, par leur silence, ont pleinement reconnu deux problèmes.
Pas toujours et pas tous les dixièmes de milliseconde. Vérifié avec un script simple
Voici mon journal
Les utilisateurs de OnTick voient toujours le tick le plus récent.
Les utilisateurs de OnBookEvent voient toujours le tick le plus récent.
Mais si vous voulez comparer les ticks reçus avec OnTick et ceux reçus avec OnBookEvent, vous risquez d'être déçu car les événements sont traités séquentiellement et non en parallèle. C'est ce que l'utilisateur pivomoe a essayé de vous dire.
Pas toujours et pas partout un dixième de milliseconde. Vérifié avec un simple script
Voici mon journal.
Et voici mon journal.
Résultat.
Les utilisateurs de OnTick voient toujours le tick le plus récent.
Les utilisateurs de OnBookEvent voient toujours le tick le plus récent.
Le résultat de l'exécution de l'EA sur un seul graphique à partir d'une machine qui n'est pas occupée de quelque façon que ce soit.
Marque les ticks identiques, qui sont reçus dans différentes On-fonctions par des méthodes correspondantes. Le décalage peut atteindre des dizaines de millisecondes si l'on utilise six graphiques au lieu d'un.
Mais si vous voulez comparer les ticks reçus dans OnTick et ceux reçus dans OnBookEvent, vous serez déçu car les événements sont traités séquentiellement et non en parallèle. Ce que l'utilisateur pivomoe a essayé de vous dire
Si un OnBookEvent/OnTick presque vide est déclenché 20 millisecondes plus tard que le OnTick/OnBookEvent presque vide correspondant, est-ce correct ?
ZS Pendant que vous prêtez attention au fil, il y a un autre code de reproduction ici. Là, dans Market Watch, les ticks arrivent avec une heure antérieure à l'heure de Market Watch précédente.
Si un OnBookEvent/OnTick presque vide est déclenché 20 millisecondes plus tard que le OnTick/OnBookEvent presque vide correspondant, est-ce correct ?
La file d'attente de l'EA est une ressource verrouillable. Lorsqu'un événement est écrit dans la file d'attente, le conseiller expert attend (sauf si le conseiller expert est en train de traiter un événement).
Les événements pour le conseiller expert proviennent de la file d'attente des événements du graphique correspondant, qui provient à son tour du cycle de traitement du symbole correspondant. Et cette boucle de traitement ne se contente pas de distribuer les événements sur ses propres graphiques, mais fait aussi beaucoup d'autres choses.
Je vous ai déjà dit que Windows n'est pas un système d'exploitation en temps réel.