MT5 und Geschwindigkeit in Aktion - Seite 24

 
Artyom Trishkin:

Höchstwahrscheinlich nach der nächsten Version (jetzt im Beta-Stadium)

Danke
 
Artyom Trishkin:

Höchstwahrscheinlich nach der nächsten Version (jetzt im Beta-Stadium)

Wird es nicht eine Reihe von Angeboten geben?

 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

MT5 und Geschwindigkeit in Aktion

fxsaber, 2020.08.13 04:36

  1. Gehen Sie auf das MetaQuotes-Demo-Demokonto mit einer relativ langen Handelshistorie.
    1. Wenn Ihr Demokonto nur eine geringe Handelshistorie aufweist, sollten Sie den automatischen Handel zulassen und parallel dazu das Skript OrderSend-Test2.ex5 (im Anhang, Quelle) ausführen.

Dieses alte Skript zeigt viele Bremsen, wenn man es auf einem MQ-Demo-Chart laufen lässt und weitere Handelssymbole zu Market Watch hinzufügt (ich hatte 100).

Terminal Log.

2020.09.04 17:51:33.112 Trades  '34510052': cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.512 Trades  '34510052': accepted cancel order #702851395 buy stop 0.01 EURCAD at 1.55852
2020.09.04 17:51:33.514 Trades  '34510052': cancel #702851395 buy stop 0.01 EURCAD at market done in 401.845 ms

Die Löschung des schwebenden Geschäfts erfolgte in 401 ms. Die Entwickler haben Zugang zu den Protokollen des Handelsservers und können dort sehen, wie lange die Ausführung gedauert hat. Zum Beispiel.

Jeder kann sie auf seiner Website reproduzieren.


Für alle Fälle sieht ein Handelsauftrag mit Ergebnissen so aus.

