Você está completamente fora do circuito. Suponha que você precise abrir duas posições na OnTick. O primeiro OrderSend é de alguns milissegundos. Depois disso, você precisa fazer um instantâneo. E então o segundo OrderSend deve ser chamado.
Somente o OnTick pode ser executado por centenas de milissegundos. E você sugere fotografar um pouco do OnTimer.
Aqui está meu código e tempo de execução estável: sem centenas ou milhares de microssegundos em 20 gráficos em paralelo
Quantos núcleos você tem e que tipo de processador? i7-2600?
8 núcleos.
2020.10.0602:27:59.464 Terminal MetaTrader 5 x64 build 2630 started for MetaQuotes Software Corp.
2020.10.0602:27:59.465 Terminal Windows 10 build 19042, Intel Core i7-2700 K @ 3.50 GHz, 7 / 15 Gb memory, 19 / 29 Gb disk, IE 11, Admin, GMT+3
Teste de estresse oculto novamente com milhões de pedidos em paralelo?
Já lhe disse muitas vezes que o assessor de combate. Minimizar ao máximo o número de ligações. Em teoria (não o medi) até 10 chamadas por OnTick.
Seja mais transparente. Só porque você postou um par de chamadas _B simples não é prova de suas outras reivindicações. Você esquece abruptamente o código e a descrição real das condições, assim que faz reivindicações inusitadas.
Você não precisa imaginar nada em sua mente - contar e mostrar o que você realmente chama e testar. Não um resultado arrancado de "ter feito um teste de estresse desconhecido e esperar por um alerta para mostrar ao mundo", mas exatamente o código completo do teste.
Estou publicando os resultados da EA ao vivo. Há ali arquivos de 70 mqh, incluindo o WinAPI. Se você realmente o entende e não apenas palavras, eu lhe darei o código fonte. Você reproduzirá os freios muito rapidamente.
Você está completamente fora do circuito. Digamos que você precisa abrir duas posições na OnTick. O primeiro OrderSend é de alguns milissegundos. Depois disso, você precisa fazer um instantâneo. E então o segundo OrderSend deve ser chamado.
Somente o OnTick pode ser executado por centenas de milissegundos. E você sugere fotografar um pouco do OnTimer.
Muitas vezes disse conselheiro de combate. Minimizar ao máximo o número de ligações. Em teoria (não o medi) até 10 chamadas por OnTick.
Estou publicando os resultados do Expert Advisor. Há ali arquivos de 70 mqh, incluindo o WinAPI. Se você não apenas falar sobre isso, mas realmente entender, eu lhe darei o código fonte. Você jogará os freios muito rapidamente.
2020.10.0200:45:14.113Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 878 mсs.
2020.10.0200:45:14.114Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 943 mсs.
2020.10.0200:45:14.114Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 297 mсs.
2020.10.0200:45:14.116Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 1787 mсs.
2020.10.0200:45:14.116Alert: Time[Test9.mq5 35 in IsInvisible: ::ChartNext(Chart)] = 2 mсs.
2020.10.0200:45:14.117Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 980 mсs.
2020.10.0200:45:14.117Alert: Time[Test9.mq5 35 in IsInvisible: ::ChartNext(Chart)] = 2 mсs.
2020.10.0200:45:14.117Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 59 mсs.
2020.10.0200:45:14.118Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 803 mсs.
2020.10.0200:45:14.119Alert: Time[Test9.mq5 36 in IsInvisible: ::ChartGetInteger(Chart,CHART_IS_MAXIMIZED)] = 1059 mсs.
CHART_IS_MAXIMIZED é muito lento para os gráficos de outra pessoa. O relatório do bug está pronto! Foi muito fácil com a biblioteca.
Qual é o problema?
código não legível
se amarrando em uma classe com muita sobrecarga
custo de armazenagem em pilha de 50 resultados
obtendo resultados - uma enorme sobrecarga e lixo nas amarrações de objetos
A usabilidade se sobrepõe às parcas despesas gerais. É miserável se você olhar de perto como ele é implementado. Por exemplo, o ArrayResize é uma sobrecarga, portanto seu uso é minimizado.
Quero dizer o parâmetro global Optimize=0 no metaeditor.ini
Não está interessado em modos lentos. Estou olhando para o desempenho da EA de combate, prestando atenção também à otimização algorítmica e à otimização do compilador, é claro.
Quero dizer, o parâmetro global Optimize=0 no metaeditor.ini
Aqui é no estilo C, é simples e realmente livre de lixo. Obrigado pelo exemplo.
Um dos professores de línguas C recomendou melhor não usar o underscore _B em nomes de usuários . Como este prefixo é usado por desenvolvedores de bibliotecas, programas, etc. E para não se sobrepor, ele recomendou melhor não usá-lo.
Em mql5 é possível sobrepor-se a seus nomes? Ou nomes personalizados são completamente protegidos de nomes MQ ?
Um dos professores da C recomendou não usar o sublinhado _B em nomes de usuários , porque este prefixo é usado por desenvolvedores de bibliotecas, software, etc. E para evitar sobreposições, ele recomendou não usá-lo.
Em C, os nomes que começam com "_" são usados como serviço, sistema ou nomes especiais. Neste caso, acho que é permissível. Como esta função é utilizada para manutenção e exame de códigos.
Nomes que começam com "_" são usados em C como serviço, sistema ou nomes especiais. Neste caso - aceitável, eu acho. Como esta função é utilizada para manutenção e exame de códigos.
Esse é o ponto, além do mql5, há os nomes dos serviços MQ do desenvolvedor.
O temporizador de milissegundos já existe há muito tempo: EventSetMillisecondTimer()
Você está completamente fora do circuito. Suponha que você precise abrir duas posições na OnTick. O primeiro OrderSend é de alguns milissegundos. Depois disso, você precisa fazer um instantâneo. E então o segundo OrderSend deve ser chamado.
Somente o OnTick pode ser executado por centenas de milissegundos. E você sugere fotografar um pouco do OnTimer.
Há também problemas com a própria biblioteca de medição. Há muitas coisas desnecessárias, incluindo as despesas gerais.
Argumentos no estúdio!
Aqui está meu código e tempo de execução estável: sem centenas ou milhares de microssegundos em 20 gráficos em paralelo
Quantos núcleos você tem e que tipo de processador? i7-2600?
8 núcleos.
Teste de estresse oculto novamente com milhões de pedidos em paralelo?
Já lhe disse muitas vezes que o assessor de combate. Minimizar ao máximo o número de ligações. Em teoria (não o medi) até 10 chamadas por OnTick.
Seja mais transparente. Só porque você postou um par de chamadas _B simples não é prova de suas outras reivindicações. Você esquece abruptamente o código e a descrição real das condições, assim que faz reivindicações inusitadas.
Você não precisa imaginar nada em sua mente - contar e mostrar o que você realmente chama e testar. Não um resultado arrancado de "ter feito um teste de estresse desconhecido e esperar por um alerta para mostrar ao mundo", mas exatamente o código completo do teste.
Estou publicando os resultados da EA ao vivo. Há ali arquivos de 70 mqh, incluindo o WinAPI. Se você realmente o entende e não apenas palavras, eu lhe darei o código fonte. Você reproduzirá os freios muito rapidamente.
Você está completamente fora do circuito. Digamos que você precisa abrir duas posições na OnTick. O primeiro OrderSend é de alguns milissegundos. Depois disso, você precisa fazer um instantâneo. E então o segundo OrderSend deve ser chamado.
Somente o OnTick pode ser executado por centenas de milissegundos. E você sugere fotografar um pouco do OnTimer.
8 núcleos.
Muitas vezes disse conselheiro de combate. Minimizar ao máximo o número de ligações. Em teoria (não o medi) até 10 chamadas por OnTick.
Estou publicando os resultados do Expert Advisor. Há ali arquivos de 70 mqh, incluindo o WinAPI. Se você não apenas falar sobre isso, mas realmente entender, eu lhe darei o código fonte. Você jogará os freios muito rapidamente.
Argumentos sobre a mesa!
Toda a sua referência está sobrecarregada de lixo e, de fato, aqui é uma versão limpa e compreensível (ao contrário de sua desordem de código):
Quais são seus problemas:
Espero que você não tenha desativado a otimização do código para testes?
Quero dizer, o parâmetro global Optimize=0 no metaeditor.ini
Toda a sua referência está sobrecarregada de lixo e, de fato, aqui é uma versão limpa e compreensível (ao contrário de sua desordem de código):
Sua versão está, infelizmente, no estágio inicial de compreensão da conveniência. Conveniente é quando você pode fazer isso assim.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Bibliotecas: Benchmark
fxsaber, 2020.10.01 23:49
Agora tentamos descobrir onde o soluço está na variante padrão. Acrescentamos alguns símbolos ao código fonte.
E veja imediatamente a razão.
CHART_IS_MAXIMIZED é muito lento para os gráficos de outra pessoa. O relatório do bug está pronto! Foi muito fácil com a biblioteca.
Qual é o problema?
A usabilidade se sobrepõe às parcas despesas gerais. É miserável se você olhar de perto como ele é implementado. Por exemplo, o ArrayResize é uma sobrecarga, portanto seu uso é minimizado.
Espero que você não tenha desativado a otimização do código para testes?
Quero dizer o parâmetro global Optimize=0 no metaeditor.ini
Não está interessado em modos lentos. Estou olhando para o desempenho da EA de combate, prestando atenção também à otimização algorítmica e à otimização do compilador, é claro.
Toda a sua referência está sobrecarregada de lixo e, de fato, aqui é uma versão limpa e compreensível (ao contrário de sua desordem de código):
Qual é o seu problema?
Espero que você não tenha desativado a otimização do código para testes?
Quero dizer, o parâmetro global Optimize=0 no metaeditor.ini
Aqui é no estilo C, é simples e realmente livre de lixo. Obrigado pelo exemplo.
Um dos professores de línguas C recomendou melhor não usar o underscore _B em nomes de usuários
. Como este prefixo é usado por desenvolvedores de bibliotecas, programas, etc.
E para não se sobrepor, ele recomendou melhor não usá-lo.
Em mql5 é possível sobrepor-se a seus nomes?
Ou nomes personalizados são completamente protegidos de nomes MQ ?
Um dos professores da C recomendou não usar o sublinhado _B em nomes de usuários
, porque este prefixo é usado por desenvolvedores de bibliotecas, software, etc.
E para evitar sobreposições, ele recomendou não usá-lo.
Em C, os nomes que começam com "_" são usados como serviço, sistema ou nomes especiais. Neste caso, acho que é permissível. Como esta função é utilizada para manutenção e exame de códigos.
Nomes que começam com "_" são usados em C como serviço, sistema ou nomes especiais. Neste caso - aceitável, eu acho. Como esta função é utilizada para manutenção e exame de códigos.
Esse é o ponto, além do mql5, há os nomes dos serviços MQ do desenvolvedor.