Sincronizar a hora local do Windows com o servidor MT5 - página 14

 
Alexey Kozitsyn:
Favor enviar aqui as instruções sobre como abrir uma conta real na BCS.
Para evitar buscas sempre, coloquei-o em meu perfil.
 
fxsaber:
Para evitar ter que cavar sempre, coloquei isso no meu perfil.
Obrigado.
 

Alexey Kozitsyn:
Спасиб

Obrigado, eu mesmo já o fiz.
Arquivos anexados:
 

Estou fazendo uma partida, há diferenças, mas não significativas.

Na minha opinião, a função de registrar os tiques de ordem na história não está funcionando corretamente (os negócios estão OK).

Vou fazer 300 linhas e postar o arquivo de comparação.

Adicionado

Verifique, eu poderia ter cometido um erro

Arquivos anexados:
Book2.zip  671 kb
 
prostotrader:

Funcionou com precisão às 10:00 e 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

Adicionado

Acho que vou remover o BR para que tudo aconteça automaticamente durante 3 meses :)

E alguma idéia de como "parafusar" a limpeza noturna, já que o leilão pode começar às 19-00, depois às 19-05?
 

Então é isso.

E a sessão da manhã e depois de ambas as sessões são liberadas.

Arquivos anexados:
 

Muito trabalho cuidadoso tem sido feito. Uma vez que a sincronização de tempo utilizando o método sugerido se baseia em levar em conta o valor do ping, tenho uma pergunta a fazer.

Mediante solicitação com o identificador TERMINAL_PING_LAST, o terminal dá (de acordo com a documentação MQL) o"último valor conhecido do ping para o servidor comercial em microssegundos" .

O que é, seu valor é estável e qual é o seu tamanho? Durante muitos anos eu vi esta característica em arquivos de log, mas agora eu posso ver pings na lista de servidores diretamente no terminal. E eles são muito estáveis. O que é isso?

Apenas duas variantes que eu posso imaginar.

1) É uma característica da rede que os roteadores usam para analisar os caminhos de pacotes IP, que é obtida usando o protocolo de rede ICMP e na verdade só leva em conta a propagação do sinal de hardware. No caso particular das medidas de ping entre um computador cliente e um servidor, isso significa ir e vir entre seus DNIs. Os pacotes com este protocolo geralmente não chegam às aplicações, não é necessário https://ru.wikipedia.org/wiki/ICMP.

2. duplica o tempo de viagem do sinal do aplicativo no servidor para o aplicativo no cliente.

Alguém tem uma pista?

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

Muito trabalho cuidadoso tem sido feito. Uma vez que a sincronização de tempo usando o método sugerido se baseia em levar em conta o valor do ping, tenho uma pergunta.

Ao solicitar o identificador TERMINAL_PING_LAST, o terminal dá (de acordo com a documentação da MQL) o"último valor conhecido do ping para o servidor comercial em microssegundos" .

O que é, seu valor é estável e qual é o seu tamanho? Durante muitos anos eu vi esta característica em arquivos de log, mas agora eu posso ver pings na lista de servidores diretamente no terminal. E eles são muito estáveis. O que é isso?

Apenas duas variantes que eu posso imaginar.

1) É uma característica da rede que os roteadores usam para analisar os caminhos de pacotes IP, que é obtida usando o protocolo de rede ICMP e na verdade só leva em conta a propagação do sinal de hardware. No caso particular das medidas de ping entre um computador cliente e um servidor, isso significa ir e vir entre seus DNIs. Os pacotes com este protocolo geralmente não chegam às aplicações, não é necessário https://ru.wikipedia.org/wiki/ICMP.

2. duplica o tempo de viagem do sinal do aplicativo no servidor para o aplicativo no cliente.

Alguém tem uma pista?

Somente os desenvolvedores podem responder com certeza a esta pergunta.

Eu estava me baseando no segundo.

>Este é o dobro do tempo de viagem do sinal do aplicativo no servidor para o aplicativo no cliente.

 
prostotrader:

Então é isso.

E a sessão da manhã e depois de ambas as sessões são liberadas.

Tudo funciona "como um relógio" :)

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

Adicionado

Apenas aguardando a licitação para começar em 19-05

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

Tudo funciona "como um relógio" :)

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

Adicionado

Apenas aguardando a licitação para começar em 19-05

Adicionado

Para Sergey

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

Só por diversão, ligue-o se não se importar, vamos ver se o tempo está sincronizado com precisão:

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