Um pouco surpreendido :) Pensei em partilhar e fazer uma pergunta NÃO retórica. - página 6

 
hrenfx:

Digamos que tem dois EAs idênticos em resultados no Testador, um em indicadores e o outro tudo-em-um. A segunda trabalha uma ordem de grandeza mais rápida.

Não haverá uma ordem de grandeza de aumento de velocidade, apenas de 10-30%. Verificado. O grande ganho de velocidade torna-nos incómodos para escrever dois Expert Advisors, enquanto que o "tudo em um" é praticamente inútil para depuração e apenas para combater com erros.

 
Integer:

Tem obviamente alguma antipatia pessoal para comigo. Caga em mim. O que sou eu, o centro da terra, que estás a exagerar?

Porque não lhe envio uma fotografia minha para que se possa limpar com ela? Estou-me nas tintas para as vossas explosões nervosas. Não desperdice o seu tempo e energia com eles.

Exorto-vos a serem construtivos, são adultos.

 
Integer:

Não haverá uma ordem de grandeza de aumento da velocidade, apenas 10-30%. Comprovado. Devido a tão grande ganho de velocidade, vale a pena preocupar-se em escrever dois Conselheiros Especialistas, enquanto o tudo-em-um é praticamente inviável para a depuração, apenas para combater com erros.

O ganho de velocidade é altamente dependente do caso. Ninguém cancelou a optimização algorítmica. Se for algum tipo de EMA primitivo, o ganho é mínimo. Mas se for algo mais complexo, poderá ser uma ordem de grandeza. Depende da capacidade de optimização algorítmica de cada um. Deve saber onde podem ocorrer recálculos e assim por diante.

Ajuda muito a escrever o seu próprio optimizador neste sentido. Por exemplo, sem optimização algorítmica, a variante tudo-em-um era 10 vezes mais rápida (devido ao compilador da linguagem de programação) no meu testador do que a mesma variante tudo-em-um no testador MT4. Após a optimização algorítmica, a vantagem aumentou por outra ordem de grandeza.

Neste caso, não me preocuparia com isso por 10-30%.

 

hrenfx:

1. O ganho de velocidade varia muito de caso para caso. A optimização algorítmica nunca foi cancelada. Se for algum tipo de EMA primitivo, o ganho será mínimo. Mas se for algo mais complexo, poderá ser uma ordem de grandeza. Depende da capacidade de optimização algorítmica de cada um. Saber onde pode haver cálculos repetidos, etc. 2.

2. escrever o seu próprio optimizador ajuda muito neste sentido. Por exemplo, sem a optimização algorítmica da variante all-in-one era cerca de 10 vezes mais rápido no meu testador do que no testador MT4. Após a optimização algorítmica, a vantagem aumentou por outra ordem de grandeza.

Neste caso, não me daria ao trabalho de 10-30%.

1) Depende da habilidade de cada um em escrever indicadores.

2. Se comparar com precisão o desempenho do testador MT e da sua própria calculadora para uma estratégia, ficará surpreendido com a optimização do algoritmo do testador (incluindo o fornecido pelo Académico).

 
Integer:

2. Se for capaz de comparar correctamente o desempenho do testador MT e da sua própria calculadora para a mesma estratégia, ficará muito surpreendido com a optimização do algoritmo do testador.

O que quer dizer com correcto? A minha calculadora é >100 vezes mais rápida do que o testador MT4, e tem um erro <1%. Justifica-se ou não?

O MT4-tester tem algoritmos normais, mas foi concebido para universalidade e tendo em conta um grande número de factores que fazem com que a minha calculadora tenha um erro insignificante (para estimar resultados).

Um exemplo simples: se não considero profundamente a história da encomenda na minha EA, porque é que preciso dela no optimizador? Porque é que preciso da emulação de uma barra zero no optimizador? Não precisamos de tudo isso, por isso tudo se resume a uma estupidez para o loop. Resulta em múltiplas velocidades ao custo de <1% de erro.

Estamos no fórum MQL5, mas não estou a discutir o desempenho do testador MT5 nesta discussão. Gostaria de ver uma comparação oficial dos dois provadores.

Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
  • www.mql5.com
Эффективность многопотокового тестера стратегий MetaTrader 5 - MQL4 форум
 
hrenfx:

1. O que quer dizer com correcto? A minha calculadora é >100 vezes mais rápida do que o testador MT4, com um erro de <1%. Isto justifica-se ou não?

O MT4-tester tem algoritmos normais, mas foi concebido para ser universal e ter em conta um grande número de factores, devido aos quais a minha calculadora dá um erro insignificante (para estimar resultados).

2. Um exemplo simples, se eu não olhar profundamente para a história da encomenda na minha EA, porque é que preciso dela no optimizador? Porque é que preciso de emulação de barra zero no optimizador? Não precisamos de tudo isso, por isso tudo se resume a uma estupidez para o loop. Resulta em múltiplas velocidades ao custo de <1% de erro.

Estamos no fórum MQL5, mas não estou a discutir o desempenho do testador MT5 nesta discussão. Gostaria de ver uma comparação oficial de dois provadores.

Quero ver uma comparação do desempenho dos dois testadores para que possamos compreender que número mínimo de manipulações no testador é utilizado para dividir todos os prazos em barras, para sincronizar diferentes símbolos e para executar ordens.

2. Espero que isto não esteja no contexto de "Posso escrever um testador de estratégia melhor do que o MQ".

 
Integer:

1. para que se possa compreender o número mínimo de manipulações no testador para assegurar a divisão em barras de todos os períodos de tempo, sincronização de diferentes símbolos e execução de ordens.

Tenho a certeza que os algoritmos no testador são excelentes. Os programadores não estão a perder o seu tempo a optimizá-lo ao máximo - 100%. Mas eles tornaram tudo universal - para todas as variantes. Todas as variantes não são necessárias quando consideramos um caso particular de MTS. Esta é a razão pela qual obtêm ganhos por ordem de grandeza nos seus cálculos sobre o tipo de DUPLEX para o tipo de DUPLEX.

2. Espero que isto não esteja no contexto de "Posso escrever um testador de estratégia melhor do que o MQ".

Tens uma noção preconcebida de mim como se eu estivesse a cagar em toda a parte. Nesta linha, estou completamente do lado dos criadores. Compreendo perfeitamente os argumentos do iniciador do tópico sobre a diferença fundamental entre as tarefas de um testador e optimizador, mas não partilho as suas reivindicações contra os programadores. A minha opinião - se for necessário, pode sempre criar o seu próprio instrumento de teste (não super versátil, mas rápido) para si próprio.
 
Renat:

Um indicador parsimonioso correctamente escrito é melhor para ser utilizado internamente, em vez de ser colocado no código do Expert Advisor.

Transferi-lo para o código do Expert Advisor significa geralmente que será implementado um método extremamente personalizado de optimização de cálculos, quando a quantidade principal de cálculos é descartada e restam 300 barras de história (por exemplo). Na maioria dos casos, introduzirá erros, mas o autor normalmente não lhes presta atenção. Inesperadamente, em trabalho real pode acontecer que o indicador de base e a sua cópia reduzida no Expert Advisor não coincidam.

Eu concordaria com isto, mas existe um problema, que em alguns casos coloca uma cruz ousada.

É a ausência de uma realização normal do IndicatorCounted() - em qualquer momento em que é reposto a zero, sabe muito bem disso.

Segui outro caminho - fiz o meu próprio fornecedor de dados (algoritmo bastante optimizado com endereçamento circular de dados), fiz a minha função IndicatorCounted().

Esta abordagem justificou-se plenamente em condições reais.

Além disso, os indicadores são transferidos praticamente 1:1, e não há problemas com a sua depuração, etc.

Implementação de indicadores como classes sobre o exemplo de Zigzag e ATR

Há mesmo alguma comparação de algoritmos e abordagem no testador:

P.S. Quanto ao erro, este depende do algoritmo do indicador. Na maioria dos casos é suficiente ignorar as primeiras barras, e o resto coincidirá em 1:1.

Escrevi especificamente cheques construídos para este fim.


P.S.2 Para ZigZag esta é simplesmente uma forma indispensável de sair da situação.

Chamo-lhe recalcular apenas quando preciso, e pode devolver o resultado alargado, que apenas o último ponto foi redesenhado.

Permite a optimização de outros algoritmos de um Expert Advisor.


P.S. 3 Em relação ao MT5, quero dizer que é uma grande plataforma. Mas há alguns bugs graves:

- bugs críticos (claro que serão corrigidos a tempo)

- abordagem questionável ao TERMINALMaxBar (escrevi sobre isso que a situação é um beco sem saída)

- falta da função IndicatorCounted() adequada (mas não preciso dela agora de todo)


P.S.4 Não posso dizer nada sobre o testador, porque não jogo o jogo da "optimização".

 
AlexSTAL:

Eu concordaria com isso, mas há um, mas que em alguns casos põe um fim gordo a isso.

...

Onde está o sentido se, de acordo com os seus próprios testes, a classe incorporada no Expert Advisor é mais lenta do que a chamada via iCustom()?

Outra pergunta, está pronto para reescrever todos os indicadores neste estilo?

 
Integer:

Onde está o sentido se, de acordo com os seus testes, a classe incorporada no Expert Advisor é mais lenta do que chamar através do iCustom()?

Outra pergunta, está pronto para reescrever todos os indicadores neste estilo?

A questão não está no testador, outra vez! Não no testador, mas em condições reais, onde a história é descarregada e ocorrem falhas de ligação

Sobre todos os indicadores - qual é o problema?