MT5 e velocidade em ação - página 66

 

Com relação ao código fonte apresentado

#include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279

void OnStart()
{
  for (int i = 0; i < 5; i++)
    _BV(Sleep(1), 1);
}

Se você quer velocidade, deve desistir deste monstro, porque você está se tornando mais lento.

Esta ferramenta de medição não é adequada porque introduz um enorme erro

Em meu roteiro, coloquei

#define  ITERATIONS 5

Aqui está o registro para 5 iterações.

2020.11.04 16:37:24.430 TestSleep (EURUSD,H1)   total 9673 microseconds (1.935 ms per iteration)

Menos de 2 milissegundos.

 
fxsaber:
Os desenvolvedores, por seu silêncio, reconheceram plenamente dois problemas.

Os desenvolvedores admitiram por seu silêncio que não há problemas.

 
Slava:

Aqui está o registro para 5 iterações

Menos de 2 milissegundos.

Seu roteiro.

2020.11.04 16:46:40.341 Test9 (EURCHF,M1)       total 67620 microseconds (13.524 ms per iteration)


Máquina.

2020.11.04 16:47:52.962 Terminal        Windows 10 build 19042, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 18 / 29 Gb disk, IE 11, Admin, GMT+2
 
Anton:

Os desenvolvedores admitiram por seu silêncio que não há problemas.

Bonito! É normal que os carrapatos cheguem com menos tempo do que na Market Review anterior?

 
fxsaber:

Bonito! É normal que os carrapatos cheguem com menos tempo do que na Market Review anterior?

Normal.

Respondi a esta pergunta há 5 dias, no mesmo fio:


SymbolInfoTick envia os dados recebidos do servidor do corretor. O que o servidor enviou é o que você recebe.

Se houver dúvidas sobre o tick stream transmitido por seu corretor, você deve entrar em contato com seu corretor.

 
Slava:

A fila de especialistas é um recurso que pode ser trancado. Quando um evento é escrito para a fila, o Expert Advisor espera (a menos, é claro, que o Expert Advisor esteja atualmente processando um evento)

Os eventos para o Expert Advisor vêm da fila de eventos do gráfico correspondente, que por sua vez vem do ciclo de processamento do símbolo correspondente. E este ciclo de processamento não apenas distribui eventos para seus próprios gráficos, mas também faz muitas outras coisas.

Já lhes disse que o Windows não é um sistema operacional em tempo real.

A tarefa é muito simples: como escrever um Expert Advisor que não abrande enquanto espera por uma fila? Você não pode ter um loop infinito porque Dormir é um freio. Assim, o loop assíncrono se desvia. Agora, não é a hora de pegar as esperas em forma de longos milissegundos.

 
fxsaber:

Seu roteiro.


E para 10.000 iterações?

 
Slava:

E para 10.000 iterações?

2020.11.04 17:09:30.483 total 155965249 microseconds (15.597 ms per iteration)

Convido outros a compartilhar o resultado da execução deste roteiro em sua máquina.

 
Anton:

Tudo bem.

Respondi a esta pergunta há 5 dias, no mesmo fio:

SymbolInfoTick envia os dados recebidos do servidor do corretor. O que o servidor enviou é o que você recebe.

Se houver dúvidas sobre o tick stream transmitido por seu corretor, então você deve entrar em contato com seu corretor.

É por isso que estou fazendo a pergunta aos proprietários da MQ-Demo.

 
fxsaber:

O problema é muito simples: como escrever uma EA que não abrande quando se espera por uma fila? Um loop infinito é impossível, porque Dormir é um freio. Assim, o loop assíncrono se desvia. Agora, não é a hora de pegar as esperas em forma de longos milissegundos.

Não se engane a si mesmo e aos que o rodeiam.

Todas as suas declarações aqui descrevem uma tarefa bem diferente: como escrever um Expert Advisor que não se sentirá lento em um equipamento de 9 anos de idade com carga pesada.

Razão: