Testador apoiando os scripts e consultores MG4 - página 11

 
Renat:

CopyXXX tem a mesma velocidade das funções iClose/iOpen/iXXXXXX. Somente iXXX retorna um elemento de cada vez e CopyXXX retorna muitos, sendo assim mais eficiente e rápido.

Provavelmente, você não considera que o MT4 copia à força _todos_ os históricos do gráfico local para o ambiente de mercado local (cache) da EA antes de cada manipulador de carrapatos começar. E isto é muito caro, embora tenhamos um método para a atualização econômica destas informações. A função especial RefreshRates na MQL4 provoca a atualização forçada das caches e do histórico do gráfico local.

Chamar o CopyXXX é muito mais eficiente, com um mecanismo muito preciso e preciso para o cache de dados previamente solicitados. Por exemplo, você não precisa solicitar novamente o histórico profundo em cada carrapato, mas armazená-lo/escrevê-lo localmente e acessá-lo o mais rápido possível.

Se compararmos os antigos métodos de acesso "direto" (não de fato acesso direto) de acesso aberto/alto/baixo/fechado e trabalhar com a matriz local dupla local[xxxx], este último é muitas vezes mais rápido. Portanto, é melhor copiar para você mesmo localmente e depois ter acesso local rápido aos dados repetidamente consultados.

O que significa "manipulador de carrapatos" - funções personalizadas como OnTick? Por que você quer copiar o histórico inteiro e não apenas os dados que aparecem?
 
Vinin:
Isto não é um indicador.
Eu dei um link para um indicador OOPaqui.
 
C-4:
O que significa "manipulador de carrapatos" - funções personalizadas como OnTick? Por que é necessário copiar todo o histórico e não apenas os dados que apareceram?

Sim, OnTick/OnStart.

Tomo isso como uma revelação para muitos de que o acesso direto ao gráfico local na MT4 não é realmente direto. Há o dobro do consumo de memória e perdas de sincronização.

Felizmente, a atualização do cache é econômica, mas ainda causa custos ao sistema. No MT5 nos livramos completamente do cache local e a sobrecarga do sistema antes da chamada do OnTick/OnStart é menor.

 
Renat:

Sim, OnTick/OnStart.

Tomo como uma revelação para muitos que o acesso direto ao gráfico local em MT4 não é realmente direto. Há o dobro do consumo de memória e perdas de sincronização.

Felizmente, temos uma atualização do cache, mas ela ainda dá custos ao sistema. No MT5, nos livramos completamente do cache local e a sobrecarga do sistema antes da chamada OnTick/OnStart é menor.

Há um ano, estávamos discutindo o desempenho dos testadores MT4/MT5. A EA padrão "MovingAverage" em MT4 realizou uma única execução em um minuto sob condições de teste semelhantes, enquanto em MT5 o fez em 2:34. Por que a diferença na escala de tempo? A primeira coisa que vem à mente é a "modularidade" do MT5 e o grande volume do ambiente comercial que o MT5 tem que puxar durante a corrida.
 
C-4:
Há um ano, discutimos o desempenho dos testadores do MT4/MT5. A EA padrão "MovingAverage" no MT4 realizou uma única corrida em um minuto sob condições de teste semelhantes, enquanto que no MT5 levou 2:34. Por que a diferença na escala de tempo? A primeira coisa que vem à mente é a "modularidade" do MT5 e o grande volume do ambiente comercial que o MT5 tem que puxar durante a corrida.

Modularidade, processo externo e melhor modelagem do ambiente, sob medida para execução em várias moedas.