Aktienmarkt. Bestände. Geschwindigkeit der Ausführung von Handelsaufträgen. - Seite 16

 
prostotrader #:

Andrey Miguzov Du kommst also doch in die Küche...

es gibt keine Marktaufträge auf dem Aktienmarkt

Das dachte ich anfangs auch... Aber sie bringen den Handel auf den Markt (an der MOEX) - das lässt sich leicht anhand der Handelsdaten überprüfen.

Es gibt ein Problem mit der Ausführungszeit, ich werde versuchen, es durch den technischen Support zu lösen, aber ein wenig später. Wenn sie es nicht in Ordnung bringen. Ich werde höchstwahrscheinlich gehen. zurück. Wenn Sie sich erinnern, war das bei Otkritie auch nicht immer so. Und dank Ihnen ist sie zu dem geworden, was sie heute ist.


Aber Sie müssen den großen Unterschied verstehen - MT5 in Otkritie ist nur MOEX - es ist viel einfacher für sie, das Terminal einzurichten, um auf mehreren Abschnitten auf dem gleichen Austausch zu arbeiten. Und um die Geräte näher an der Börse zu platzieren. Und das liegt daran, dass sie noch keine EBS gemacht haben.

Und Finam bietet jetzt EBS an:

Und bis zu allem braucht man eine kleine Verzögerung, und das ist schon theoretisch unmöglich. Sie wissen doch, welche Möglichkeiten sich bei einer solchen Anzahl von Instrumenten ergeben, oder? Im Allgemeinen gibt es überall Plus- und Minuszeichen.

SZS: Nicht wirklich zu diesem Thema, aber trotzdem. In Anbetracht der derzeitigen Sanktionen gegen den Bankensektor bin ich mir nicht sicher, wo es sicherer ist, Gelder aufzubewahren: bei einem russischen Broker (der Sanktionen unterliegt) oder in der "Küche". Ich schreibe das nicht, um politisch zu streiten, sondern weil ich es im Moment wirklich nicht verstehe. Ich möchte damit niemanden beleidigen.

 
prostotrader #:

Heute sind beide Terminals real

Futures

13 ms

Bestände

26ms bzw. 28ms

Hinzugefügt

Reverse Trades
Futures

7 ms

Bestände

26 ms bzw. 27 ms

Wenn ich mir Ihre Protokolle und dann meine ansehe, fangen meine Augen an zu "bluten". Ich werde die Protokolle etwas später posten - auch auf VTB etwa zur gleichen Zeit - und dabei die Analyse berücksichtigen, die ich oben geschrieben habe.

 
Andrey Miguzov #:

Wenn ich mir Ihre Protokolle ansehe und dann meine, fangen meine Augen an zu bluten. Ich werde die Protokolle etwas später posten - auch auf VTB etwa zur gleichen Zeit - und dabei die Analyse berücksichtigen, über die ich oben geschrieben habe.

Ich habe etwa 20-30ms auf Futures in Otkritie, ping zu Servern 10-12ms.

 
Andrey Miguzov #:

ZS: Nicht wirklich zu diesem Thema, aber trotzdem. Angesichts der derzeitigen Sanktionen gegen den Bankensektor bin ich mir nicht sicher, ob es sicherer ist, Gelder bei einem russischen Makler (der Sanktionen unterliegt) oder in der "Küche" zu verwahren. Ich schreibe das nicht, um politisch zu streiten, sondern weil ich es im Moment wirklich nicht verstehe. Ich möchte niemanden beleidigen.

Es gibt ein sehr weises russisches Sprichwort:

"Wo du geboren bist, da bist du geboren" ....

Hinzugefügt

Ein paar Verträge zu einem günstigen Preis erworben


 
Andrey Miguzov #:

Schlussfolgerungen:

1) Die Zeit in den Protokollen und die Tickzeiten sind nicht dasselbe, was logisch ist, aber ich habe noch nie darüber nachgedacht. IMHO ist es nicht ganz korrekt, die Laufzeit anhand von Terminalprotokollen zu messen.

2) Wenn Sie die Tick-Zeit mit der Genauigkeit von Millisekunden kennen (zu dem Preis, zu dem der Auftrag vom Terminal gesendet wird), können Sie dann (anhand der Historie von Symbolen mit geringer Liquidität) die tatsächliche "Ausführungszeit" kennen.

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

Diese Zeit beinhaltet alle Netzwerkverzögerungen von der Börse zum Terminal und zurück (über den Broker) + Bearbeitungszeit der Geschäftsausführung an der Börse +Bearbeitungszeit des Ticks durch den Experten

Über die Ergebnisse werde ich später schreiben.

Die tatsächlichen Ergebnisse (in diesem Fall Eintritt nach Spike - Austritt nach Zeit). Es tut mir leid, dass es sehr viel Text und Bilder gibt. Sie können die Schlussfolgerungen sofort lesen, alles andere dient nur der Bestätigung.

Registerkarte Expert Advisors (der Zeitpunkt des Ticks, der den Einstieg in die Position bzw. den Ausstieg aus der Position bewirkt, ist gelb hervorgehoben):

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

Registerkarte Protokolleintrag:

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)

Handelsband - Eintrag auf Aktien:


Tape of Deals - Eintrag auf Futures


Zusammenfassung des Eintrags:

Für die Aktie:

1) Aus den Terminalprotokollen: 10:45:19.621 - 10:45:19.471 = 150ms

2) Tick-Zeit im Handelsfeed: 10:45:18.540 - 10:45:18.444 = 96 ms. Und ich verstehe nicht, wie das möglich ist!!!

Für Futures:

1) Aus den Terminalprotokollen: 10:45:19.641 - 10:45:19.471 = 170ms.

2) Tick-Zeit im Handelsfeed:10:45:18.573 - 10:45:18.444= 129 ms. Auch hier verstehe ich nicht, wie das möglich ist!!!


Was die Statistiken betrifft, so gilt das Gleiche für den Ausgang:

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)

Band der Geschäfte - Ausstieg aus Aktien:


Tape of Trades - Ausstieg bei Futures:

Ausgang verlassen:

Für die Aktie:

1) Aus den Terminalprotokollen: 12:45:21.841 - 12:45:21.670 = 171 ms.

2) Tick-Zeit im Handelsfeed:12:45:20.556 - 12:45:20.489= 67 ms. Schon wieder!!! Und wie groß ist der Unterschied!!!!

Für Futures:

1) Laut Terminalprotokollen: 12:45:21.857 - 12:45:21.670 = 187 ms

2) Tick-Zeit im Trade-Feed: 12:45:20.585- 12:45:20.489= 96 ms ...


Schlussfolgerungen:

Bei der Messung der tatsächlichen Ausführungsverzögerungen können Sie keine Protokolle des Terminals verwenden ! Oder sollte ich sie auf andere Weise verwenden? Wenn mir jemand das erklärt, wäre ich dankbar :)

Zeit der "Ausführung" in den Protokollen - 150, 170, 171, 187 ms. Ausführungszeit der Geschäfte - 96, 129, 67 bzw . 96 ms. Durchschnittliche Differenz - 72,5 ms. Die richtige Zeit ist natürlich an der Börse. Und das bei einem Ping von 12 ms.


***Die "Ausführung" bezieht sich auf das Zeitintervall zwischen der Übermittlung eines "Basis"-Ticks von der Börse über einen Broker und dem Abschluss meines Handels zu diesem "Tick" an der Börse. Je nach Zeitpunkt des Umtauschs.

In dieser Zeit ist angeblich enthalten 2 (???? jetzt Zweifel) Netzwerk-Latenz von ~ 12 ms (ping) zu Broker, Zeit der Verarbeitung Tick von Terminal, EA (ich werde messen und fügen Sie, wie viele ~ ms in meinem Fall), Server-Broker, Austausch + 2 Netzwerk-Latenzen von Broker.


ZS: wie viel "Ausführung" bei Otkritie dann? :) Im Großen und Ganzen cool, ich hatte schon befürchtet, dass es andersherum und viel schlimmer sein würde...

 
Andrey Miguzov #:

Schlussfolgerungen:

Bei der Messung der tatsächlichen Ausführungsverzögerungen können die Terminalprotokolle nicht verwendet werden ! Oder sollte es anders verwendet werden, wenn mir das jemand erklären kann - ich wäre dankbar :)

Zeit der "Ausführung" in den Protokollen - 150, 170, 171, 187 ms. Ausführungszeit der Geschäfte - 96, 129, 67 bzw . 96 ms. Durchschnittliche Differenz - 72,5 ms. Die richtige Zeit ist natürlich an der Börse. Und das bei einem Ping von 12 ms.


***Die "Ausführung" bezieht sich auf das Zeitintervall zwischen der Übermittlung eines "Basis"-Ticks von der Börse über einen Broker und dem Abschluss meines Handels zu diesem "Tick" an der Börse. Je nach Zeitpunkt des Umtauschs.

In dieser Zeit ist angeblich umfasst 2 (???? jetzt Zweifel) Netzwerk-Latenz von ~12 ms (ping) zu Broker, Zeit der Verarbeitung Tick von Terminal, EA (ich messen und addieren, wie viele es ~ ms in meinem Fall), Server-Broker, Austausch + 2 Netzwerk-Latenzen von Broker.


