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

 
hrenfx:

Estamos a falar de um optimista, não de muitos testes únicos. O conceito de um optimista é bastante diferente. São obtidos ganhos de velocidade significativos à custa de pequenos erros nos resultados. O optimizador não precisa de modelos baseados em carraças. No máximo, baseiam-se nos preços de abertura. Um optimizador não é um testador, é outra coisa completamente diferente. A sua abordagem é diferente, e bastante lógica também.

Ao fazer um testador não fiável (e não há maneira de a margem de erro ser de 1%), o revelador obterá uma mancha para toda a vida. E a conversa sobre "100 vezes mais rápido" parecerá pouco impressionante em comparação com "como se tem visto que um optimizador tem o direito de carregar algo"?

Pelo contrário, estamos a lutar pela máxima precisão e velocidade do optimizador devido a

  • algoritmos optimizados
  • desempenho e funcionalidade maximizados da linguagem MQL5
  • agentes multithreaded, remotos e baseados em nuvens
  • Histórico detalhado do M1 com suporte de propagação
  • utilização de versões de 64 bits
A paralelização da optimização das estratégias levou imediatamente a uma aceleração linear no número de núcleos de cálculo e a MQL5 tornou-se um enorme salto em frente em comparação com a MQL4.
 
Renat:

Ao fazer um testador não fiável (e não haverá erro de 1%), o revelador obterá uma mancha para toda a vida.

Sinto-me como se estivéssemos a falar línguas diferentes. Não estou a censurá-lo por nada. Além disso, eu disse que os criadores tomaram o único caminho certo.

Apenas não critique todos os outros desenvolvimentos que não lhe dizem respeito. O meu Expert Advisor é 100 vezes mais rápido do que o MT4-tester e o seu erro é <1% ON MY EA ONLY. Não preciso dele para outros Conselheiros Especialistas.

É que eu tinha de o fazer, e fi-lo por mim mesmo, e não estou a impor este caminho a ninguém. Só estou a dizer que, se necessário, é sempre possível escrever uma calculadora não UNIVERSAL burra, mas muito rápida. E depois disso os seus resultados devem ser polidos num testador MT4-MT5 bem concebido, que nem sequer é burro, mas sim um verdadeiro simulador de comércio.

É preciso ser um idiota para criticar os programadores de que o optimizador não é tão rápido como a calculadora. E teria de ser muito teimoso para afirmar que uma calculadora especialmente escrita para um caso particular não é mais rápida do que um testador universal neste caso particular.

Mais uma vez, os promotores são alimentados pelos seus clientes - as empresas de corretagem, representadas por um exército de comerciantes. A MTS fornece alimentos para os seus clientes - os mercados. Todos estão a fazer o seu trabalho. Apenas não critiquem uns aos outros. Podem tratar-se uns aos outros com respeito e sem desrespeito.

O topikstarter quase começou por atacar os criadores. Várias vezes ele disse que não é permitido. Os promotores também começaram a exagerar no final, dizendo a sua própria coisa. Respeitemo-nos uns aos outros.

 

Em resumo, o que fiz por mim mesmo é que o testador/optimizador MT5 é um DEVE, não importa se não é aplicável a alguns casos especiais (tanto pessoais como aplicados), porque nada é perfeito. Tk.

Para mim pessoalmente, a discussão foi útil. Pelo menos tornou-se claro para mim que, do ponto de vista dos criadores, a solução que eles implementaram é a melhor. O facto de alguém poder precisar de fazer milhares de milhões de corridas é outra questão. Pode fazê-lo você mesmo. Isto é tudo. Não podemos alterar o optimizador MT5 na direcção do aumento do desempenho (para valores exorbitantes), ele não é real. Fizeram muito, quase tudo o que era possível em termos de desempenho. Bom para eles.

Assim recebi uma resposta à minha pergunta não retórica.


TO hrenfx : Que resposta quer de Renat? Ele responde da forma que um promotor deve responder. IMHO, ele compreende tudo o que dizes. Mas ele não lhe responde pessoalmente - mas a quem quer que o leia. Por isso, deve sempre ler as respostas dos criadores.


Queixamo-nos da vida, enquanto eles fazem software não para nós pessoalmente, mas para os consumidores. Aparentemente, se lhes pagássemos milhões, eles iriam fazer software para nós pessoalmente.


Por isso, obrigado. Resposta recebida. :)

 
Academic:

PARA hrenfx : que resposta quer de Renat? Responde como um revelador deveria. IMHO, ele compreende muito bem tudo o que diz. Mas ele não lhe responde pessoalmente - mas a todos os que o lêem. É assim que se deve sempre ler as respostas dos criadores.

Todos se entendem uns aos outros. As leis dos negócios não foram revogadas...
 
À luz deste tópico de qualidade e velocidade de vários testadores universais, esqueci-me de mencionar o verdadeiro concorrente da MQL5 - Stock#.
StockSharp торговые роботы. Создание, обучение, разработка торговых роботов.
  • StockSharp
  • stocksharp.com
Библиотека для создания торговых роботов (HFT, Арбитраж и т.д.) Графическая платформа для торговых роботов. Создание и тестирование роботов
 
hrenfx:
Tendo em conta o tópico acima mencionado de qualidade e velocidade de vários testadores universais, esqueci-me de mencionar o verdadeiro concorrente da MQL5 - Stock#.

De facto, criar um Data-Crusher ou um parser, como lhe chamam, não é uma coisa simples.

Como já notou acima - é razoável passar de preços expressos sob a forma de números flutuantes para preços sob a forma de inteiros, porque primeiro reduz a capacidade de memória pelo menos 4 vezes, porque USHORT ocupa apenas dois bytes e tem uma gama de valores de 0 a 65535, o que mesmo para cinco dígitos em princípio é suficiente. Assim, 6553 pontos antigos são mais do que suficientes, enquanto que o DOUBLE leva 8 bytes.


Isto é, se tivermos 50 milhões de carrapatos, por exemplo, num símbolo (tendo em conta que também codificamos o tempo em USHORT, obtemos o tamanho do carrapato 3*2 = 6 bytes) Portanto, 50 * 6 é cerca de 300 megabytes. E num caso em que armazenamos o carrapato como DUPLO e mesmo que o tempo seja USHORT, obtemos 2 * 8 + 2 = 20 bytes, então 20 * 50 é pelo menos um gigabyte.

Bem, se os caracteres digamos 7, está numa versão de 7 * 300 = 2,1 gigabytes e a segunda de 7 giga. OP. Se tomarmos 4 gigas de RAM para máquinas de 64 bits como padrão, verifica-se que já fomos a 100% para trocar.

Bem, se não armazenar carraças durante a optimização e as gerar antes de uma corrida, certamente que será necessário menos espaço :)))). Mas não será mais um robô digital.


OK - vamos mais longe. Suponhamos que somos espertos e que gerámos carraças. E levam 2 gigs de memória, mas se formos inteligentes e diligentes, mas com falta de experiência e soubermos pouco sobre o alto desempenho - então criaremos o nosso próprio "fio condutor" para cada corrida desde o início da história até ao fim, e ele correrá. Mas só na última "estupidez" é que vamos perder cerca de quatro vezes em produtividade. Pense nisso! Quatro vezes mais - sou tudo sobre C, é claro. Por isso, se alguém mais do que um quiser ter um optimizador de super-desempenho (não um testador), estou pronto para criar um programa deste tipo. Mas vai levar tempo e é por isso que quero dinheiro. :)

Quero dizer, aqui acabei de contar uma SEVEN vezes a aceleração.


São cerca de 150 milhões de ticks em 12 segundos em DOUBLE em números inteiros, mesmo quatro vezes mais rápido, ou seja, 4 segundos, todos os ticks em três caracteres desde 1999 até aos dias de hoje.

Tenho um testador (para ambiente MT4 mesmo com suporte para compilador com MT4 e C++ nativo) com várias moedas. É fácil refazê-lo para o comércio em rede. Não vou compilar com o MT5, sou preguiçoso, isso é certo. A propósito, suporta a depuração MT4 :))) Directamente em estúdio. Posso anexar aí processamento distribuído em máquinas vizinhas, mas haverá ganho de desempenho, teremos de ver.

Com gráficos, com contadores de desempenho, com carregamento de qualquer história própria ... Portanto, não é uma linha pequena - 10.000 linhas por palpite. :)

 
Academic:

Se os moderadores não se importam, publique aqui imagens de exemplos do seu testador. Pegue num EA padrão, converta-o para "tudo em um" (sem indicadores) e execute-o em diferentes optimizadores, incluindo o seu próprio. Os resultados, pelo menos sob a forma de screenshots.

Não faz sentido mostrar-me a minha conta (já o disse acima), porque não se pode chamar nada melhor do que a palavra "tally". De acordo com a sua declaração, tem quase (não sei tudo) um optimizador completo. Os programadores estabeleceram o seu optimizador (mesmo dois deles - MT4 e MT5). Podemos discuti-lo e criticá-lo. Mostre-nos algo de sua autoria. Pode haver potenciais compradores.

Talvez, mesmo os programadores tenham dúvidas se o seu optimizador universal calcular realmente muito mais depressa e com um erro aceitável.

Há também uma questão de indicadores. Pessoalmente não preciso deles para escrever EAs, mas 99% dos Expert Advisors utilizam-nos, pelo que a arquitectura do seu testador-optimizador foi personalizada de acordo com as realidades da maioria. Assim, pode haver alguma perda de velocidade arquitectónica para "tudo em um" (poderia ser mais rápido), mas há uma grande vantagem para variantes com indicadores (do que poderia ser).

P.S. Os seus números são obviamente incorrectos: não pode ter história na INT ocupando 2.1Gb, e na DOUBLE ocupando 7Gb. A diferença deve ser sempre exactamente 2 (USHORT não é suficiente) vezes. A mudança para aritmética inteira com preços dá uma vantagem significativa quando toda a lógica de uma EA pode ser substituída por lógica inteira. Isto não acontece com muita frequência.

 
hrenfx:

