Erros, bugs, perguntas - página 1625

 
Vladislav Andruschenko:

mt4 compila em 888 msec.

o mesmo projecto compila 4103 ms em mt5

Bem, parece que os problemas estão ligados à v5. 4.5 diferença não é um pouco. Embora para completar o quadro seria bom verificar com o compilador antigo (1159), se o tiver (ou posso descarregá-lo). Mas talvez tenha de fazer algumas correcções no seu código.
 
-Aleks-:

Não tenho dinheiro para MT5 - negoceio contas em cêntimos e o CD não tem pressa de as abrir por cinco cêntimos.

Não procura o suficiente. https://www.mql5.com/ru/forum/88768/page2#comment_2587760
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
Крупнейшие брокеры отмечают взрывной рост популярности MetaTrader 5
  • comentários: 3
  • www.mql5.com
Недавно один из национальных брокеров России Solid Financial Services запустил торговую платформу MetaTrader 5 с хеджинговой системой учета позиций...
 
Alexey Navoykov:

Há cerca de três meses atrás tentei levantar esta questão, mas não foi compreendida, aparentemente os meus argumentos não foram suficientemente convincentes. Por conseguinte, voltei à velha construção (1159), que compilou tudo quase instantaneamente (enquanto com novos compiladores o meu projecto compilou em 20 segundos).

E assim, há uma semana atrás, tenho tentado mudar para uma nova construção. Pensei "esquece cerca de 20 segundos, vou aguentar por causa de coisas novas". Claro que tive de afinar um pouco o código para cumprir novas condições, o que revelou vários bugs de novo compilador (sobre o qual relatei aqui).O resultado é que o meu projecto já está a ser compilado há 30 segundos! Não sei se tem a ver com a complicação do projecto ou com mais uma "complicação" do compilador, mas simplesmente já não se encaixa.

O projecto contém cerca de 700 Kb de código fonte, é um Expert Advisor contendo algumas dezenas de mqh. Tudo é OOP. As pessoas escreveram-me anteriormente que a desaceleração é provavelmente causada por grandes funções. Tive alguns deles. Bem, fragmentei-os em partes mais pequenas e não têm qualquer efeito.

O que é mais espantoso é que esta compilação superlongativa não tem qualquer utilidade. A velocidade do programa é a mesma que com o antigo compilador, medi-o especificamente. Isso pede apenas uma frase: "Para quê?".

Tenho a forte sensação de que existe um bug/mal funcionamento no compilador por causa do qual ele está a correr ociosamente através de um espaço vazio. De que outra forma posso explicar o facto de um script absolutamente vazio com apenas a função OpenStart() { } compila mais de 400 ms!É inimaginável que possa demorar tanto tempo a compilar/optimizar um guião vazio. Bem, acrescentando-lhe pequenas funções e classes, pode-se ver como o tempo de compilação cresce rapidamente.

Quero dizer desde já que o meu hardware está naturalmente longe de ser poderoso - Core i5U. Mas isto não impede o meu projecto de compilar em 1-2 segundos num compilador antigo. Respectivamente, o boneco é compilado lá num instante.

Vou também notar. O compilador carece completamente não só de cache de fragmentos compilados anteriormente, mas até de uma verificação trivial para se certificar de que o código fonte era idêntico. Ou seja, compila-se o projecto e depois clica-se novamente no botão "Compile" sem fazer quaisquer alterações e espera-se novamente pelos mesmos 30 segundos.

Gostaria de ouvir comentários dos programadores de MT e dos utilizadores do fórum, trabalhando com grandes projectos (sou apenas eu que tenho este problema?), quanto tempo demora a compilar, etc. Devemos dizer desde já que estamos a falar da compilação de um executável.

Os meus projectos têm mais de uma dúzia de ficheiros-fonte, como os seus, e todos no OOP, enquanto que eu não vou reivindicar cerca de 20 segundos, mas mais de 11 - 14 segundos que vejo constantemente. No entanto, está a ocorrer algum tipo de caching, uma vez que se não se mudar nada o tempo está a mudar em 1-2 segundos em qualquer direcção imprevisível. Não estou a comparar a construção dos projectos utilizando os compiladores antigos e novos porque os compiladores antigos construíram tudo muito mais depressa. Penso que os próprios criadores vêem este ponto e um dia irão corrigi-lo :) Não é por nada que lançam várias novas séries todos os meses - significa que vêem algo e o consertam.

 

Versão terminal e taxa de bits

v.1375, 64-bit

Descrição do problema.

