Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Seria interessante comparar o mesmo roteiro com outras plataformas comerciais.
MT4 b1280.
Apenas três escorregões e muito raramente eles aparecem. Provavelmente, é difícil criar um freio, pois não há HistorySelect e CopyTicks.
Portanto, ambos são Haswell, xeon tem uma freqüência operacional muito menor, haverá degradação do desempenho e testes únicos, somente na otimização multi-tarefa será uma vantagem. A i3 dos últimos modelos deve ser muito mais rápida de rodar
perguntar aos desenvolvedores sobre o efeito do nível de cache na velocidade e em geral a velocidade do Zen2 e as últimas informações
adicionar
Ryzen 3700x I have, você pode fazer testes com a Intel
loop it several times with a timer
Não estamos falando aqui de testes, mas de atrasos na execução dos pedidos. Este atraso está lá e está flutuando. E isso incomoda muito tanto o TS quanto a mim.
Apenas três coisas apareceram e depois muito raramente apareceram. Deve ser difícil criar um freio, pois não há HistorySelect e CopyTicks.
Esperou também no MT4.
TimeLocal em 36 milissegundos. Escolher um símbolo com um volume de carrapato maior.
A todos os interessados, aqui estão as instruções para a reprodução.
Quem acha que não será tocado.
Escolheu um símbolo com um volume de carrapato maior.
Nem mesmo para verificá-lo. Imagine o símbolo FORTS mais popular com uma assinatura tick. Em vez da lógica OnTick no OnBookEvent. Os atrasos devem ser terríveis.
Precisam de conselhos oficiais sobre o que fazer para minimizar os atrasos.
Para reproduzir os freios, você precisa executar o roteiro em vários caracteres do ÚNICO personagem - fazer com que OnTick seja chamado ao mesmo tempo. Em seguida, os alertas serão feitos a cada sinal sonoro.
O gráfico de carga da CPU mostra que o terminal64.exe carrega até 30% dos oito núcleos lógicos. São apenas quatro gráficos EURUSD com o roteiro em execução. Você pode ver claramente o quanto cada gráfico é carregado de cada vez.
Para onde vão tantos recursos?
Esta pergunta é fácil de responder.
Aqui você copia uma grande quantidade de dados:
Você está realmente dando um comando para levar todo o histórico comercial disponível do banco de dados do terminal para o ambiente EA, para uso posterior. Você está tentando propositalmente baixar um possível algoritmo de cache de solicitações idênticas.
Mas você não usa todos esses dados, mas os redefine imediatamente na linha seguinte:
Obviamente, a base do terminal aqui é um recurso compartilhado com acesso sincronizado. E você criou deliberadamente milhares de pedidos e negócios nele.
Toda essa ação sem sentido se repete 10 vezes a cada tique de vários fios ao mesmo tempo. E você está deliberadamente fazendo estas ações acontecerem simultaneamente a partir de vários fios.
Portanto, você sabe muito bem o que está fazendo e por quê, onde os recursos são gastos e, ao mesmo tempo, afirma que "o atraso é causado pela carga excessiva da CPU por parte do MT5".
Dito isto, você claramente tem um problema com seu computador. Isto é, sim, você está ativamente movendo quantidades significativas de memória, mas isso não deve afetar o tempo de execução das funções, especialmente não relacionadas à HistorySelect() de forma alguma.
Em nossos testes b2582, mesmo com 1000 vezes por tick e 5 EAs em gráficos de um caracter, ou seja, ordens de magnitude maior do que suas condições padrão, não foi observado um único Alerta.
Nosso sistema de teste: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Esta pergunta é fácil de responder.
É aqui que você copia uma grande quantidade de dados:
Você está realmente dando um comando para levar todo o histórico comercial disponível do banco de dados do terminal para o ambiente EA, para uso posterior. Tentativa propositalmente aleatória de interromper o possível algoritmo de cache de solicitações idênticas.
Mas você não usa todos esses dados, mas os redefine imediatamente na linha seguinte:
Obviamente, a base do terminal aqui é um recurso compartilhado com acesso sincronizado. E você criou deliberadamente milhares de pedidos e negócios nele.
Toda essa ação sem sentido se repete 10 vezes a cada tique de vários fios ao mesmo tempo. E você está deliberadamente fazendo estas ações acontecerem simultaneamente a partir de vários fios.
Portanto, você sabe muito bem o que está fazendo e por quê, onde os recursos são gastos e, ao mesmo tempo, afirma que "o atraso é causado pela carga excessiva da CPU por parte do MT5".
Dito isto, você claramente tem um problema com seu computador. Isto é, sim, você está ativamente movendo quantidades significativas de memória, mas isso não deve afetar o tempo de execução das funções, especialmente não relacionadas à HistorySelect() de forma alguma.
Em nossos testes b2582, mesmo com 1000 vezes por tick e 5 EAs em gráficos de um caracter, ou seja, ordens de magnitude maior do que suas condições padrão, não foi observado um único Alerta.
Nosso sistema de teste: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Colegas,
é hora de você sair do círculo de modelagem da aeronave.
Aqui estão as condições de batalha: 4 terminais, cerca de 300 Expert Advisors, cerca de 30 instrumentos. Um terço deles são assinantes de tumblers. Tudo isso em FORTS. Simular sob tais condições.
Colegas,
é hora de você sair do círculo de modelagem da aeronave.
Aqui estão as condições de combate: 4 terminais, cerca de 300 EAs, cerca de 30 instrumentos. Um terço dos EAs são assinantes de tumblers. Tudo isso em FORTS. Simular sob tais condições.
"Aqui você vai" é aceito como um arquivo zip, mais uma descrição detalhada do problema. Caso contrário, é uma conversa vazia.
O que está sendo discutido aqui é o código da EA apresentado e a eficácia de sua execução. Com base nos problemas identificados, foi feito um trabalho para otimizar o código do terminal.
"Aqui você vai" é aceito como um arquivo zip, mais uma descrição detalhada do problema. Caso contrário, é uma conversa vazia.
Neste caso, a discussão é sobre o código apresentado pela EA e a eficiência de sua execução. O código do terminal foi otimizado para os problemas identificados.
Eu não tenho nenhum problema, não há nada para enviar.
fxsaber tem problemas. Ele já escreveu 16 páginas aqui.
E Mikhail tem tido os mesmos problemas desde 2014, ele já escreveu 149 páginas: https://www.mql5.com/ru/forum/38456/page149.
Ambos são qualificados o suficiente para lhe dar todas as informações de que você precisa.
Esta pergunta é fácil de responder.
É aqui que você copia uma grande quantidade de dados:
Você está realmente dando um comando para levar todo o histórico comercial disponível do banco de dados do terminal para o ambiente EA, para uso posterior. Tentativa propositalmente aleatória de interromper o possível algoritmo de cache de solicitações idênticas.
Você não seguiu a cronologia de desenvolvimento desta linha, portanto, você se permite notas acusatórias em suas declarações.
Eu removi a linha MathRand. Aqui está um breve registro.
Mas você não usa todos esses dados, você os descarrega imediatamente na linha seguinte:
Obviamente, a base do terminal aqui é um recurso compartilhado com acesso sincronizado. E você criou deliberadamente milhares de pedidos e negócios nele.
Eu o testei em contas reais onde as encomendas acima de 10K são a norma. Estas não são ordens falsas, pois >70% delas foram executadas.
Na imagem da tela, a propósito, 9331+576 != 12529.
Toda essa ação absurda é repetida 10 vezes em cada tique de vários fios de uma só vez. E você está deliberadamente fazendo essas ações a partir de múltiplos fios ocorrerem simultaneamente.
Estou tendo problemas com caracteres diferentes. Um único símbolo é sugerido para reproduzir o problema mais rapidamente.
A repetição de 10 vezes em cada carrapato é uma necessidade vital. Já que é normal que uma EA contenha uma dúzia de TCs com diferentes majors.
Portanto, você sabe exatamente o que e por que está fazendo e para onde os recursos estão indo, e ainda assim você alega "latência devido à carga excessiva da CPU por parte do MT5".
Dito isto, você claramente tem um problema com seu computador. Quer dizer, sim, você está ativamente movendo quantidades significativas de memória, mas isso não deve afetar o tempo de execução das funções, especialmente não relacionadas à HistorySelect() de forma alguma.
Não posso acusá-lo de incompetência, mas o que você escreveu, para dizer o mínimo, causa perplexidade. HistorySelect é a descoberta de quatro índices (início/fim para a tabela de pedidos e início/fim para a tabela de ofertas). As tabelas são ordenadas por tempo, portanto há (deve haver) uma busca binária na pior das hipóteses. Para pedidos 10K, é instantâneo (calcular o logaritmo binário). Que movimento de volume de memória! Ninguém aqui está falando sobre a temida HistóriaSelectByPosition. A história elementarSelect é afetada.
Em nossos testes b2582, mesmo com 1000 vezes por tick e 5 EAs em gráficos de um caracter, ou seja, ordens de magnitude maior do que suas condições padrão, não é observado um único Alerta.
Nosso sistema de teste: Windows 10 build 18363, Intel Xeon E5-2630 v4 @ 2.20GHz
Favor fornecer detalhes de login para a conta comercial na qual os testes foram conduzidos aqui.