2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Alert: EURCAD 702851395 Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.action = TRADE_ACTION_REMOVE (8)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.magic = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.symbol = EURCAD
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.stoplimit = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.sl = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.tp = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.deviation = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type = ORDER_TYPE_BUY (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_filling = ORDER_FILLING_FOK (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.type_time = ORDER_TIME_GTC (0)
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.expiration = 1970.01.01 00:00:00
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.comment = 
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Request.position_by = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode = 10009
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.deal = 0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.order = 702851395
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.volume = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.price = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.bid = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.ask = 0.0
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.comment = Request executed 401.915 + 0.003 (0) ms.
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.request_id = 6133
2020.09.04 17:51:33.514 OrderSend-Test2 (EURUSD,M1)     Result.retcode_external = 0


Ping.

2020.09.04 17:51:57.567 AccountInfoString(ACCOUNT_SERVER) = MetaQuotes-Demo
2020.09.04 17:51:57.567 TerminalInfoInteger(TERMINAL_PING_LAST) = 74808


Das Skript funktionierte etwa 10 Minuten lang.


Diese Verlangsamungen sind mir egal. Ich möchte nur wissen, wo und was ich einstellen kann, um die Situation zu verbessern. Ist es das Terminal oder der Handelsserver? Generell haben die Entwickler alle Möglichkeiten, die Daten zu reproduzieren und, falls gewünscht, zu verstehen.

Особенности исполнения торговых приказов MT5
Особенности исполнения торговых приказов MT5
  • 2020.02.06
  • www.mql5.com
Анализировал с владельцем MT5-сервера тормоза торговых приказов. Запускался OrderSend-Test2.mq5 в том же месте, где MT5-сервер стоит. Т.е. нулевой пинг. Демо, все внутри. Изучались логи MT5-сервера (2170) и MT5-клиента (2280). Логи сервера не буду приводить, просто словами опишу. Думаю, результаты буду интерсны всем, т.к. это поможет раскрыть...
 
fxsaber:

Dieses alte Skript zeigt viele Bremsen an, wenn Sie es auf einem einzigen MQ-Demo-Chart laufen lassen und weitere Handelssymbole zu Market Watch hinzufügen (ich hatte 100).

Ich erinnere mich an diesen Fall

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Neue Version der MetaTrader 5-Plattform Build 1880: Berechnung der vollständigen Historie synthetischer Instrumente

A100, 2018.07.25 21:55

Die Belastung muss in jedem Fall berücksichtigt werden:

Ich habe einen langsamen Computer... und ich habe einen sehr langsamen... Also... Wenn ich 63 Symbole in Market Watch hinzufüge und danach F10 drücke, hängt sich MetaTrader auf (muss neu gestartet werden)... während es in allen anderen Modi gut funktioniert

Ich habe versucht, F10 zu verwenden, aber es blieb mindestens ein Jahr lang hängen - obwohl es eine 32-Bit-Version war.

 
A100:

Ich erinnere mich an einen Fall wie diesen

Die Anzahl der Zeichen in der Marktübersicht ist für das Spielen von Bremsen nicht entscheidend. So habe ich es bei mir auch gemacht.

Es ist leicht zu reproduzieren.
2020.09.04 18:25:06.131 Trades  '34510052': buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': accepted buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.202 Trades  '34510052': order #702911224 buy limit 0.01 / 0.01 USDPLN at 3.77653 done in 70.966 ms
2020.09.04 18:25:06.202 Trades  '34510052': cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': accepted cancel order #702911224 buy limit 0.01 USDPLN at 3.77653
2020.09.04 18:25:06.274 Trades  '34510052': cancel #702911224 buy limit 0.01 USDPLN at market done in 71.859 ms
2020.09.04 18:25:06.274 Trades  '34510052': buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:06.481 Trades  '34510052': instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:06.982 Trades  '34510052': accepted buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.030 Trades  '34510052': order #702911229 buy stop 0.01 / 0.01 USDPLN at 3.79653 done in 755.302 ms
2020.09.04 18:25:07.030 Trades  '34510052': accepted instant sell 0.1 NZDSGD at 0.91421, close #702903930 buy 0.1 NZDSGD 0.91462
2020.09.04 18:25:07.030 Trades  '34510052': deal #681898561 sell 0.1 NZDSGD at 0.91421 done (based on order #702911234)
2020.09.04 18:25:07.031 Trades  '34510052': cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.031 Trades  '34510052': order #702911234 sell 0.1 / 0.1 NZDSGD at 0.91421 done in 550.273 ms
2020.09.04 18:25:07.103 Trades  '34510052': accepted cancel order #702911229 buy stop 0.01 USDPLN at 3.79653
2020.09.04 18:25:07.103 Trades  '34510052': cancel #702911229 buy stop 0.01 USDPLN at market done in 72.558 ms
2020.09.04 18:25:07.103 Trades  '34510052': instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.130 Trades  '34510052': instant sell 0.01 GBPCAD at 1.73255, close #702904086 buy 0.01 GBPCAD 1.73271
2020.09.04 18:25:07.174 Trades  '34510052': accepted instant buy 0.01 USDHUF at 297.871 (deviation: 100)
2020.09.04 18:25:07.174 Trades  '34510052': deal #681898572 buy 0.01 USDHUF at 297.871 done (based on order #702911246)
2020.09.04 18:25:07.175 Trades  '34510052': order #702911246 buy 0.01 / 0.01 USDHUF at 297.871 done in 72.051 ms
Zwischen den beiden roten Ortszeiten liegt nur 1ms, was eigentlich 550ms sein müssten (aufeinanderfolgende OrderSend). Offenbar wirken sich auch hier Print-Snapshots aus.
 
Renat Fatkhullin:

Ist Ihrer Position zuliebe ein Selbstschuss angebracht?

// Демонстрация тормозов HistorySelect.
#include <fxsaber\Benchmark.mqh> // https://c.mql5.com/3/321/Benchmark.mqh

input int inAlertTime = 1; // Нижний порог в миллисекундах

#define _B2(A) _B(A, inAlertTime)

const bool Init = EventSetTimer(1);

void OnTimer()
{
  static MqlTradeRequest Request = {0};
  static MqlTradeResult Result = {0};

  if (Request.tp) // Если позиция выставлена - меняем тейк.
  {
    static bool Flag = false;

    Request.action = TRADE_ACTION_SLTP;
    Request.tp += (1 - ((Flag = !Flag) << 1)) * _Point;
        
    if (Result.order)
      Request.position = Result.order;
  }
  else // Иначе выставляем позицию.
  {
    Request.action = TRADE_ACTION_DEAL;
    Request.symbol = _Symbol;
    Request.volume = 0.1;
    Request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
    Request.tp = Request.price + 1000 * _Point;         
  }

  if (OrderSend(Request, Result))
    _B2(HistorySelect(0, INT_MAX)); // В каком месте самострел?
}


Ergebnis auf b2592 MQ-Demo.

2020.09.04 23:30:32.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:33.681 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:34.655 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:35.674 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:36.657 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:37.668 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:38.661 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.
2020.09.04 23:30:39.666 Alert: Time[Test6.mq5 35: HistorySelect(0,INT_MAX)] = 5 ms.

Bei jedem Anruf gibt es eine Verzögerung.

 
Auch über Verzögerungen

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

A100, 2020.08.31 15:55

Ich habe einen sehr guten Zeitrahmen, vor allem für EURUSD, Fadenkreuz bewegt sich sehr langsam nach dem Cursor, es ist genug, um den Cursor reibungslos diagonal zu bewegen, um es zu reproduzieren. In anderen Zeiträumen ist es in Ordnung. Es gab keine solche Verzögerung vor

Und alle manuellen Diagramme (Trend, Fibonacci, usw.) sind ebenfalls langsam.

Alle Einstellungen sind standardmäßig:

  • Server: MetaQuotes-Demo
  • Geschichte: verfügbar seit 01.01.1971
  • Genauer Zeitrahmen: keiner
  • Max. Balken im Fenster: 100000
  • Diagrammtyp: Candlesticks
  • Verkleinerung des Diagramms: Maximum

Symbol, Punkt Bars Latenzzeit
EURUSD, Monatlich 597 gehen zu
EURUSD, Wöchentlich
2590 Überprüfen Sie
EURUSD, Täglich

12797

keine

Eine Art umgekehrte Abhängigkeit: je weniger Balken, desto langsamer

Auf Monats- und Wochencharts, z. B. EURGBP (wo es keine so tiefe Geschichte gibt) - keine Verzögerungen

 
A100:

Eine Art umgekehrte Beziehung: je niedriger die Balken, desto langsamer

Vielmehr ist sie direkt - je höher die TF, desto länger die Verzögerung.

Offensichtlich ist dies auf die genaue Berechnung der Koordinaten durch die untere TF zurückzuführen. Die Indizes der Balken, die in den gesuchten wöchentlichen/monatlichen Balken enthalten sind, sind irgendwo durcheinander geraten.

ps: alles funktioniert bei mir, gleiche Anzahl von Balken

 
Andrey Khatimlianskii:

Es handelt sich eher um eine gerade Linie - je höher die TF, desto größer die Verzögerung.

Offensichtlich aufgrund der genauen Berechnung der Koordinaten auf der unteren TF. Irgendwo haben sie es vermasselt, die Indizes der Balken in den erforderlichen wöchentlichen/monatlichen Balken einzubeziehen.

ps: alles funktioniert bei mir, gleiche Anzahl von Balken

Natürlich werden keine EAs/Indikatoren/Skripte ausgeführt - nur manuelle Erstellung. Die angezeigte Latenzzeit ist auf jedem durchschnittlichen modernen 64-Bit-Tablet reproduzierbar. Wenn Sie einen i7-Computer haben, nehme ich an, dass Sie diese Verzögerung noch nicht bemerkt haben.
 
A100:
Natürlich werden keine Experten/Indikatoren/Skripte ausgeführt - nur manuelle Builds. Die angegebene Latenzzeit ist auf jedem durchschnittlichen modernen 64-Bit-Tablet reproduzierbar. Wenn Sie einen i7-Computer haben, haben Sie diese Verzögerung vermutlich noch nicht bemerkt.

Ich hätte vielleicht präzisieren sollen, dass ein Tablet verwendet wird.

Ich habe einen i5