Após a actualização para a última construção, os agentes congelam após passarem as primeiras passagens 1900-2100 durante a optimização. Tudo estava bem antes da actualização, todos os parâmetros e código EA são os mesmos.

Sequência de acções

Aoptimização começa. Abertura do corretor. Conta real. As ferramentas: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (ainda não experimentei outros). Intervalo: mensal, minuto, 15 minutos. Preços de abertura ou OHLC.

Resultado.

Agentes locais e remotos depois de 2000 passagens realmente congelam, cargas de CPU, mudam em cerca de 0,01% por 10 minutos. 14 agentes.

Resultado esperado

Otimização de passagem como com a construção anterior.

Informação adicional

Sobre mim: programador experiente .net MQL5


Olhei para os registos em todo o lado. Comparei-os com os registos da construção anterior. Não encontrei quaisquer problemas ou erros. A qualidade da história é boa.
Arquivos anexados:
image.jpg  89 kb
 
coderex:

No entanto, há algum caching em curso, porque se não se mudar nada, o tempo muda por 1-2 segundos em qualquer direcção imprevisível.

Em qualquer caso, 10-15% não são de todo os indicadores, para os quais o caching é feito.

Eu não compararia projectos de construção com compiladores antigos e novos porque os compiladores antigos construíam tudo muito mais depressa. Penso que os próprios criadores vêem este ponto e irão resolvê-lo em algum momento :) Não é à toa que são lançadas várias novas séries todos os meses, significa que eles vêem alguma coisa e corrigem-na.

São lançados novos betas porque as pessoas se queixam de vários bugs, mas se os bugs são um argumento sólido para os corrigir, todo o resto ... É preciso convencê-los durante muito tempo. Mesmo quando parece que trouxe claramente todos os argumentos, delineou claramente o quadro tão claro quanto possível, eles ainda resistem, por gancho ou por vigarista :) Aqui estou eu mesmo há 3 meses atrás tentei convencê-los, mas ninguém apoiou.

E vi que apenas algumas pessoas usam MQL para grandes projectos e provavelmente não se incomodam com os pequenos por causa de um par de segundos extra.

A propósito, que tipo de CPU tem?

 
Alexey Navoykov:

... eles vão fazer o que puderem :)

É por isso que não estou a tentar provar nada :) Além disso, os projectos pluses levam muito mais tempo a construir, embora sejam muito maiores, mas estou habituado a construir pluses em minutos para ficheiros executáveis ou de biblioteca, enquanto o projecto de vários ficheiros com estrutura de directório leva até várias dezenas de minutos :) e esperar 10-20 segundos não é um problema...
 
Alexey Viktorov:
Não procurei o suficiente. https://www.mql5.com/ru/forum/88768/page2#comment_2587760
A ligação não dá a informação de interesse - seja específica.
 
ProfitTraderRU:

Versão terminal e taxa de bits

v.1375, 64-bit

Descrição do problema.

Após a actualização para a última construção, os agentes congelam após passarem as primeiras passagens 1900-2100 durante a optimização. Tudo estava bem antes da actualização, todos os parâmetros e código EA são os mesmos.

Sequência de acções

Aoptimização começa. Abertura do corretor. Conta real. As ferramentas: Si Splice, Vtb Splice, Si 9.16, Vtb 9.16 (ainda não experimentei outros). Intervalo: mensal, minuto, 15 minutos. Preços de abertura ou OHLC.

Resultado.

Agentes locais e remotos depois de 2000 passagens realmente congelam, cargas de CPU, mudam em cerca de 0,01% por 10 minutos. 14 agentes.

Resultado esperado

Otimização de passagem como com a construção anterior.

Informação adicional

Sobre mim: programador experiente .net MQL5


Olhei para os registos em todo o lado. Comparei-os com os registos da construção anterior. Não encontrei quaisquer problemas ou erros. A qualidade da história é boa.

Este comportamento ocorre com algum Conselheiro Especialista?

Seria bom ter os troncos. Por favor, envie um bilhete para o balcão de atendimento.

 
Eu apenas testei os meus EAs. Com a construção anterior foram optimizados normalmente.

Fizum pedido ao servicedesk. Acreditem, não há nada de invulgar nos troncos (vejam-se os troncos de construção anterior e actual).
 
Alexey Da:

Os registos terminais são bons, mais interessantes são os registos do testador de estratégia e dos agentes de teste.

+ anexar ao seu bilhete pelo menos EX5 do seu Conselheiro Especialista (apagá-lo-emos após a investigação) + descrição dos parâmetros utilizados durante a optimização.

OK, obrigado.