MT4-Tester VS MT5-Tester - página 6

 
Alain Verleyen:

Mas sua versão original com build 1596 é muito mais lenta, portanto sua comparação original com o MT4 deve ser atualizada.

Você pode estar usando uma versão antiga da biblioteca. Você sempre pode encontrar a última versão aqui.


Converteu seu código para MT4 através do MT5Bridge. MT4build1072

EURUSD,M1: 1865415 tick events (7292 bars, 1865515 bar states) processed in 0:00:07.645 (total time 0:00:08.362)


Código original

EURUSD,M1: 1865415 tick events (7292 bars, 1865515 bar states) processed in 0:00:03.744 (total time 0:00:04.493)


Os resultados após a conversão são idênticos! A velocidade caiu pela metade.

 
Yuriy Zaytsev:

faz mais sentido escrever um algoritmo ideal!

Como?
 
-Aleks-:

Como?
Obtenha os dados necessários uma vez por ciclo. Cicle somente quando necessário, não em cada carrapato.
 
-Aleks-:

Como fazer isso?
Obtenha a história no início, uma vez e lembre-se dela.
Em seguida, monitore apenas as ordens que entram para a história.
 
Artyom Trishkin:
Uma vez por ciclo, obtenha os dados necessários. Cicle somente quando necessário, não em cada carrapato.

Minha EA só trabalha com preços de abertura. Quanto maior a história, mais lenta ela funciona - vezes mais lenta.

 
Yuriy Zaytsev:
Obtenha a história quando você começar, uma vez e lembre-se dela.
Em seguida, monitore apenas as ordens que entram para a história.

O testador não tem histórico no início...
 
-Aleks-:

Quando você começa, o testador não tem histórico.

Se estamos falando apenas do testador, é claro que não há um.

Em qualquer caso, você não deve percorrer todo o histórico em cada carrapato ou mesmo em cada barra.

Se o teste for realizado em carrapatos, então é suficiente selecionar apenas um pedido inserido na história.

-Aleks-:

Meu consultor especializado trabalha somente com preços de abertura. Quanto maior a história, mais lenta ela funciona.


Se o teste for em barras, várias ordens podem ter entrado no histórico, o que significa que somente estas ordens precisam ser rastreadas.

 
-Aleks-:

Minha EA só trabalha com preços de abertura. Quanto maior a história, mais lenta ela funciona - vezes mais lenta.

Na lista histórica, quanto mais posições fechadas, mais longo é o ciclo. Limitar o ciclo a uma profundidade suficientemente pequena da história.
 
Artyom Trishkin:
Quanto mais posições fechadas na lista histórica, mais longo é o ciclo. Limitar o ciclo a uma profundidade suficientemente pequena da história.


Tenho uma suspeita de que o testador começa a desacelerar não a partir das ordens em si, mas a partir de sua modificação - este processo acontece em todos os bares.


Yuriy Zaytsev:

Se estamos falando apenas do testador, é claro que ele não existe.

Em qualquer caso, você não deve percorrer toda a história em cada carrapato, ou mesmo em cada barra.

Se o teste for executado com carrapatos - então é suficiente selecionar apenas um pedido inserido na história.


Se o teste for em barras - várias ordens podem ter entrado no histórico, o que significa que somente estas ordens devem ser rastreadas.


Raramente passo pela história - a desaceleração se deve ao acúmulo da história como tal - como eu a vejo.

Se você pudesse obter informações sobre o número do pedido até sua data (o primeiro número naquela data), então o grande excesso poderia ser evitado - passe através dos pedidos pelo número que se enquadra no intervalo.

 
-Aleks-:


Tenho uma suspeita de que o testador começa a desacelerar não por causa das ordens em si, mas por causa de sua modificação - este processo ocorre em cada bar.



Raramente passo pela história - a desaceleração se deve ao acúmulo da história, como tal - aos meus sentidos.

Se fosse possível obter informações sobre o número do pedido até sua data (o primeiro número nesta data), então o grande excesso poderia ser evitado - para procurar pedidos pelo número que se enquadra no intervalo.

bool  HistorySelect(datetime  from_date, // с даты 
                    datetime  to_date);  // по дату


Razão: