FORTS. Fragen der Durchsetzung - Seite 108

 

Das Problem der Synchronisierung mit der Börsenzeit kann sehr einfach gelöst werden

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
  };

Aus der Plaza 2 Spezifikation

Fügen Sie einfach die Zeit in die MqlBookInfo-Struktur ein :)

struct MqlBookInfo 
  { 
   ENUM_BOOK_TYPE   type;       // тип заявки из перечисления ENUM_BOOK_TYPE 
   double           price;      // цена 
   long             volume;     // объем 
   ulong            moment;     // время (добавить)    
  };
 
fxsaber:

Ich weiß es nicht, es hat nichts mit dem obigen Skript zu tun. Zeigen Sie mir, was auf dem Handelskonto, bei dem das Problem aufgetreten ist, ausgegeben wird.

Falsches Skript war :)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
Dennis Kirichenko:

Sehr witzig!

 
prostotrader:

Das Problem der Synchronisierung mit der Börsenzeit kann sehr einfach gelöst werden

Aus der Plaza 2 Spezifikation

D.h. fügen Sie einfach die Zeit zur MqlBookInfo-Struktur hinzu :)

Aber wie wird es das Problem mit dem Lesen von Protokollen lösen, d.h. wenn ich eine Zeit habe und Exchange/Server eine andere?

In jedem Fall ist sie für uns nicht verfügbar.

 
Aleksey Vyazmikin:
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508923,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508924,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508925,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508926,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508927,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryDealGetInteger(48508928,DEAL_TIME_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000

Ich muss die Uhrzeit verwenden, was noch schwieriger ist, weil die Uhrzeit nicht mit den Protokollen des Servers übereinstimmt.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

FORTS. Fragen zum Vollzug

Aleksey Vyazmikin, 2018.04.26 12:56

Sieht aus wie Netzwerkverzögerungen auf der Client-Seite, hier ist, wie die Ausführung auf der Handels-Server-Seite ging:

0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': exchange buy 10.00 Si-6.18 at market (62785 / 62788 / 62787)
0       6       2018.04.25 16:49:24.024 85.***.***.***    '***': request transfered to dealers, rule 'FORTS Gateway #real' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.028 127.0.0.1       '2': request from '***' (exchange buy 10.00 Si-6.18 at market)
0       6       2018.04.25 16:49:24.029 127.0.0.1       '2': placed for execution for '***' (exchange buy 10.00 Si-6.18 at market)(62785 / 62788 / 62787) 
0       6       2018.04.25 16:49:24.029 85.***.***.***    '***': order placed for execution [#87849076 buy 10.00 Si-6.18 at market], time 5.98 ms
0       6       2018.04.25 16:49:24.030 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market request new due execution [request new order #87849076], time: 0.05 ms
0       6       2018.04.25 16:49:24.036 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market placed due execution [added order #87849076, buy limit 10.00 Si-6.18 at 65426 [based on order '30444116819']], time: 0.18 ms
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': deal performed [#48508923 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.041 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.041 FORTS Gateway #real     '***': order #87849076 buy 10.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006054']], time: 2.06 ms
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': deal performed [#48508924 buy 1.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.043 '***': order performed partially buy 1.00 at 62788 [#87849076 buy 10.00 / 1.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.043 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 1.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62788 [based on deal '2026006055']], time: 3.02 ms
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': deal performed [#48508925 buy 5.00 Si-6.18 at 62788]
0       6       2018.04.25 16:49:24.048 '***': order performed partially buy 5.00 at 62788 [#87849076 buy 10.00 / 2.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.048 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 2.00 Si-6.18 at market filled due execution [filled order #87849076, buy 5.00 Si-6.18 at 62788 [based on deal '2026006056']], time: 1.73 ms
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': deal performed [#48508926 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.050 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 7.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.050 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 7.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006057']], time: 3.40 ms
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': deal performed [#48508927 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.053 '***': order performed partially buy 1.00 at 62789 [#87849076 buy 10.00 / 8.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.053 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 8.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006058']], time: 1.49 ms
0       6       2018.04.25 16:49:24.054 FORTS Gateway #real     '***': deal performed [#48508928 buy 1.00 Si-6.18 at 62789]
0       6       2018.04.25 16:49:24.055 '***': order performed buy 1.00 at 62789 [#87849076 buy 10.00 / 9.00 Si-6.18 at market]
0       6       2018.04.25 16:49:24.055 FORTS Gateway #real     '***': order #87849076 buy 10.00 / 9.00 Si-6.18 at market filled due execution [filled order #87849076, buy 1.00 Si-6.18 at 62789 [based on deal '2026006059']], time: 4.03 ms

Außerdem liegt die MT5-Handelshistorie vor und zeigt, dass alles perfekt ausgeführt wurde.

 

Dies ist besonders aufschlussreich.

Die Zeit zum Einstellen und Ausführen eines Auftrags ist die gleiche :)

2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_DONE_MSC)) = 2018.04.25 16:49:23.000
2018.04.26 17:14:39.691 tTest (Si Splice,M15)   TimeMscToString(HistoryOrderGetInteger(87849076,ORDER_TIME_SETUP_MSC)) = 2018.04.25 16:49:23.000
 
prostotrader:

Die Zeit zum Einstellen und Ausführen eines Auftrags ist die gleiche :)

Seltsamer Zufall, dass die Zeit ein Vielfaches einer Sekunde ist (keine Millisekunden nach dem Punkt).

 
fxsaber:

Dann ist es noch unsinniger, denn die Zeit stimmt nicht mit den Server-Logs überein

Außerdem liegt die MT5-Handelshistorie vor, die zeigt, dass alles perfekt gelaufen ist.


 
fxsaber:

Seltsamer Zufall, dass die Zeit ein Vielfaches einer Sekunde ist (keine Millisekunden nach dem Punkt).

Ja, das stört mich auch, aber ich glaube, das ist eine Servereinstellung.

 
prostotrader:

Dies ist besonders aufschlussreich.

Die Zeit für die Einstellung und Ausführung eines Auftrags ist die gleiche :)

Ich frage mich, wenn jemand, der nicht aus Otkritie ist, ist es das gleiche ohne Millisekunden in der Geschichte gibt oder was?