Se os moderadores não se importam, publique aqui imagens de exemplos do seu testador. Pegue num EA padrão, converta-o para "tudo em um" (sem indicadores) e execute-o em diferentes optimizadores, incluindo o seu próprio. Os resultados, pelo menos sob a forma de screenshots.

Não faz sentido mostrar-me a minha conta (já o disse acima), porque não se pode chamar nada melhor do que a palavra "tally". De acordo com a sua declaração, tem quase (não sei tudo) um optimizador completo. Os programadores estabeleceram o seu optimizador (mesmo dois deles - MT4 e MT5). Podemos discuti-lo e criticá-lo. Mostre-nos algo de sua autoria. Pode haver potenciais compradores.

Talvez, mesmo os programadores tenham dúvidas se o seu optimizador universal calcular realmente muito mais depressa e com um erro aceitável.

Há também uma questão de indicadores. Pessoalmente não preciso deles para escrever EAs, mas 99% dos Expert Advisors utilizam-nos, pelo que a arquitectura do seu testador-optimizador foi personalizada de acordo com as realidades da maioria. Assim, pode haver alguma perda de velocidade arquitectónica para "tudo em um" (poderia ser mais rápido), mas há uma grande vantagem para variantes com indicadores (do que poderia ser).

P.S. Os seus números são obviamente incorrectos: não pode ter uma história na INT ocupando 2.1Gb e uma história na DOUBLE ocupando 7Gb. A diferença deve ser sempre exactamente 2 (USHORT não é suficiente) vezes. A mudança para aritmética inteira com preços dá uma vantagem significativa quando toda a lógica de uma EA pode ser substituída por lógica inteira. Isto não acontece com muita frequência.

Se pensa que USHORT não é suficiente, então sim. Mas, na minha opinião, será suficiente. Além disso, não é necessário o dobro - FLOAT é metade do dobro e mais rápido.

E quanto às peles - então :

Sim, está bem - eu mostro-vos se tiver tempo, mas não peles - pois não é uma aplicação com janela, mas mostrarei algo como um vídeo.

Compradores que penso que não existirão. :) E no Verão, talvez chegue o tempo, vou convertê-lo em rede e colocá-lo "à venda". Vou fazer um sítio web em inglês e colocá-lo no ar. Penso que vendê-la :) ( Na verdade já me estou a rir - aqui não me envolvi na vida sharavara toloko) será por 30-50 libras. Mas é interessante - pense nisso: escreva-o no MT4 e depure-o em estúdio :) :)


Se existir um tal indicador num símbolo com os mesmos parâmetros, não é recalculado. Mas para ser honesto, não me lembro exactamente o que não está lá, mas tudo está lá, que é necessário no MT4. E as carraças vêm de cada símbolo na EA onde o teste está a decorrer, e não apenas do símbolo em que a EA está a decorrer como no MT5 agora.

Isso faz-me lembrar - há até bibliotecas e exportação ... Bem, há de tudo. :)

 
A conversão de preços para valores inteiros não tem vantagens particulares. Sim, diminui efectivamente os volumes, mas muitas vezes perde a velocidade devido à inevitável recodificação para o dobro. É inevitável, porque é impossível tornar todo o sistema inteiro, a matemática calculável ainda tem de ser feita em dobro (o que nem sequer é suficientemente preciso).

Dados inteiros (e mesmo que curtos) não podem ser utilizados em quaisquer operações de divisão e multiplicação. Onde guardar valores fracionários de 15 dígitos? Do mesmo modo, é perigoso e suicida utilizar flutuador, que carece absolutamente de precisão. A quantidade de erros acumulados no flutuador é tal que nunca se deve utilizá-lo para calcular indicadores.

Os criadores principiantes não estão cientes disto. Eles ainda não vêem a extensão total das complexidades.
 
Renat:
Não há nenhuma vantagem particular em converter os preços em inteiros. Sim, reduz efectivamente os volumes, mas muitas vezes perde velocidade devido à conversão inevitável para o dobro. É inevitável, porque não é possível tornar todo o sistema inteiro, a matemática calculável ainda tem de ser feita em dobro (cuja precisão nem sequer é suficiente).

Dados inteiros (e mesmo que curtos) não podem ser utilizados em quaisquer operações de divisão e multiplicação. Onde guardar valores fracionários de 15 dígitos? Do mesmo modo, é perigoso e suicida utilizar flutuador, que carece absolutamente de precisão. A quantidade de erros acumulados no flutuador é tal que nunca se deve utilizá-lo para calcular indicadores.

Os criadores principiantes não estão cientes disto. Eles não vêem o âmbito total das complicações.
No "aquele" optimizador tudo é o mesmo que no seu caso - rublos. Mas o que se diz sobre a impossibilidade de usar - bem, talvez. Embora... ? - Preço em pips, indicadores em pips, tudo em pips ... Apenas o que é igual a um PONTO em cada caso pode ser diferente - ou seja, temos um número que é atribuído a um tipo particular (vacas, quilómetros, etc.) e tem os seus próprios pontos. Assim, em números inteiros, tudo está perfeitamente resolvido. É aqui que se engana. :)
Razão: