MT5 Pour ceux qui se soucient de la vitesse. - page 12

 
shelandr:

Je ne comprends pas la question... L'expert gère chaque tique. Les ticks sont généralement de 2-3 par minute, sur les mouvements de prix la fréquence augmente à quelque chose comme 200 par minute - ou 4-5 par seconde (ne pensez pas que j'ai traduit incorrectement en minutes en secondes - il y a une autre relation). Je ne sais pas si je me trompe sur la minute ou la seconde - c'est plus précis, je peux contrôler visuellement la charge CPU, sauf pour les opérations commerciales synchrones qui ralentissent inévitablement le processus et bloquent probablement les ticks entrants.

Eh bien, il faut savoir que ni l'EA ni le script ne peuvent bloquer les ticks qui entrent dans le terminal. Mais qu'est-ce que je dis - allez-y et abrutissez-vous.
 
TheXpert:
Il faut savoir que ni les EA ni les scripts ne peuvent bloquer les ticks qui arrivent dans le terminal.

Je n'ai pas dit qu'ils bloquaient... juste que physiquement les ports du modem et de la carte réseau, à moins qu'ils ne soient gigabit, ne peuvent pas tout laisser passer. Le trafic Internet est aussi imprévisible.

Mais les opérations commerciales synchrones sont bloquées... apprenez le calcul.

Les indicateurs, eux, ne bloquent pas - ils fonctionnent dans le flux. Mais les scripts et les Expert Advisors ralentissent. (Il y en a un dans la documentation de MT4.

 
shelandr:

Je pense que si j'augmente la largeur de bande du canal, les fréquences maximales augmenteront également... Je n'ai probablement pas le temps de recevoir tous les ticks...

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

MT5 Pour ceux qui se soucient de la vitesse.

shelandr, 2013.07.02 08:24

J'ai une bonne idée pour utiliser mon robot de trading, je ne peux pas encore trader le robot, je ne peux pas revenir au robot de trading, je ne veux pas utiliser mon robot de trading comme référence, je dois apprendre à trader le robot, et je ne veux pas changer le marché.

Vous devriez peut-être le faire plutôt que de poser la même question dix fois.
 
papaklass:

Pour clarifier.

1. Mémorisez l'heure de début de l'expert sur le prochain tic.

2. Lorsque l'Expert Advisor a travaillé un tick, soustrayez du temps actuel le temps que vous avez mémorisé au début.

Si la différence est supérieure à 6 ms, cela signifie que ce n'est pas le canal qui ralentit l'EA, mais que votre EA ne peut pas faire face à la vitesse du canal.

J'ai un tel compteur dans MT5 - il affiche 0 ms. Il n'y a pas de millisecondes dans MT4. Je mesure également l'inertie entre les ticks, elle affiche parfois 3000 ms.

J'ai aussi besoin de mesurer le temps de fonctionnement du terminal, ça marche aussi. Mais 6 ms n'a rien à voir - l'échange avec le serveur se fait dans un timing différent et dépend de la longueur du paquet, qui peut varier... De même, ils ne savent pas s'ils ont formé des transactions et des informations sur les positions, les ordres, etc. dans un paquet séparé ou ajouté au paquet de tick (je l'ai révélé au début).

J'ai regardé de plus près maintenant et parfois Work = 16 ms. Bien que le marché soit calme. L'intervalle est d'environ 500 msec.

 
sion:
Peut-être que tu devrais faire ça au lieu de demander la même chose 10 fois.
Je le fais aussi. De plus, ce n'est pas comme si je demandais, je répondais ou je communiquais.
 
papaklass:

Vous pouvez facilement vérifier la vitesse de l'internet kalala en utilisant la même méthode.

Vous devez vous souvenir du temps avant OrderSend() ; et le comparer avec le temps après la réception du ticket de commande.

Lafonction GetTickCount() vous aidera à mesurer les millisecondes.

Maintenant je regarde plus attentivement. Parfois Travail = 16 ms. Bien que le marché soit calme. L'intervalle est d'environ 500 ms.

Bien qu'il n'y ait pas de commerce.

Maintenant, j'ai essayé de fermer une position et il a montré 36 ms.

Et maintenant le ralenti montre 64 ms. Qu'est-ce que ça peut signifier, un tel écart.

 
shelandr:

J'ai maintenant regardé de plus près et parfois Work = 16ms se glisse à travers. Bien que le marché soit calme. L'intervalle est d'environ 500 ms.

Bien qu'il n'y ait pas de commerce.

Maintenant, j'ai essayé une opération commerciale pour fermer une position a montré 36 ms.

Et maintenant le ralenti montre 64 ms. Qu'est-ce que ça peut signifier, une telle variation.

La précision de la mesure du temps par GetTickCount est de 16 ms.

Donc, vous ne pouvez pas vous fier au timing à moins de 32 ms. Avec des temps réels allant de 0 à 31 ms, les réponses GetTickCount peuvent être arrondies à 0 ou 16 plus souvent.

 
shelandr:
C'est ce que je fais aussi. De plus, ce n'est pas comme si je demandais mais que je répondais ou que je communiquais.
Si vous répondez, je me demande ce que vous entendez par "les fréquences maximales augmenteront...", notamment la dépendance de ces fréquences à la vitesse du canal... ?
 
Renat:

La précision de la mesure du temps GetTickCount est de 16 ms.

En d'autres termes, les mesures effectuées dans un délai de 32 ms ne sont pas fiables. Avec un temps réel compris entre 0 et 31 ms, les réponses de GetTickCount peuvent souvent être arrondies à 0 ou 16.

Merci... Je comprends le problème. Mon conseiller expert a :fini =GetTickCount() ;
Il n'y a donc rien à mesurer. Parce que je me demande pourquoi j'ai 0 - je n'ai pas besoin de mesurer en microsecondes...
 
shelandr:
De plus, ce n'est pas comme si je demandais, je répondais ou je communiquais.

aucune infraction

mais vos réponses ressemblent à ça.