Um minuto e meio de diferença entre a hora local e a hora do novo tick. O que fazer.

 

Escrevi um pequeno Expert Advisor, que mostra a diferença máxima entre o tempo do computador local e o novo tick time_msc (acabado de receber).

Grosso modo, ele mede TimeLocal() apenas em milissegundos menos o tempo do último tick Tick.teme_msc . O tick é recebido usando o SymbolInfoTick.

Não gozou muito com isso. 24 caracteres na visão geral do mercado. OnTimer() com período de chamada de 1 milissegundo. Estou pesquisando todos os símbolos com SymbolInfoTick. Se um tique é novo, eu faço medições.

Testei o Expert Advisor à noite. Aqui estão os resultados:

Novos carrapatos capturados 46800

Tempo mínimo entre o tempo do computador local e o tempo do tick -7048 milissegundos (com sinal de menos)

Tempo médio entre o tempo do computador local e o tempo do tick -6819 milissegundos (com menos)

Tempo máximo entre a hora do computador local e a hora do tick -97082 milissegundos ( com mais )


Como lidar com isso ?

Arquivos anexados:
 
pivomoe:

Escrevi um pequeno Expert Advisor que mostra a diferença máxima entre o tempo do computador local e o tempo do novo tick time_msc (acabado de receber).

Grosso modo, ele mede TimeLocal() apenas em milissegundos menos o tempo do último tick Tick.teme_msc . O tick é recebido usando o SymbolInfoTick.

Não gozou muito com isso. 24 caracteres na visão geral do mercado. OnTimer() com período de chamada de 1 milissegundo. Estou pesquisando todos os símbolos com SymbolInfoTick. Se um tique é novo, eu faço medições.

Testei o Expert Advisor à noite. Aqui estão os resultados:

Novos carrapatos capturados 46800

Tempo mínimo entre o tempo do computador local e o tempo do tick -7048 milissegundos (com sinal de menos)

Tempo médio entre o tempo do computador local e o tempo do tick -6819 milissegundos ( com menos )

Tempo máximo entre a hora do computador local e a hora do tick -97082 milissegundos ( com mais )


Como lidar com isso ?

Deu uma olhada em seu código...

Você não está fazendo nada certo.

Você precisa adicionar os instrumentos mais líquidos ao Market Watch.

Em seguida, acrescentem seus potes de dinheiro.

E, quando OnBookEvent() aciona, copie 1 tick (o último) haverá tempo e imediatamente pegue o tempo local e compare.

E por que você precisa comparar a hora local com a hora dos carrapatos?

Se você precisa saber se é possível negociar, então aqui está uma função

//+------------------------------------------------------------------+
//| Expert Check Market Time function                                |
//+------------------------------------------------------------------+
bool CheckMarketTime()
{
  MqlDateTime cur_time, sv_time;
  cur_time.year = 0;
  TimeTradeServer(cur_time); //Возвращает расчетное текущее время торгового сервера.
  if(cur_time.year > 0)
  {
    sv_time.year = 0;
    TimeCurrent(sv_time); //Возвращает последнее известное время сервера
    if(sv_time.year > 0)
    {
    //  if((cur_time.day_of_week == int(FirstDay)) ||
    //     (cur_time.day_of_week == int(SecondDay))) return(false); //Проверка на выходные
      if(cur_time.day_of_week == sv_time.day_of_week)
      {
        ulong tr_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec;
        if(((tr_time >= time_st_mon) && (tr_time < 50370)) ||  //10:00:01 - 13:59:30
           ((tr_time >= time_st_day) && (tr_time < 67470)) ||  //14:05:01 - 19:44:30 
           ((tr_time >= time_st_evn) && (tr_time < 85770)))    //19:05:01 - 23:49:30
        {
          return(true);
        }  
      }  
    } 
  }   
  return(false);
}
 

Sobre o tópico de relevância do tick, verifique este indicador com comentários.

Ping
Ping
  • www.mql5.com
Для торговли важным параметром является актуальность текущей цены. На него влияет множество факторов, самый популярный из которых - сетевой пинг между терминалом и торговым сервером. Но часто из виду упускается другой параметр: так называемый "внутренний пинг терминала" - дополнительный лаг котировок внутри самого терминала (платформы). Даже...
 
prostotrader:

Olhei para o seu código...

Você não está fazendo nada certo.

Você precisa adicionar os instrumentos mais líquidos ao Market Watch.

Em seguida, acrescente a profundidade de mercado desses instrumentos.

E, quando OnBookEvent() aciona, copie 1 tick (o último) haverá tempo e imediatamente pegue o tempo local e compare.

E em geral, por que você precisa comparar a hora local com a hora dos carrapatos?

Por que você precisa fazer tudo, através de uma pilha? Só para fazer o código parecer melhor ? Se eu tiver um símbolo na visão geral do mercado, isso não significa que há uma sincronização constante e eu posso acessar os últimos 4096 ticks para o símbolo diretamente do cache ( ou seja, instantaneamente ) ? Em qualquer caso, sua idéia precisa ser testada. A única coisa que não entendo, o que significa "copiar 1 carrapato (último)" para calcular o carrapato mudando o copo ?

E em geral, por que você precisa comparar a hora local com a hora do carrapato?

Tomar decisões comerciais com base nos preços de ontem não é uma boa idéia. Comprar a SBER a 100 ontem pode ser uma boa idéia do ponto de vista do algoritmo, mas hoje você tem que vendê-la a 80.

 
pivomoe:

Por que fazer tudo, através de um copo? Só para fazer o código parecer melhor ? Se eu tiver um símbolo na visão geral do mercado, isso não significa que há uma sincronização constante e eu posso acessar os últimos 4096 ticks no símbolo diretamente do cache ( ou seja, instantaneamente ) ? Em qualquer caso, sua idéia precisa ser testada. A única coisa que não entendo, o que significa "copiar 1 carrapato (último)" para calcular o carrapato mudando o copo ?

E em geral, por que você precisa comparar a hora local com a hora do tick?

Tomar decisões comerciais com base nos preços de ontem não é uma boa idéia. Ontem a SBER a 100 pode ser uma boa idéia do ponto de vista do algoritmo, mas hoje você deve vendê-lo a 80.

Por que você está fazendo uma pergunta se você mesmo sabe tudo.

Faça o que achar melhor.

 
prostotrader:

Por que você está fazendo a pergunta se você mesmo sabe tudo?

Faça o que achar melhor.

Peço com toda a seriedade. Ao programar em MQL, percebi que nem a ajuda nem as informações fornecidas pelo terminal devem ser confiáveis. Não é mais do que um pedaço de informação para reflexão. É possível que o tick dê informações mais cedo (mais estável) do que oSymbolInfoTick.

A propósito, aqui está o tique que veio com um atraso de um minuto e meio:

Nova MA Diferença máxima 97082 SBPR-3.19 Hora local 2019.03.15 21:05:31.842 Horário 2019.03.15 21:03:54.760

Não havia nada de criminoso na história do tick neste minuto. Dois carrapatos em um minuto.

 
pivomoe:

Peço com toda a seriedade. Quando eu estava programando na MQL, percebi que nem a ajuda nem as informações fornecidas pelo terminal deveriam ser confiáveis. Não é mais do que um pedaço de informação. É possível que o tick dê informações mais cedo (mais estável) do que oSymbolInfoTick.

A propósito, aqui está o tique que veio com um atraso de um minuto e meio:

Nova MA Diferença máxima 97082 SBPR-3.19 Hora local 2019.03.15 21:05:31.842 Horário 2019.03.15 21:03:54.760

Não havia nada de criminoso na história do tick neste minuto. Dois carrapatos em um minuto.

Você, está perdendo completamente a razão!

Não se preocupe com seu horário local.

Somente o tempo do servidor TRADING é importante!

sessões de negociação, durante este tempo você pode negociar.

O tempo de negociação não é determinado por sua hora local,

e o tempo do servidor comercial.

 
prostotrader:

Você está perdendo completamente a razão!

Você não se importa em nada com o seu horário local.

Somente o tempo do servidor TRADING importa!

sessões de negociação, durante este tempo você pode negociar.

O tempo de negociação não é determinado por sua hora local,

e o tempo do servidor comercial.

Eu devo ter explicado mal o ponto.fxsaber, me entendeu porque ele compreende a importância de obter novos carrapatos sem atrasos e deu um link para seu indicador, que faz a mesma coisa que meu código, mas em forma gráfica. Não tem relação com o tempo de troca.

Vou tentar explicar com os dedos.

Às 16:39.59.999 horas locais, o Expert Advisor recebe o primeiro tick, para cada símbolo da visão geral do mercado e o armazena.

