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
Com o MT4, por outro lado, o quadro é completamente diferente.
Se no MT5 o trabalho de Comentário e Tela é praticamente o mesmo, no MT4 Comentário é 1000 vezes mais rápido. Concluo que no MT5 o Comentário é implementado através do BitMap interno, enquanto no MT4 ele funciona de forma diferente. A diferença é impressionante. Acho que vou transferir esta pergunta para o fórum Bug.
Explicação detalhada aqui: https://www.mql5.com/ru/forum/1111/page2102#comment_6156364
O Comentário no MT4 é essencialmente falso e não faz com que o gráfico seja redesenhado.
Explicação detalhada aqui: https://www.mql5.com/ru/forum/1111/page2102#comment_6156364
O comentário no MT4 é essencialmente falso e não faz com que o gráfico seja redesenhado.
E agora para tirar conclusões práticas
1. Seria bom substituir a série de funções que afetam o desempenho nos testes por suas contrapartidas #definas
2. 90% das senhoras/pessoas aqui presentes estão em definições como o enroscar em laranjas.
4. Há um monstro definido no fórum fxsaber
5. Talvez pedir-lhe para fazer e manter uma biblioteca de definições similares, para que os meros mortais não tenham que pensar em que modo o programa funciona?
O que a comunidade e o fxsaber pensam sobre tal sugestão?
O que as definições têm a ver com isso se as pessoas não entendem a ferramenta e estão tentando testar a velocidade do que não pode ser testado.
Chamar um comentário para olhar para ele é normal.
Chamá-lo 1000-10000 vezes por segundo é anormal tanto logicamente (você não pode olhar para ele) quanto tecnologicamente - causa altos custos para não exibir/redesenhar o gráfico inteiro (não apenas sua linha).
Você precisa entender o que está fazendo. É sobre isso que escrevi em detalhes em minha resposta.
O que as definições têm a ver com isso se as pessoas não entendem a ferramenta e estão tentando testar a velocidade do que não pode ser testado.
Chamar um comentário para olhar para ele é normal.
Chamá-lo 1000-10000 vezes por segundo é anormal tanto logicamente (você não pode olhar para ele) quanto tecnologicamente - causa altos custos para não exibir/redesenhar o gráfico inteiro (não apenas sua linha).
Você precisa entender o que está fazendo. É sobre isso que escrevi em detalhes em minha resposta.
E ao invés disso você sugere "me dê um pedaço de código para continuar pensando", ignorando as explicações de porque é errado fazer isso dessa maneira.Renat, tenho aqui um EA em funcionamento. Eu sou um otário e não sei nada sobre estes desenhos. Funciona e é ótimo. Eu o submeto para testes e vejo a degradação do desempenho devido aos problemas que descrevi.
Não faria sentido fazer uma definição que determinasse em que modo estamos trabalhando? E no modo de teste/optimização não produz nada?
Renat, tenho aqui um EA em funcionamento. Sou um otário e não sei absolutamente nada sobre estes desenhos. Funciona e é ótimo. Estou testando-o e vejo uma diminuição no desempenho devido aos problemas que descrevi.
Não faria sentido fazer uma definição que determinasse em que modo estamos trabalhando? E no modo de teste/optimização não produz nada?
Não espere que as pessoas entendam tudo dessa maneira. Deus proíba que 20% das pessoas neste fórum entendam o OOP. Pode ser comparado ao conhecimento de um carro. Todos os impulsionam, mas poucos entendem como o mesmo motor de combustão interna funciona e uma fração de % pode, de alguma forma, consertar algo.
Mas todos eles são seus clientes).
Renat, tenho aqui um EA em funcionamento. Sou um otário e não sei absolutamente nada sobre estes desenhos. Funciona e é ótimo. Estou testando-o e vejo uma diminuição no desempenho devido aos problemas que descrevi.
Não faria sentido fazer uma definição que determinasse em que modo estamos trabalhando? E no modo de teste/optimização não produz nada?
E qual é o problema para pensar e melhorar tudo dramaticamente?
Já existe alguma biblioteca MQL4-MQL5 no modo "ele funciona e é ótimo", é por isso que temos que arrancar nossos cabelos. As pessoas estão usando-o seriamente para comparar a velocidade das duas plataformas.
E agora você está se oferecendo não para pensar, mas para fazer outro produto artesanal que será rebocado dizendo "o MT5 é mais lento".
Já existe uma biblioteca MQL4-MQL5 em modo "funciona e é ótimo", o que faz você arrancar seus cabelos. As pessoas estão usando-o seriamente para comparar a velocidade das duas plataformas.
Esta não é uma afirmação bem fundamentada.
Não é lógico fazer uma definição que determine em que modo estamos trabalhando? E no modo de teste/optimização simplesmente não produz nada?
Há uma ferramenta universal que permite medir o desempenho do código no testador com uma linha. Podemos ver muitas coisas ali. Em particular, que uma única execução é mais lenta do que uma execução de otimização.
Sobre o assunto do comentário, os desenvolvedores deram sua resposta. Até agora, eu mesmo acelero a otimização em 1,5-2 vezes por uma única linha.
E o SD me falou de uma importante nuance para o desempenho.
A preocupação com os microssegundos de execução das funções é razoável apenas nos modos de otimização. Em tempo real, isso não faz diferença. E o Comentário não desempenha nenhum papel no desempenho do Expert Advisor em tempo real, mesmo que seja uma ordem de magnitude mais lenta.
Mas é um fato que quase ninguém escreve EAs de tal forma que eles funcionem o mais rápido possível no testador.
O que as definições têm a ver com isso se as pessoas não entendem a ferramenta e estão tentando testar algo que não pode ser testado quanto à velocidade.
Já existe uma biblioteca MQL4-MQL5 no modo "it works and it's great" que faz você arrancar seus cabelos. As pessoas estão usando-o seriamente para comparar a velocidade das duas plataformas.
E eu pessoalmente não sinto pena do trabalho feito. Estasreferências aparentemente inúteisacabaram não sendo inúteis em nada. Como muitas coisas úteis vieram à luz graças à sua explicação detalhada, e como resultado, alguns quebra-cabeças começaram a se encaixar. Não consigo encontrá-lo em nenhum lugar, então tenho que beliscá-lo :))).
Por exemplo, embora eu tenha vergonha de confessar, não sabia que a função Update() de Kanvas refaz toda a janela, independentemente de seu tamanho. Mas para entender isso, eu só tinha que olhar através das entranhas do CCanvas. E saber pelo menos exatamente este fato mudará a lógica do trabalho e me poupará de gestos desnecessários em algumas implementações relacionadas a gráficos. E Comentar não tinha nada a ver com isso, era apenas um "só para chegar ao fundo da questão". Mais uma vez, obrigado!
O que não está claro é que enquanto a função Update(false) no MT5 não desenha nada na tela, a função MT4 não desenha a janela inteira, mas apenas a tela em si. Isso significa que a função ResourceCreate no MT5 não desenha um conjunto de pixels sem ChartRedraw(), mas sim no MT4. Acho que seria útil também no MT5.
ResourceCreate em MT5 não exibe uma matriz de pixels sem ChartRedraw(), mas exibe em MT4.
E o faz corretamente. É tão lógico quanto não fazer ChartRedraw depois de alterar as propriedades do objeto. Usando a terminologia de
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Erros, Erros, Perguntas
Renat Fatkhullin, 2017.12.05 02:51
recomenda-se não misturar comandos de leitura/escrita, mas fazer uma leitura e uma escrita em massa separadas.
O ChartRedraw deve ser chamado após a escrita em massa, não após cada escrita.