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
Qual é o problema de pensar sobre isso e melhorá-lo drasticamente?
Já existe uma biblioteca MQL4-MQL5 no modo "it works and it's great" que está arrancando seu cabelo. 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 criar uma nova ferramenta de ponta que será rebocada dizendo "o MT5 é mais lento".
Eu não entendo nada. Sugiro, mais uma vez, se o fxsaber tem tempo e desejo:
1. Fazer uma biblioteca para MT5 (opcional para MT4), que desabilitaria funções desnecessárias (por enquanto, gráficos) no modo testador/optimizador
2. Para isso, envolva estas funções dispendiosas em definições e, dependendo do modo de operação, ative-as ou desative-as
Não há necessidade de ser tão emotivo com isso, ninguém está atacando o MT5.
Há uma ferramenta universal que permite medir o desempenho do código no testador com uma linha. Conseguimos ver muitas coisas lá. 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.
Por favor, escreva um FAQ sobre como conseguir isso. Que todos os pensamentos estejam em um só lugar.
Há um grande fio só por isso. Talvez alguém gaste muito tempo e esforço compilando uma seção por seção com base nos muitos posts deste tópico.
E para o desempenho, uso sempre a mesma receita - TesterBenchmark + profiler. E, é claro, encontrar um equilíbrio razoável entre as características do testador e o comércio real. É assim que o MT4Orders é escrito. O programa tem como objetivo um trabalho rápido no testador e um trabalho ideal na conta real. Para este fim, precisamos entender que existem alguns (às vezes caros) cheques no mesmo testador que não são necessários para a verdadeira comercialização. Isto resulta em uma grande economia. E o caching da mesma história, etc. Isto é, é necessário escrever bibliotecas que às vezes têm em suas entranhas lógicas diferentes para o testador e para o real. Trade.mqh, infelizmente, não é uma biblioteca desse tipo.
Há um grande fio só por isso. Talvez alguém gaste muito tempo e esforço compilando uma seção por seção com base nos muitos posts deste tópico.
E para o desempenho, uso sempre a mesma receita - TesterBenchmark + profiler. E, é claro, encontrar um equilíbrio razoável entre as características do testador e o comércio real. É assim que o MT4Orders é escrito. O programa tem como objetivo um trabalho rápido no testador e um trabalho ideal na conta real. Para este fim, precisamos entender que existem alguns (às vezes caros) cheques no mesmo testador que não são necessários para a verdadeira comercialização. Isto resulta em uma grande economia. E o caching da mesma história, etc. Ou seja, é necessário escrever bibliotecas que às vezes têm em suas entranhas lógicas diferentes para o testador e para o real. Trade.mqh, infelizmente, não é uma biblioteca desse tipo.
Vamos fazer uma tarefa modesta - fazer um FAQ sobre aceleração da otimização.
O altruísmo às vezes é uma coisa boa. Mas o tempo não me pertence, ele pertence à Família.
Códigos e receitas humildes são compartilhados. Isto parece suficiente.
Não possuo nenhum segredo.
E o faz corretamente. Faz tanto sentido quanto não fazer um ChartRedraw depois de alterar as propriedades de um objeto. Para utilizar a terminologia
O ChartRedraw deve ser chamado após a escrita em massa, não após cada escrita.
Sim, mas se eu tiver uma tela pequena, digamos 130x80 pixels, que é menos de 1% da janela total, e eu preciso exibir informações atuais nela. Portanto, no MT4 eu posso fazê-lo sem redesenhar toda a tela com Update(false), mas no MT5 eu tenho que redesenhar toda a tela a cada vez. E é um par de ordens de magnitude mais intensiva em termos de recursos. E isto não é um teste, mas um tópico de trabalho.
Tenho certeza de que a tela nunca é parcialmente redesenhada quando se faz kanvas ou qualquer outra ação.
O altruísmo às vezes é uma coisa boa. Mas o tempo não pertence a mim, ele pertence à Família.
Códigos e receitas humildes são compartilhados. Isto parece suficiente.
Eu não tenho nenhum segredo.
Modéstia é ótimo! Eu também sou uma pessoa modesta. O altruísmo é para a falecida Madre Teresa na maioria dos casos. Embora, às vezes, as raízes desta doença ruim - o altruísmo - brotem em mim também )))
Certamente, a tela nunca é parcialmente redesenhada quando há kanvas ou qualquer outra ação.
Sim, eu estava errado. Eu estava errado ao dizer queResourceCreate sem ChartRedraw em MT4 redesenhará a tela toda vez. Ele o faz apenas de vez em quando, enquanto o MT5 não o faz de forma alguma.
Sim, é claro que sou burro. No nível do hardware, o contexto da tela não pode mudar apenas uma parte da tela, mas a tela inteira.
Entendi isso quando introduzi um pequeno atraso Dormir(10):