Às 16:40.00.000, o Consultor Especialista pesquisa novamente o último tique para cada símbolo. Para alguns deles recebemos carrapatos novos.

A maioria dos novos carrapatos vem com um tempo ( time_msc ) de cerca de 16:39.59.000. Mas um veio com o tempo de 16:38.30.335.

Acontece que não houve nenhum tique às 16:39.59.999 (local), mas de repente apareceu um milissegundo mais tarde e até às 16:38:30, embora geralmente seja diferente apenas por um segundo.

Depois de tais carrapatos não ocorre uma boa idéia. Suponha que solicitemos o último tique do símbolo ilíquido no comércio real. Obtemos o tempo de tique (time_msc)

que difere do local por dois minutos. Imediatamente, há suposições de que alguém já sabe de um tique que ocorreu há 90, 60 ou 30 segundos, e nossa EA não sabe disso, e pode ser punida por um acerto em uma ordem limite, por exemplo.

Este problema deve ser resolvido.

 
pivomoe:

Ofxsaber me entendeu, porque ele entendeu a importância de obter novos carrapatos sem atrasos e deu um link para seu indicador, que faz algo semelhante ao meu código, mas em forma gráfica. Não tem relação com o tempo de troca.

Vou tentar explicar isso com meus dedos.

Às 16:39.59.999 horas locais, o Expert Advisor recebe o primeiro tick, para cada símbolo da visão geral do mercado e o armazena.

Às 16:40.00.000, o Consultor Especialista pesquisa novamente o último tique para cada símbolo. Para alguns deles recebemos carrapatos novos.

A maioria dos novos carrapatos tem um tempo ( time_msc ) de cerca de 16:39.59.000. Mas um veio com o tempo de 16:38.30.335.

Acontece que não houve nenhum tique às 16:39.59.999 (local), mas de repente apareceu um milissegundo mais tarde e até às 16:38:30, embora geralmente seja diferente apenas por um segundo.

Depois de tais carrapatos não ocorre uma boa idéia. Suponha que solicitemos o último tique do símbolo ilíquido no comércio real. Obtemos o tempo de tique (time_msc)

que difere do local por dois minutos. Imediatamente, há suposições de que alguém já sabe de um tique que ocorreu há 90, 60 ou 30 segundos, e nossa EA não sabe disso, e pode ser punida por um acerto em uma ordem limite, por exemplo.

Este problema deve ser resolvido.

Você não tem que "lutar" nada. Você deve entender como os carrapatos são recebidos no terminal e corretamente

processá-los corretamente!

https://www.mql5.com/ru/code/16210

Лента всех сделок
Лента всех сделок
  • www.mql5.com
Хитрый усреднитель Hello Smart Эксперт усредняет убыточные позиции по определенному алгоритму. ColorJSatl_Digit Сглаженный быстрый цифровой фильтр JSatl с цветовой индикацией направления движения, с отображением последнего значения в виде ценовой метки и с возможностью округлять уровни...
 
prostotrader:

Não há necessidade de "lutar" nada, mas de entender como os carrapatos entram no terminal e manuseá-los corretamente!

para manuseá-los corretamente!

Você pode finalmente compartilhar este conhecimento? Mesmo que através de seu método, você possa obter um novo evento de carrapato mais cedo, acontece que você me dá um peixe e não uma cana de pesca, ou seja, não explica por que este é o caso.

Onde você consegue a confiança de que seu método é mais rápido do que o meu? Perdi alguma coisa na documentação? Talvez você tenha determinado experimentalmente que o terminal dá novos carrapatos com mais facilidade assinando um copo?

Vou implementar a mudança neste EA da minha maneira de pegar novos carrapatos para o seu.

 
pivomoe:

Você pode finalmente compartilhar este conhecimento? Mesmo que através de seu método, você possa obter um novo evento de carrapato mais cedo, acontece que você está me dando um peixe e não uma cana de pesca, ou seja, você não explica porque este é o caso.

Onde você consegue a confiança de que seu método é mais rápido do que o meu? Perdi alguma coisa na documentação? Talvez você tenha determinado experimentalmente que o terminal dá novos carrapatos com mais facilidade assinando um copo?

Vou implementar a troca neste EA da minha maneira de pegar novos carrapatos para o seu.

Há o código fonte com comentários.

Você se sente preguiçoso para olhar através dela? Ou algo não está claro?

Razão: