Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 593

 

Outra pergunta, até que ponto o testador trabalha bem com EAs que copiam dados de vários TFs?

Se correto, qual TF escolher ao testar é importante?

 
Juer:

Um erro de memória fora da memória aparece ao executar um teste (não inicia). Como consertá-lo?

Após reiniciar o terminal, os testes são iniciados, e depois de vários testes novamente fora da memória.

Diminua o número de barras e barras visíveis na história (mas neste caso o histórico de citações profundas desaparecerá, então você decide o que é mais importante). Também é possível que muitos gráficos sejam abertos no terminal. Às vezes um usuário abre cerca de 50 gráficos com 1 milhão de barras de história. Neste caso, nenhuma memória é suficiente.

 
Artyom Trishkin:

É aqui que eles poderão responder exatamente.

Há várias dezenas de milhares de linhas no código. Em logs erros somente depois de testar xxx objetos não removidos. Posso executar cerca de 9 testes em média e depois erro fora da memória.

 
Ihor Herasko:

Reduza o número de barras e barras visíveis na história (somente neste caso o histórico de citações profundas desaparecerá, então você decide o que é mais importante). Também é possível que muitos gráficos estejam abertos demais no terminal. Às vezes um usuário abre cerca de 50 gráficos com 1 milhão de barras de história. Neste caso, nenhuma memória é suficiente.

Não, isso não ajuda nem afeta nada. Estou testando com um gráfico e reduzindo o histórico ao mínimo. Repito, ele pode ser testado, mas apenas um número limitado de vezes. Por volta do 10º teste, surge um erro de memória fora da memória.

 
Juer:

Há várias dezenas de milhares de linhas no código. Em logs erros somente depois de testar xxx objetos não removidos. Em média, eu posso fazer 9 testes e depois erro fora da memória.

Todos estes são vazamentos de memória. Eles precisam ser eliminados, liberando a memória alocada a cada um dos objetos através do comando de exclusão.

 
Ihor Herasko:

Todos estes são vazamentos de memória. Eles devem ser eliminados através da liberação da memória alocada a cada um dos objetos por meio do comando de exclusão.

Para esclarecer: excluir todos os objetos no OnDeinit() - objetos gráficos, de classe, se houver...

 
Artyom Trishkin:

Para esclarecer: excluir todos os objetos no OnDeinit() - objetos gráficos, de classe, se houver...

Como apagá-los ali se não estiverem visíveis...

Tenho uma coleção de objetos (classe herdada do CArrayObj), eles por sua vez são adicionados a uma lista de objetos similares, e aqueles ao objeto final (também herdados do CArrayObj), que já é visível em nível global e que eu apago no OnDeinit... E eu não os apago quando os apago, eu preciso deles enquanto o programa está em execução.

 
Juer:

Como apagá-los ali se não estiverem visíveis...

Tenho uma coleção de objetos (classe herdada do CArrayObj), eles por sua vez são adicionados a uma lista de objetos similares, e aqueles ao objeto final (também herdados do CArrayObj), que já é visível em nível global e que eu apago no OnDeinit... E eu não os apago quando os apago, eu preciso deles enquanto o programa está em execução.

Não acontece que os objetos que você cria sejam invisíveis.

Podem ser inacessíveis de uma função ou outra, mas devem ser acessíveis no próprio objeto. Este é o objeto onde você precisa limpar a memória. Isso geralmente é feito com o destruidor de classes. Para ter certeza, coloque as impressões em todos os destruidores e no OnDeinit.

 
Por favor, quem sabe, me diga como determinar se há um painel OCT no gráfico
 
Stanislav Dray:
Por favor, quem sabe, me diga como identificar a presença de um painel OCT em um gráfico

O que é um painel OCT?