Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Bitte senden Sie hier die Anleitung zur Eröffnung eines echten Kontos bei BCS.
Damit ich nicht jedes Mal herumwühlen muss, habe ich sie in mein Profil aufgenommen.
Alexey Kozitsyn:
Danke, ich habe es bereits selbst getan.Спасиб
Ich mache einen Abgleich, es gibt Unterschiede, aber keine großen.
Meiner Meinung nach funktioniert die Funktion der Aufzeichnung von Order-Ticks in der Historie nicht richtig (die Trades sind OK).
Ich werde 300 Zeilen erstellen und die Vergleichsdatei veröffentlichen.
Hinzugefügt
Überprüfen Sie es, ich könnte einen Fehler gemacht haben.
Hat sowohl um 10:00 Uhr als auch um 14:05 Uhr genau funktioniert.
2017.01.26 14:05:00.005 Time_sync_forts (URKA-3.17,H1) Local time sync is done. Symbol = RTS-3.17 Sync hour = 14 Sync min = 5 Sync sec = 0 Sync ms = 5
Hinzugefügt
Ich denke, ich werde den BR entfernen, so dass alles automatisch für 3 Monate geschieht :)
Das war's also.
Und die Vormittagssitzung und nach beiden Clears.
Es wurde eine Menge sorgfältige Arbeit geleistet. Da die Zeitsynchronisierung mit der vorgeschlagenen Methode auf der Berücksichtigung des Ping-Wertes beruht, habe ich eine Frage.
Durch Abfrage der Kennung TERMINAL_PING_LAST gibt das Terminal (laut MQL-Dokumentation) den"letzten bekannten Wert des Pings zum Handelsserver in Mikrosekunden" an.
Worum handelt es sich dabei, ist sein Wert stabil und wie groß ist er? Viele Jahre lang habe ich dieses Merkmal in den Protokolldateien gesehen, aber jetzt kann ich Pings in der Liste der Server direkt im Terminal sehen. Und sie sind sehr stabil. Was ist das?
Es gibt nur zwei Varianten, die ich mir vorstellen kann.
1) Es handelt sich um eine Netzwerkcharakteristik, die von Routern zur Analyse von IP-Paketpfaden verwendet wird. Sie wird mit Hilfe des ICMP-Netzwerkprotokolls ermittelt und berücksichtigt eigentlich nur die Ausbreitung von Hardwaresignalen. Im speziellen Fall der Ping-Messungen zwischen einem Client-Computer und einem Server bedeutet dies, dass die Daten zwischen den beiden NICs hin und her gehen. Pakete mit diesem Protokoll erreichen die Anwendungen in der Regel nicht, es ist nicht notwendig https://ru.wikipedia.org/wiki/ICMP.
2. Es verdoppelt die Signallaufzeit von der Anwendung auf dem Server zur Anwendung auf dem Client.
Hat jemand eine Ahnung?
Es wurde eine Menge sorgfältige Arbeit geleistet. Da die Zeitsynchronisierung mit der vorgeschlagenen Methode auf der Berücksichtigung des Ping-Wertes beruht, habe ich eine Frage.
Durch Abfrage der Kennung TERMINAL_PING_LAST gibt das Terminal (laut MQL-Dokumentation) den"letzten bekannten Wert des Pings zum Handelsserver in Mikrosekunden" an.
Worum handelt es sich dabei, ist sein Wert stabil und wie groß ist er? Viele Jahre lang habe ich dieses Merkmal in den Protokolldateien gesehen, aber jetzt kann ich Pings in der Liste der Server direkt im Terminal sehen. Und sie sind sehr stabil. Was ist das?
Es gibt nur zwei Varianten, die ich mir vorstellen kann.
1) Es handelt sich um eine Netzwerkcharakteristik, die von Routern zur Analyse von IP-Paketpfaden verwendet wird. Sie wird mit Hilfe des ICMP-Netzwerkprotokolls ermittelt und berücksichtigt eigentlich nur die Ausbreitung von Hardwaresignalen. Im speziellen Fall der Ping-Messungen zwischen einem Client-Computer und einem Server bedeutet dies, dass die Daten zwischen den beiden NICs hin und her gehen. Pakete mit diesem Protokoll erreichen die Anwendungen in der Regel nicht, es ist nicht notwendig https://ru.wikipedia.org/wiki/ICMP.
2. Es verdoppelt die Signallaufzeit von der Anwendung auf dem Server zur Anwendung auf dem Client.
Hat jemand eine Ahnung?
Nur die Entwickler können diese Frage mit Sicherheit beantworten.
Ich habe mich auf das zweite gestützt.
>Dies entspricht der doppelten Signallaufzeit von der Anwendung auf dem Server zur Anwendung auf dem Client.
Das war's also.
Und die Vormittagssitzung und nach beiden Clears.
Alles funktioniert "wie am Schnürchen" :)
2017.01.30 14:05:00.002 Time_symc_forts (URKA-3.17,H1) Local time sync is done. Symbol = Si-3.17 Sync hour = 14 Sync min = 5 Sync sec = 0 Sync ms = 2
2017.01.30 19:00:00.003 Time_symc_forts (URKA-3.17,H1) Local time sync is done. Symbol = Si-3.17 Sync hour = 19 Sync min = 0 Sync sec = 0 Sync ms = 3
Hinzugefügt
Ich warte nur darauf, dass das Bieten um 19-05 Uhr beginnt.
Alles funktioniert "wie am Schnürchen" :)
2017.01.30 14:05:00.002 Time_symc_forts (URKA-3.17,H1) Local time sync is done. Symbol = Si-3.17 Sync hour = 14 Sync min = 5 Sync sec = 0 Sync ms = 2
2017.01.30 19:00:00.003 Time_symc_forts (URKA-3.17,H1) Local time sync is done. Symbol = Si-3.17 Sync hour = 19 Sync min = 0 Sync sec = 0 Sync ms = 3
Hinzugefügt
Ich warte nur darauf, dass die Versteigerung um 19-05 Uhr beginnt.
Hinzugefügt
Für Sergej
https://www.mql5.com/ru/forum/166646
Schalten Sie sie doch einfach mal ein, um zu sehen, wie genau die Zeit synchronisiert wird:
//| Delta Time Server.mq5 |
//+------------------------------------------------------------------+
struct _SYSTEMTIME
{
short year;
short mon;
short day_of_week;
short day;
short hour;
short min;
short sec;
short msc;
};
_SYSTEMTIME loc_time;
#import "kernel32.dll"
void GetLocalTime(_SYSTEMTIME &sys_time);
bool SetLocalTime(_SYSTEMTIME &sys_time);
#import
//---
MqlTick tick;
MqlDateTime sv_time;
int tick_msc,ping,time_server,time_local,delta=0,mdelta[10],n=0;
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
loc_time.year=0;
GetLocalTime(loc_time);
if(loc_time.year>0)
{
if(!SymbolInfoTick(_Symbol,tick)) { Print("error SymbolInfoTick: ",GetLastError()); return; }
ping=TerminalInfoInteger(TERMINAL_PING_LAST)/1000;
tick_msc=int(tick.time_msc%1000);
TimeToStruct(tick.time,sv_time);
time_server=(sv_time.sec+sv_time.min*60)*1000+tick_msc;
time_local=(loc_time.sec+loc_time.min*60)*1000+loc_time.msc;
delta=AvgDelta(time_server-time_local);
Print(
"ping : ",ping,
" | time server: ",sv_time.hour,":",sv_time.min,":",sv_time.sec,",",tick_msc,
" | time local: ",loc_time.hour,":",loc_time.min,":",loc_time.sec,",",loc_time.msc,
" | delta ms: ",delta,
" | min max delta: ",mdelta[ArrayMaximum(mdelta)]," : ",mdelta[ArrayMinimum(mdelta)],
"");
}
}
//+------------------------------------------------------------------+
int AvgDelta(int d)
{
int avgd=0;
mdelta[n]=d;
n++; if(n>=10) n=0;
for(int i=0;i<10;i++) avgd+=mdelta[i];
return(avgd/10);
}
//+------------------------------------------------------------------+