ZS: wie viel "Ausführung" bei Otkritie dann? :) Im Großen und Ganzen in Ordnung, ich hatte schon befürchtet, dass es andersherum und viel schlimmer sein würde...

Sie wollen nur zwei verschiedene Zeiten verlinken :)

Eigentlich ist es ganz einfach.

Ausführungszeit, d.h. der Zeitpunkt des Absendens des Auftrags durch das Terminal, der im Protokoll vermerkt wird

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

vor dem Zeitpunkt der Transaktion, die ebenfalls in das Protokoll geschrieben wird.

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

Die protokollierte Zeit (es ist dieselbe) ist die Zeit der Ausführung des Handelsauftrags (13 ms) plus/minus den Fehler der Zeit, zu der das Protokoll geführt wird.

Die ganze Verwirrung entsteht dadurch, dass MT5 nicht nach der genauen Zeit der Börse arbeitet, sondern nach seiner eigenen Zeit.

 
JRandomTrader #:

Ich habe ca. 20-30ms in der Öffnung auf Futures, Ping zu Servern 10-12ms.

Bitte testen Sie alle nicht gleichgültig, wenn möglich.

An der Stelle des Codes, an der Sie ein Häkchen bekommen, um die Bestellung zu bilden:

 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); //имя инструмента

Und dann veröffentlichen Sie, was der EA anzeigt und was in den Terminalprotokollen für diese Bestellung steht.

Ich werde selbst versuchen, sie in der Pipeline des Handels zu finden. Dies ist jedoch nicht immer möglich - Sie brauchen Mengen, die nicht typisch sind, und idealerweise eine Abfüllung zu unterschiedlichen Preisen.

 
prostotrader #:

Sie wollen nur zwei verschiedene Zeiten verlinken :)

Es ist eigentlich ganz einfach.

Ausführungszeit, d.h. der Zeitpunkt des Absendens des Auftrags durch das Terminal, der im Protokoll vermerkt wird

auf die Handelszeit, die ebenfalls in die Protokolldatei geschrieben wird.

Die protokollierte Zeit (es ist dieselbe) ist die Zeit der Ausführung des Handelsauftrags (13 ms) plus/minus den Fehler der Zeit, zu der das Protokoll geführt wird.

Die ganze Verwirrung entsteht, weil MT5 nicht exakt nach der Börsenzeit, sondern nach seiner eigenen Zeit arbeitet.

Ich vermische sie nicht miteinander. In einem Fall entnehme ich zwei Mal die Terminalprotokolle, im anderen Fall zwei Mal den Splitter des Geschäfts. Und mit dem Klebeband ist es viel weniger (theoretisch sollte es umgekehrt sein). Und das Band ist sowieso richtig.

Hinzugefügt:

Was Sie als Beispiel anführen, sind die Terminalprotokolle. In den Terminalprotokollen können wir sehen, wie viel Zeit vergangen ist. Und woher wissen wir, wie viel Zeit in der Börse vergangen ist? Nur das Band der Geschäfte.


Ein grobes und kurzes Beispiel:

Stellen wir uns vor, wir haben es mit einer "Küche" zu tun. Sie können uns in Protokollen mitteilen, dass die Ausführungszeit 1 ms beträgt. Wie kann man das überprüfen? Gehen Sie zur Börse und sehen Sie sich die Zeit dort an - nur so können Sie ungefähr erkennen, ob die Protokolle lügen oder nicht.

 
Andrey Miguzov #:

Ich vermische sie nicht miteinander. In einem Fall entnehme ich zwei Mal die Terminalprotokolle, im anderen Fall zwei Mal das Band mit den Geschäften. Und es ist viel weniger für das Band (obwohl es eigentlich umgekehrt sein sollte). Und das Band ist auf jeden Fall korrekt.

Dann verstehe ich nicht, was Sie herausfinden wollen?

Der Zeitunterschied zwischen Kassa- und Termingeschäften?

 
prostotrader #:

Dann verstehe ich nicht, was Sie herausfinden wollen?

Der Zeitunterschied zwischen Kassa- und Termingeschäften?

Zum obigen Beitrag hinzugefügt.

Der Algorithmus sieht folgendermaßen aus:

Wir erhalten einen Tick von der Börse (Tickzeit ist T1).

Wir analysieren sie und beschließen, einen Kauf-/Verkaufsauftrag für das Symbol

Wir senden eine Bestellung

Die Börse führt ihn aus und legt den Zeitpunkt der Ausführung in der Tick-Box fest (Zeitpunkt der Börse - T2)

Ich interessiere mich für die Zeit = T2-T1

Grund der Beschwerde: