Marché boursier. Les actions. Vitesse d'exécution des ordres de bourse. - page 16

 
prostotrader #:

Andrey Miguzov Vous entrez dans la cuisine après tout...

il n'y a pas d'ordres de marché en bourse

C'est ce que je pensais aussi au début... Mais ils mettent les transactions sur le marché (sur le MOEX) - c'est facile à vérifier à partir du flux des transactions.

Il y a un problème avec le temps d'exécution, je vais essayer de le résoudre via le support technique, mais un peu plus tard. S'ils ne le réparent pas. Je vais très probablement partir. arrière. Si vous vous souvenez, ça n'a pas toujours été comme ça chez Otkritie non plus. Et, grâce à vous, il est devenu ce qu'il est maintenant.


Mais vous devez comprendre la grande différence - MT5 dans Otkritie est seulement MOEX - il est beaucoup plus facile pour eux de configurer le terminal pour travailler sur plusieurs sections sur un seul échange. Et de placer l'équipement plus près de l'échange. Et c'est parce qu'ils n'ont pas encore fait d'EBS.

Et Finam offre maintenant EBS :

Et pour tout cela, il faut un petit retard, ce qui est impossible même en théorie. Vous comprenez les opportunités qui se présentent avec un tel nombre d'instruments, n'est-ce pas ? En général, il y a des + et des - partout.

SZS : Pas vraiment sur ce sujet, mais quand même. Compte tenu des sanctions actuelles à l'encontre du secteur bancaire, je ne suis pas sûr de savoir où il est plus sûr de conserver ses fonds aujourd'hui : chez un courtier russe (soumis à des sanctions) ou dans la "cuisine". Je n'écris pas cela dans le but de faire de la propagande politique, mais je ne comprends vraiment pas ce qui se passe en ce moment. Je ne veux offenser personne avec ça.

 
prostotrader #:

Aujourd'hui, les deux terminaux réels

Futures

13 ms

Stocks

26ms et 28ms respectivement

Ajouté

Transactions inversées
Futures

7 ms

Stocks

26 ms et 27 ms respectivement

Quand je regarde vos journaux de bord, puis les miens, mes yeux commencent à "saigner". Je posterai les logs un peu plus tard - également sur VTB à peu près au même moment.en tenant compte de l'analyse que j'ai écrite ci-dessus.

 
Andrey Miguzov #:

Quand je regarde tes journaux et ensuite les miens, mes yeux commencent à saigner. Un peu plus tard, je posterai les journaux - également sur VTB à peu près au même moment - en tenant compte de l'analyse dont j'ai parlé plus haut.

J'ai environ 20-30ms sur les futures dans Otkritie, ping aux serveurs 10-12ms.

 
Andrey Miguzov #:

ZS : Pas vraiment sur ce sujet, mais quand même. Compte tenu des sanctions actuelles contre le secteur bancaire, je ne sais pas s'il est plus sûr de conserver les fonds auprès d'un courtier russe (sous sanctions) ou dans la "cuisine". Je n'écris pas cela pour le plaisir des querelles politiques, c'est juste que je ne le comprends vraiment pas en ce moment. Je ne veux pas offenser qui que ce soit.

Il y a un proverbe russe très sage :

"Où tu es né, où tu es né" ....

Ajouté

J'ai récupéré quelques contrats à un prix avantageux.


 
Andrey Miguzov #:

Conclusions :

1) Le temps dans les journaux et les temps de ticks ne sont pas les mêmes, ce qui est logique, mais je n'y avais jamais pensé auparavant. À mon avis, il n'est pas tout à fait correct de mesurer le temps d'exécution par les journaux du terminal.

2) Connaissant le temps du tick avec une précision de quelques millisecondes (au prix auquel l'ordre est envoyé depuis le terminal), vous pouvez alors (en utilisant l'historique des instruments à faible liquidité) connaître le "temps d'exécution" réel.

"time_execution_time" = "time_in_the_market_that_called_transaction_in_terminal" - "time_the_market_time_of_your_transaction".

Ce temps comprendra tous les délais du réseau de la bourse au terminal et vice-versa (via le courtier) + le temps de traitement de l'exécution de la transaction sur la bourse + letemps de traitement du tick par l'expert.

Je parlerai des résultats plus tard.

Les résultats réels (dans ce cas, entrée par pic - sortie par temps). Je suis désolé qu'il y ait beaucoup de texte et de photos. Vous pouvez immédiatement lire les conclusions, tout le reste ne sert qu'à les confirmer.

Onglet Expert Advisors (l'heure du tick qui provoque l'entrée/sortie dans/depuis la position est surlignée en jaune) :

2022.04.11 10:45:19.471 Цена входа bid: 755.8 EMA_ask = 519.7 Цена фьючерса: 2309.0 Цена акции: 0.022570 Время тика: 10:45:18.444 по символу VTBR
2022.04.11 12:45:21.670 Цена выхода ask: 549.0 Цена фьючерса: 2252.0 Цена акции: 0.022170 Время тика: 12:45:20.489 по символу VTBR

Onglet "Entrée du journal" :

2022.04.11 10:45:19.476 '': exchange buy 150 VTBR at market
2022.04.11 10:45:19.476 '': exchange sell 15 VBM2 at market
2022.04.11 10:45:19.486 '': accepted exchange buy 150 VTBR at market
2022.04.11 10:45:19.491 '': exchange buy 150 VTBR at market placed for execution in 15.925 ms
2022.04.11 10:45:19.491 '': accepted exchange sell 15 VBM2 at market
2022.04.11 10:45:19.491 '': exchange sell 15 VBM2 at market placed for execution in 13.994 ms
2022.04.11 10:45:19.621 '': deal #2305398 buy 150 VTBR at 0.022570 done (based on order #204678572)
2022.04.11 10:45:19.636 '': deal #2305399 sell 1 VBM2 at 2304 done (based on order #204678573)
2022.04.11 10:45:19.641 '': deal #2305400 sell 14 VBM2 at 2303 done (based on order #204678573)

Ruban de transactions - entrée sur les actions:


Bande de transactions - entrée sur les contrats à terme


Résumé de l'entrée :

Pour le stock :

1) A partir des journaux du terminal : 10:45:19.621 - 10:45:19.471 = 150ms

2) Temps de tic dans le flux des transactions : 10:45:18.540 - 10:45:18.444 = 96 ms. Et je ne comprends pas comment cela est possible ! !!

Pour les contrats à terme :

1) A partir des journaux du terminal : 10:45:19.641 - 10:45:19.471 = 170ms.

2) Temps de tic dans le flux des transactions :10:45:18.573 - 10:45:18.444= 129 ms. aussi je ne comprends pas comment cela est possible ! !!


Maintenant pour les statistiques, c'est la même chose pour la sortie :

2022.04.11 12:45:21.685 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.685 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': accepted exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570
2022.04.11 12:45:21.701 '': exchange sell 150 VTBR at market, close #204678572 buy 150 VTBR 0.022570 placed for execution in 19.305 ms
2022.04.11 12:45:21.701 '': accepted exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067
2022.04.11 12:45:21.701 '': exchange buy 15 VBM2 at market, close #204678573 sell 15 VBM2 2303.067 placed for execution in 18.989 ms
2022.04.11 12:45:21.841 '': deal #2307117 sell 150 VTBR at 0.022170 done (based on order #204986103)
2022.04.11 12:45:21.857 '': deal #2307118 buy 6 VBM2 at 2252 done (based on order #204986104)
2022.04.11 12:45:21.857 '': deal #2307119 buy 9 VBM2 at 2252 done (based on order #204986104)

Ruban de métiers - sortie d'actions :


Enregistrement des transactions - sortie sur les contrats à terme :

Sortie de sortie :

Pour le stock :

1) A partir des journaux du terminal : 12:45:21.841 - 12:45:21.670 = 171 ms.

2) Temps de tic dans le flux des transactions :12:45:20.556 - 12:45:20.489= 67 ms. Encore ! !! Et quelle est l'ampleur de la différence !!!!

Pour les contrats à terme :

1) Selon les journaux du terminal : 12:45:21.857 - 12:45:21.670 = 187 ms

2) Temps de tic dans le flux commercial : 12:45:20.585- 12:45:20.489= 96 ms ...


Conclusions :

Pour mesurer les délais d'exécution réels, vous ne pouvez pas utiliser les logs du terminal ! Ou dois-je les utiliser d'une autre manière ? Si quelqu'un m'explique, je lui en serai reconnaissant :)

Temps d'"exécution" dans les journaux - 150, 170, 171, 187 ms. Temps d'exécution des transactions - 96, 129, 67, 96 ms respectivement. Différence moyenne - 72,5 ms. L'heure exacte se trouve naturellement sur l'échange. Et ceci avec un ping de 12 ms.


***L'exécution fait référence à l'intervalle de temps entre l'envoi d'un tick "de base" de la bourse via un courtier et ma transaction sur ce tick à la bourse. Tout dépend du moment de l'échange.

Dans ce temps est censé inclure 2 ( ???? maintenant doute) latence du réseau par ~12 ms (ping) au courtier, le temps de traitement tick par le terminal, EA (je mesure et ajouter combien il est ~ ms dans mon cas), le courtier serveur, l'échange + 2 latences du réseau du courtier.


ZS : combien d'"exécution" chez Otkritie alors ? :) Cool en général, j'avais peur que ce soit l'inverse et bien pire...

 
Andrey Miguzov #:

Conclusions :

Lors de la mesure des délais d'exécution réels, les journaux des terminaux ne peuvent pas être utilisés ! Ou devrait être utilisé d'une autre manière, si quelqu'un peut l'expliquer - je vous en serais reconnaissant :)

Temps d'"exécution" dans les journaux - 150, 170, 171, 187 ms. Temps d'exécution des transactions - 96, 129, 67, 96 ms respectivement. Différence moyenne - 72,5 ms. L'heure exacte se trouve naturellement sur la bourse. Et ceci avec un ping de 12 ms.


***L'exécution fait référence à l'intervalle de temps entre l'envoi d'un tick "de base" de la bourse via un courtier et la conclusion de ma transaction sur ce "tick" à la bourse. Tout dépend du moment de l'échange.

Dans ce temps est censé inclure 2 ( ???? maintenant doute) latence du réseau par ~12 ms (ping) au courtier, le temps de traitement tick par le terminal, EA (je mesure et ajouter combien il est ~ ms dans mon cas), le courtier serveur, l'échange + 2 latences du réseau du courtier.


ZS : combien d'"exécution" à Otkritie alors ? :) Généralement cool, j'avais peur que ce soit l'inverse et bien pire...

Vous voulez juste faire un lien deux fois différent :)

En fait, c'est très simple.

Le temps d'exécution, c'est le temps d'envoi de l'ordre par le terminal et il est écrit dans le journal.

2022.04.11 11:25:41.599 Trades  'ххххх': sell limit 1 VTBR-6.22 at 2273

avant le moment de la transaction, ce qui est également écrit dans le journal.

2022.04.11 11:25:41.612 Trades  'ххххх': deal #111208977 sell 1 VTBR-6.22 at 2273 done (based on order #199905491)

Le temps enregistré (c'est le même) sera le temps d'exécution de l'ordre de transaction (13 ms) plus/moins l'erreur de temps à laquelle le journal est maintenu.

Toute la confusion vient du fait que MT5 ne fonctionne pas selon l'heure exacte de la bourse, mais selon sa propre heure.

 
JRandomTrader #:

J'ai environ 20-30ms en ouverture sur les futures, ping aux serveurs 10-12ms.

S'il vous plaît tester à tous pas indifférent si possible.

A cet endroit du code, où vous obtenez une coche pour former l'ordre :

 Print(" Время тика: ", 
       TimeToString((datetime)MathMax(last_tick_stocks.time,last_tick_futures.time),TIME_SECONDS), //в моём случае вход сразу по 2-м инструментам, у Вас возможно 1 символ
       ".", 
       MathMax(last_tick_stocks.time_msc,last_tick_futures.time_msc)%1000, //добавляет мс в строку
       " по символу ", 
       stocks_name); //имя инструмента

Et ensuite publier ce que l'EA montrera et ce qui sera dans les logs du terminal pour cet ordre.

J'essaierai de le trouver moi-même dans le réseau commercial. Cependant, ce n'est pas toujours possible - nous avons besoin de volumes qui ne sont pas typiques + idéalement, nous devons les remplir à des prix différents.

 
prostotrader #:

Vous voulez juste faire un lien deux fois différent :)

C'est en fait très simple.

Le temps d'exécution, c'est le temps d'envoi de l'ordre par le terminal et il est écrit dans le journal.

à l'heure de la transaction, qui est également écrite dans le fichier journal.

Le temps enregistré (c'est le même) sera le temps d'exécution de l'ordre de transaction (13 ms) plus/moins l'erreur de temps à laquelle le journal est maintenu.

Toute la confusion vient du fait que MT5 ne fonctionne pas exactement à l'heure de l'échange, et à sa propre heure.

Je ne les mélange pas entre eux. Je prends deux fois les bûches terminales dans un cas et deux fois les bûches d'accord dans l'autre cas. Et il l'est beaucoup moins avec la bande (ce devrait être l'inverse en théorie). Et la cassette a raison de toute façon.

Ajouté :

Ce que vous donnez comme exemple, ce sont les journaux du terminal. Nous pouvons voir combien de temps s'est écoulé dans les journaux du terminal. Et comment savoir combien de temps s'est écoulé sur l'échange ? Seulement la cassette des accords.


Un exemple brut et bref :

Imaginons que nous ayons affaire à une "cuisine". Ils peuvent nous envoyer dans les logs que le temps d'exécution est de 1 ms. Comment le vérifier ? Allez à l'échange et regardez l'heure qui y est indiquée - c'est la seule façon de comprendre approximativement si les journaux mentent ou non.

 
Andrey Miguzov #:

Je ne les mélange pas. Je prends deux fois les journaux du terminal dans un cas et deux fois la bande des transactions dans l'autre cas. Et c'est beaucoup moins pour la bande (alors que cela devrait être l'inverse). Et la bande est correcte dans tous les cas.

Alors je ne comprends pas ce que vous voulez découvrir ?

Le décalage horaire entre les transactions au comptant et à terme ?

 
prostotrader #:

Alors je ne comprends pas ce que vous voulez découvrir ?

Le décalage horaire entre les transactions au comptant et à terme ?

Ajouté au message ci-dessus.

L'algorithme est le suivant :

Nous recevons un tick de la bourse (l'heure du tick est T1).

Nous l'analysons et décidons d'envoyer un ordre d'achat/vente sur le symbole

Nous envoyons une commande

L'échange l'exécute et fixe l'heure d'exécution dans la case à cocher (heure de l'échange - T2).

Je suis intéressé par le temps = T2-T1

Raison: