FORTS. Fragen der Durchsetzung - Seite 107

 
Aleksey Vyazmikin:

Das Problem ist, dass alle Beweise nur vom Makler oder der Börse kommen können, was bedeutet, dass ich nicht in der Lage sein werde, sie zu bekommen. Ich werde mich also vorerst weiter mit der Situation befassen.

Ich habe eine Antwort vom Makler erhalten

"

Guten Tag Alexey Vyacheslavovich! Die Antwort der Entwickler -

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

"

Wie ich aus dem Protokoll entnehme:

1. Die Ausführungszeit ist ungefähr gleich lang

2. die Ausführungsinformationen kamen vom Server und wurden vom Programm mit einer Verzögerung von 3 Sekunden verarbeitet

Der Hinweis auf eine 3-Sekunden-Verzögerung meinerseits klingt recht seltsam, da mein Internet bis zum Router auf der Leitung gut genug ist, der Kanal war nicht überlastet. Die Computerkerne waren nicht zu 100 % ausgelastet, aber vielleicht waren einige der Kerne zu 100 % ausgelastet.

Dann stellt es sich heraus:

1. Die Entwickler haben die Prioritäten der Aufgaben (Threads), die von der CPU zuerst bearbeitet werden sollten, nicht richtig verwaltet, und der MT5-Kern hätte gezwungen werden können, immer den am wenigsten belasteten CPU-Kern zu belegen. Und bei 100 % Auslastung reduzieren Sie die Ausführungspriorität für die Berechnung von Indikatoren und anderem Anwendercode.

2) MT5-Logs sind nicht vertrauenswürdig.

Ja, jetzt kann man niemandem mehr trauen.

Die Strafe für die Taten war in Russland nie angemessen.

Wenn man eine Schachtel Streichhölzer stiehlt, kann man für 3 Jahre ins Gefängnis gehen, aber wenn man Streichhölzer in ganzen Wagenladungen stiehlt,

Sie bekommen nichts!

Laut Ihren MT5-Protokollen:

2018.04.25 16:49:28.972 Trades  '***': exchange buy 10.00 Si-6.18 at market                                       - терминал отдал приказ серверу МТ5 на покупку
2018.04.25 16:49:29.186 Trades  '***': accepted exchange buy 10.00 Si-6.18 at market                              - сервер МТ5 проверил ордер и утвердил его правильность 
2018.04.25 16:49:29.387 Trades  '***': exchange buy 10.00 Si-6.18 at market placed for execution                  - сервер МТ5 отправмл ордер на Биржу
2018.04.25 16:49:30.002 Trades  '***': order #87849076 buy 10.00 / 10.00 Si-6.18 at market done in 1030.179 ms    - сервер МТ5 рапортовал, что ордер исполнился

und diese sind

2018.04.25 16:49:30.405 Trades  '***': deal #48508923 buy 1.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:30.819 Trades  '***': deal #48508924 buy 1.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:31.032 Trades  '***': deal #48508925 buy 5.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:31.635 Trades  '***': deal #48508926 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)
2018.04.25 16:49:32.058 Trades  '***': deal #48508927 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)
2018.04.25 16:49:32.264 Trades  '***': deal #48508928 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)

ist nur eine Abschrift der Berufe.

Hinzugefügt von

Aus den Protokollen der SERVER zeigt, dass der Kern des Austauschs, alle sofort ausgeführt, Verzögerungen von 3-4 ms, diese Verzögerung von der Broker an den Kern des Austauschs, weil Geschäfte in Plaza 2 sind ein separater Strom,

die der Server erhält, ist nicht in Echtzeit, sondern in "Scheiben".

Kurz gesagt, Sie müssen den Makler und die Entwickler aus dem Weg räumen.

Die "Netzverzögerungen" gehen nicht auf Ihr Konto, sondern auf meins!

Hinzugefügt

Jeden Morgen (und manchmal nachmittags) wird der Befehl für einige Sekunden nicht ausgeführt

2018.04.26 10:02:35.202 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:36.208 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:37.222 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:38.236 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:39.250 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:40.263 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:41.277 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:42.291 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:43.305 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:44.319 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:45.333 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:46.348 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:47.362 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:48.376 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:49.390 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
 
Aleksey Vyazmikin:

Ich habe eine Antwort vom Makler erhalten

Ja, ich dachte eher an die Börse) 10ms für die Ausführung eines Auftrags. aber es sind sowieso keine 2 Sekunden.
 
prostotrader:

"Netzverzögerungen" gibt es nicht bei Ihnen und mir, sondern bei ihnen!

Hinzugefügt

Jeden Morgen (und manchmal nachmittags) wird der Befehl für einige Sekunden nicht ausgeführt

Was ich wissen möchte, ist, wo die Zeit eingestellt ist, in meinem Terminal log es ist mein Computer Zeit und sie haben die MT5 Server Zeit?

Ich habe die Zeitsynchronisation - alle 10 Minuten durch den entsprechenden Server (ntp2.stratum2.ru), ich habe die Batterie auf meinem Motherboard geändert, bedeutet dies, dass die Zeit genau sein sollte. Aber auf dem Bildschirm sehe ich oft, dass die Zeit auf meiner Uhr schon abgelaufen ist, aber der Balken zappelt weiter - ist das so? Ist die Zeit an der Börse eine Art Linkshänder?

 
Aleksey Vyazmikin:

Ich bin auch daran interessiert, welche Zeit angegeben ist - in meinem Terminal in das Protokoll ist es mein Computer Zeit, und sie haben die Zeit des MT5-Server?

Ich synchronisiere gerade meine Zeit alle 10 Minuten mit dem entsprechenden Server (ntp2.stratum2.ru), ich habe die Batterie auf meinem Motherboard gewechselt, also sollte die Zeit genau sein. Aber auf dem Bildschirm sehe ich oft, dass die Zeit auf meiner Uhr schon abgelaufen ist, aber der Balken zappelt weiter - ist das so? Die Börse hat eine Art Restzeit?

Ich weiß nicht, wie MQ die Synchronisierung der MT5-Serverzeit mit der Exchange-Zeit realisiert hat.

Aber da wir auf dem bmrz handeln, spielt es keine Rolle, welche Zeit Ihr Computer oder MT5-Server, was wichtig ist, die die Exchange-Zeit ist!

Die Synchronisierung muss mit der Exchange-Zeit erfolgen.

//+------------------------------------------------------------------+
//| Expert Check Market Time function                                |
//+------------------------------------------------------------------+
bool CheckMarketTime()
{
  sv_time.year = 0;
  TimeCurrent(sv_time); //Возвращает последнее известное время сервера
  if(sv_time.year > 0)
  {
    MqlDateTime cur_time;
    cur_time.year = 0;
    TimeTradeServer(cur_time); //Возвращает расчетное текущее время торгового сервера.
    if(cur_time.year > 0)
    {
      if((cur_time.day_of_week == int(FirstDay)) ||
         (cur_time.day_of_week == int(SecondDay))) return(false); //Проверка на выходные
      if(cur_time.day_of_week == sv_time.day_of_week)
      {
        ulong tr_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec;
        if(((tr_time >= time_st_mon) && (tr_time < 50370)) ||  //10:00:01 - 13:59:30
           ((tr_time >= time_st_day) && (tr_time < 67470)) ||  //14:05:01 - 19:44:30 
           ((tr_time >= time_st_evn) && (tr_time < 85770)))    //19:05:01 - 23:49:30
        {
          return(true);
        }  
      }   
    }   
  }
  return(false);
} 
TimeCurrent(sv_time); //Возвращает последнее известное время сервера

D.h.TimeCurrent() ist NICHT die genaue Zeit

TimeTradeServer(cur_time); //liefert die geschätzte aktuelle Zeit des Handelsservers.

TimeTradeServer ist nicht die genaue Zeit

Der Punkt ist, dass die Börse seit letztem Jahr ALLE für den Börsenhandel notwendigen Informationen verbreitet,

bis hin zu einigen Berechnungen.

In der Spezifikation des Plaza 2-Protokolls heißt es

Server Uhr Service Tisch

Und das ist der Zweck dieser Tabelle



Ursprünglich "saß" mt5 auf plaza 2 p2gate, das "starb" und MQ brauchte

um den Server schnell auf CGate umzuschreiben, aber warum sich die Mühe machen, wenn er bereits geschrieben ist und funktioniert?

Hinzufügen - Korrigieren von etwas.

Hinzugefügt

Das Latenzproblem ist das Ergebnis eines schwerwiegenden Fehlers.

Das Terminal kann nicht mehr als 60 Transaktionen in 1 Sekunde senden (d.h. 2 Plaza 2 Logins)

Durch einfache Berechnungen können Sie ermitteln, welche "Geschwindigkeit" der Makler haben sollte, der

die den МТ5-Server und das Gateway verbindet.

 
prostotrader:

Ich weiß nicht, wie MQ die Synchronisierung der MT5-Serverzeit mit der Exchange-Zeit realisiert hat.

Aber da wir auf bmrz handeln, spielt es keine Rolle, welche Zeit Ihr Computer oder MT5-Server hat, wichtig ist die Börsenzeit!

Die Synchronisierung muss zum Zeitpunkt des Austauschs durchgeführt werden.

Und was passiert tatsächlich? Vielleicht hat die Börse einen Server, um die Zeit der PC-Benutzer zu synchronisieren?

 
Aleksey Vyazmikin:

Was passiert eigentlich? Vielleicht hat die Börse einen Server, der die PC-Zeit der Benutzer synchronisiert?

Ich habe die Informationen zu meinem vorherigen Beitrag hinzugefügt.

 
Aleksey Vyazmikin:

Ich bin auch daran interessiert zu wissen, welche Zeit es ist - in meinem Terminal-Log ist es meine Computerzeit, und sie haben die MT5-Serverzeit?

Was gibt dieses Skript aus?

#define  PRINT(A) Print(#A + " = " + (string)(A))

string TimeMscToString( const ulong time )
{
  return(TimeToString(time / 1000, TIME_DATE | TIME_SECONDS) + "." + IntegerToString(time % 1000, 3, '0'));
}

void OnStart()
{
  if (HistorySelect(0, LONG_MAX))
  {
    PRINT(TimeMscToString(HistoryDealGetInteger(48508923, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508924, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508925, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508926, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508927, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508928, DEAL_TIME_MSC)));
    
    PRINT(TimeMscToString(HistoryOrderGetInteger(87849076, ORDER_TIME_DONE_MSC)));
    PRINT(TimeMscToString(HistoryOrderGetInteger(87849076, ORDER_TIME_SETUP_MSC)));
  }
}
 
fxsaber:

Was gibt dieses Skript her?

2018.04.26 16:59:58.686 Test_sr (Si Splice,M15) arrK=0.2021591274299704

Was ist das?
 

 
Aleksey Vyazmikin:

2018.04.26 16:59:58.686 Test_sr (Si Splice,M15) arrK=0.2021591274299704

Was ist das?

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.

Grund der Beschwerde: