Indikatoren: Ping - Seite 3

 

Es gibt ein logisches Problem mit Ihrem Indikator.

Ping = PrevTime ? MathAbs(Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0;

Sie können nicht einfach den absoluten Wert nehmen und ihn als Verzögerung zählen. Ein -250 ms "im Voraus" wird als eine 250 Verzögerung gezählt, das ist nicht gut.

Ticks werden von MT5 oft paketweise empfangen, deshalb gibt es negative Werte.

Ich glaube nicht, dass es möglich ist, etwas genaues darüber zu berechnen. Ich habe die MathAbs() entfernt und erlaube negative Werte, alles ist gut ausgeglichen zwischen Plus- und Minuswerten.


 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Indikatoren: Ping

Alain Verleyen, 2023.03.09 20:58.

Es gibt ein logisches Problem mit Ihrem Indikator.

Ping = PrevTime ? MathAbs (Tick.time_msc - PrevTick.time_msc - (NowTime - PrevTime) / 1 e3) : 0 ;

Sie können nicht einfach einen absoluten Wert nehmen und ihn als Verzögerung betrachten. -250 ms "im Voraus" würde als eine Verzögerung von 250 angesehen werden, das ist nicht gut.

Ticks kommen im MT5 oft in Paketen an, daher die negativen Werte.

Ich glaube nicht, dass es möglich ist, etwas Genaues darüber zu berechnen. Ich habe MathAbs() entfernt und negative Werte zugelassen, alles ist gut ausgeglichen zwischen positiven und negativen Werten.



 
Alain Verleyen #:

Es gibt ein logisches Problem mit Ihrem Indikator.

Jede Abweichung von Null ist nicht ideal.
 
Alain Verleyen #:

Leitfrage: Stellt das Terminal die Zeit in Ticks ein? IMHO wird der Tickverlauf vom Server generiert. Von welchem Terminal-Ping sprechen wir dann?

 
Stanislav Korotky # :

Leitfrage: Stellt das Terminal die Zeit in Ticks ein? IMHO wird der Tickverlauf vom Server generiert. Von welchem Terminal-Ping sprechen wir dann?

Ich stimme natürlich zu, dass es nicht vom Terminal kommt.

Es ist unmöglich, die tatsächliche Latenzzeit im Netz genau zu kennen.

 
Stanislav Korotky #:

Leitfrage: Stellt das Terminal die Zeit in Ticks ein? IMHO wird der Tickverlauf vom Server generiert. Von welchem Terminal-Ping sprechen wir dann?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien.

Neue Version von MetaTrader 5 build 3620: Verbesserungen am Web-Terminal, ONNX-Unterstützung und beschleunigte Matrix-Multiplikation in MQL5.

fxsaber, 2023.03.09 07:31 Uhr

Verzögerungen bei der Ankunft von Ticks kommen vor. Am Beispiel von zwei benachbarten Ticks sieht das so aus.

Tick.time_msc = 08:00:00.000, время прихода 08:00:00.000.

Tick.time_msc = 08:00:00.200, время прихода 08:00:00.490.

Der Tick kam 290 Millisekunden später als er hätte kommen müssen.


Ich beobachte eine ähnliche Situation mit solchen Ausbrüchen von Tick-Ankunftsverzögerungen auf einem dedizierten Server mit fast Null-Ping. Von Netzwerkanwendungen gibt es nur Terminal.

Die durchschnittliche Verzögerung beträgt 200 Mikrosekunden, d. h. viel weniger als eine Millisekunde.

Können Sie empfehlen, was getan werden sollte, um die Latenz zu beseitigen?


Ich habe diesen Indikator verwendet, um die Verzögerungen zu visualisieren.


Es werden zwei Unterschiede verglichen: zwischen den Zeiten der Erzeugung der Ticks auf dem Server und zwischen den Zeiten ihrer Ankunft im Terminal.

 
Unterstützt es MT4?
 
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])

Ändern Sie den Code in diese Funktion kompatibel mit mt4 Version