Sincronizzare l'ora locale di Windows con il server MT5 - pagina 14

 
Alexey Kozitsyn:
Invia qui le istruzioni su come aprire un conto reale alla BCS.
Per evitare di cercare ogni volta, l'ho messo nel mio profilo.
 
fxsaber:
Per evitare di dover scavare ogni volta, l'ho messo sul mio profilo.
Grazie.
 

Alexey Kozitsyn:
Спасиб

Grazie, l'ho già fatto io stesso.
File:
 

Facendo un confronto, ci sono differenze, ma non significative.

Secondo me, la funzione di registrazione dei tick degli ordini nella cronologia non funziona correttamente (tutto è OK con i trade).

Farò 300 linee e posterò il file di confronto.

Aggiunto

Controlla, potrei aver fatto un errore

File:
Book2.zip  671 kb
 
prostotrader:

Ha lavorato accuratamente sia alle 10:00 che alle 14:05

2017.01.26 10:00:00.000 Time_sync_forts (URKA-3.17,H1)  Local time sync is done. Symbol = RTS-3.17 Sync hour = 10 Sync min = 0 Sync sec = 0 Sync ms = 0
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

Aggiunto

Penso che rimuoverò BR in modo che tutto avvenga automaticamente per 3 mesi :)

E qualche idea su come "fregare" la compensazione serale, visto che l'asta può iniziare alle 19-00, quindi alle 19-05?
 

Quindi questo è tutto.

E la sessione del mattino e dopo entrambe le schiarite.

File:
 

È stato fatto un lavoro molto accurato. Dato che la sincronizzazione del tempo con il metodo suggerito si basa sulla considerazione del valore di ping, ho una domanda.

Richiedendo l'identificatore TERMINAL_PING_LAST, il terminale fornisce (secondo la documentazione MQL) l'"Ultimo valore noto del ping al server commerciale in microsecondi".

Cos'è, il suo valore è stabile e quanto è grande? Per molti anni ho visto questa caratteristica nei file di log, ma ora posso vedere i ping nella lista dei server direttamente nel terminale. E sono molto stabili. Che cos'è?

Solo due varianti che posso immaginare.

1) È una caratteristica di rete utilizzata dai router per analizzare i percorsi dei pacchetti IP, che si ottiene utilizzando il protocollo di rete ICMP e in realtà tiene conto solo della propagazione del segnale hardware. Nel caso particolare delle misure di ping tra un computer client e un server, significa avanti e indietro tra le loro NIC. I pacchetti con questo protocollo di solito non raggiungono le applicazioni, non è necessario https://ru.wikipedia.org/wiki/ICMP.

2. raddoppia il tempo di percorrenza del segnale dall'applicazione sul server all'applicazione sul client.

Qualcuno ha un indizio?

ICMP — Википедия
  • ru.wikipedia.org
ICMP Название: Уровень (по модели OSI): Семейство: Спецификация: ICMP (англ.   — протокол межсетевых управляющих сообщений[1]) — сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и других исключительных ситуациях, возникших при передаче данных, например, запрашиваемая услуга...
 
Vladimir:

È stato fatto un lavoro molto accurato. Dato che la sincronizzazione del tempo con il metodo suggerito si basa sulla considerazione del valore di ping, ho una domanda.

Richiedendo l'identificatore TERMINAL_PING_LAST, il terminale fornisce (secondo la documentazione MQL) l'"Ultimo valore noto del ping al server commerciale in microsecondi".

Cos'è, il suo valore è stabile e quanto è grande? Per molti anni ho visto questa caratteristica nei file di log, ma ora posso vedere i ping nella lista dei server direttamente nel terminale. E sono molto stabili. Che cos'è?

Solo due varianti che posso immaginare.

1) È una caratteristica di rete utilizzata dai router per analizzare i percorsi dei pacchetti IP, che si ottiene utilizzando il protocollo di rete ICMP e in realtà tiene conto solo della propagazione del segnale hardware. Nel caso particolare delle misure di ping tra un computer client e un server, significa avanti e indietro tra le loro NIC. I pacchetti con questo protocollo di solito non raggiungono le applicazioni, non è necessario https://ru.wikipedia.org/wiki/ICMP.

2. raddoppia il tempo di percorrenza del segnale dall'applicazione sul server all'applicazione sul client.

Qualcuno ha un indizio?

Solo gli sviluppatori possono rispondere con certezza a questa domanda.

Mi stavo basando sul secondo.

>Questo è il doppio del tempo di percorrenza del segnale dall'applicazione sul server all'applicazione sul client.

 
prostotrader:

Quindi questo è tutto.

E la sessione del mattino e dopo entrambe le schiarite.

Tutto funziona "come un orologio" :)

2017.01.30 10:00:00.000 Time_symc_forts (URKA-3.17,H1)  Local time sync is done. Symbol = Si-3.17 Sync hour = 10 Sync min = 0 Sync sec = 0 Sync ms = 0
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

Aggiunto

Aspettando che l'offerta inizi a 19-05

Market closed
Market closed
  • www.mql5.com
Ребята разработчики! Ну когда же Вы синхронизируете время терминала с временем Биржи...
 
prostotrader:

Tutto funziona "come un orologio" :)

2017.01.30 10:00:00.000 Time_symc_forts (URKA-3.17,H1)  Local time sync is done. Symbol = Si-3.17 Sync hour = 10 Sync min = 0 Sync sec = 0 Sync ms = 0
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

Aggiunto

Aspettando che l'offerta inizi a 19-05

Aggiunto

Per Sergey

https://www.mql5.com/ru/forum/166646

Solo per divertimento, accendilo se non ti dispiace, vediamo quanto accuratamente il tempo è sincronizzato:

//+------------------------------------------------------------------+
//|                                            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);
  }
//+------------------------------------------------------------------+

Motivazione: