Synchroniser l'heure locale de Windows avec le serveur MT5 - page 14

 
Alexey Kozitsyn:
Veuillez envoyer ici les instructions sur la façon d'ouvrir un compte réel chez BCS.
Pour éviter de chercher à chaque fois, je l'ai mis dans mon profil.
 
fxsaber:
Pour éviter d'avoir à fouiller à chaque fois, je l'ai mis sur mon profil.
Merci.
 

Alexey Kozitsyn:
Спасиб

Merci, je l'ai déjà fait moi-même.
Dossiers :
 

En faisant une correspondance, il y a des différences, mais pas significatives.

A mon avis, la fonction d'enregistrement des ticks des ordres dans l'historique ne fonctionne pas correctement (les transactions sont OK).

Je vais faire 300 lignes et poster le fichier de comparaison.

Ajouté

Vérifiez, j'ai peut-être fait une erreur.

Dossiers :
Book2.zip  671 kb
 
prostotrader:

A fonctionné avec précision à 10h00 et à 14h05.

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

Ajouté

Je pense que je vais supprimer le BR pour que tout se passe automatiquement pendant 3 mois :)

Et une idée sur la manière de "bousiller" la compensation du soir, étant donné que l'enchère peut commencer à 19-00, puis à 19-05 ?
 

C'est donc ça.

Et la session du matin et après les deux effacements.

Dossiers :
 

Un travail minutieux a été effectué. Puisque la synchronisation temporelle utilisant la méthode suggérée est basée sur la prise en compte de la valeur ping, j'ai une question.

En demandant l'identifiant TERMINAL_PING_LAST, le terminal donne (selon la documentation MQL) la"Dernière valeur connue du ping vers le serveur de commerce en microsecondes".

Qu'est-ce que c'est, sa valeur est-elle stable et quelle est sa taille ? Pendant de nombreuses années, j'ai vu cette caractéristique dans les fichiers journaux, mais maintenant je peux voir les pings dans la liste des serveurs directement dans le terminal. Et ils sont très stables. Qu'est-ce que c'est ?

Seulement deux variantes que je peux imaginer.

1) Il s'agit d'une caractéristique du réseau utilisée par les routeurs pour analyser les chemins des paquets IP, qui est obtenue à l'aide du protocole de réseau ICMP et qui ne tient en fait compte que de la propagation du signal matériel. Dans le cas particulier des mesures de ping entre un ordinateur client et un serveur, cela signifie des allers-retours entre leurs NIC. Les paquets avec ce protocole n'atteignent généralement pas les applications, il n'est pas nécessaire https://ru.wikipedia.org/wiki/ICMP.

2. il double le temps de parcours du signal entre l'application sur le serveur et l'application sur le client.

Quelqu'un a une idée ?

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

Un travail minutieux a été effectué. Puisque la synchronisation temporelle utilisant la méthode suggérée est basée sur la prise en compte de la valeur ping, j'ai une question.

En demandant l'identifiant TERMINAL_PING_LAST, le terminal donne (selon la documentation MQL) la"Dernière valeur connue du ping vers le serveur de commerce en microsecondes".

Qu'est-ce que c'est, sa valeur est-elle stable et quelle est sa taille ? Pendant de nombreuses années, j'ai vu cette caractéristique dans les fichiers journaux, mais maintenant je peux voir les pings dans la liste des serveurs directement dans le terminal. Et ils sont très stables. Qu'est-ce que c'est ?

Seulement deux variantes que je peux imaginer.

1) Il s'agit d'une caractéristique du réseau utilisée par les routeurs pour analyser les chemins des paquets IP, qui est obtenue à l'aide du protocole de réseau ICMP et qui ne tient en fait compte que de la propagation du signal matériel. Dans le cas particulier des mesures de ping entre un ordinateur client et un serveur, cela signifie des allers-retours entre leurs NIC. Les paquets avec ce protocole n'atteignent généralement pas les applications, il n'est pas nécessaire https://ru.wikipedia.org/wiki/ICMP.

2. il double le temps de parcours du signal entre l'application sur le serveur et l'application sur le client.

Quelqu'un a une idée ?

Seuls les développeurs peuvent répondre à cette question avec certitude.

Je me basais sur le second.

>Cela représente le double du temps de parcours du signal entre l'application sur le serveur et l'application sur le client.

 
prostotrader:

C'est donc ça.

Et la session du matin et après les deux effacements.

Tout fonctionne "comme sur des roulettes" :)

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

Ajouté

J'attends juste que les enchères commencent à 19-05.

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

Tout fonctionne "comme sur des roulettes" :)

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

Ajouté

J'attends juste que les enchères commencent à 19-05.

Ajouté

Pour Sergey

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

Juste pour le plaisir, allumez-le si vous le voulez bien, voyons avec quelle précision l'heure est synchronisée :

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