Erros, bugs, perguntas - página 507

 
sergey1294:
Uma transacção não tem tempo de fecho porque uma transacção é uma transacção e tem um tempo de execução HistoryDealGetInteger(ticket,DEAL_TIME).Se um comércio tiver causado o encerramento de uma posição, então esta será a hora de encerramento. Mas é estranho que a função PositionGetInteger tenha o identificador POSITION_TIME - tempo de abertura da posição, mas não tem a verificação de fecho da posição.
Não há nada de estranho do ponto de vista da rede. O tempo aberto é o tempo da primeira troca, e só Deus sabe o que acontece a seguir.
 

Olá, estou a descarregar o histórico para todos os instrumentos (mais de 600, servidor BroCo-Demo), por volta do 300º carácter que os registos do terminal escrevem:

NI 0 Scripts 12:19:11 Script Download_history (EURUSD,H1) carregado com sucesso
MJ 3 MemoryException 12:24:20 31703040 bytes não disponíveis
EE 3 MemoryException 12:24:20 31703040 bytes não disponíveis
NM 3 MemoryException 12:24:21 31703040 bytes não disponíveis
HD 3 MemoryException 12:25:15 245760 bytes não disponíveis
LL 3 MemoryException 12:25:15 245760 bytes não disponíveis
PG 3 MemoryException 12:25:15 245760 bytes não disponíveis

DN 3 MemoryException 12:25:15 245760 bytes não disponíveis

Descarreguei o histórico utilizando o script descrito na secção "Organizar o acesso aos dados" (alterei-o um pouco - de outra forma funcionava apenas para moedas) anexei o código do script

Arquivos anexados:
 

Pode dizer-me se, por exemplo, temos um :

Classe cClasse()

{

Público:

cClass2 *ponteiro;

fn() { ponteiro = nova cClass2; }

~Classe()

{

apagar(ponteiro);// esta linha é necessária aqui???

}

}

OnTick()

{

{

cClass var;

} // Aqui a memória dinamicamente atribuída será livre sem apagar?

}

Isto é, quando a classe é destruída, a memória dinamicamente atribuída dentro da classe é libertada?

 
220Volt:

Pode dar-me uma dica, por exemplo, temos um :

Tenho um destruidor que é mais ou menos o mesmo esquema e funciona. A única coisa é que precisamos de verificar o descritor de invalidez (ou melhor, por falta dele) antes de aceder ao mesmo.

Há também o artigo de Roche sobre a utilização de apontadores, há muito para ver.

 

Tenho uma aula que funciona com uma matriz dinâmica, sem apagamento no destruidor, sem erros, mas estou hesitante.

Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
220Volt:

Tenho uma classe que funciona com uma matriz dinâmica, não há atrasos no destruidor, não são gerados erros,

Assim, a memória ocupada pelo objecto não é libertada.

Quando experimentei isto, tinha mensagens no registo depois de fechar o programa sobre não libertar memória (ou algo do género).

E a Achtung padrão:

Um objecto criado com o novo operador deve ser explicitamente destruído com o operador de eliminação.

 

Compreendi porque estava hesitante, as matrizes não podem ser apagadas por eliminação, por isso não as apaguei. Tenho andado a brincar em C, foi por isso que todo o tipo de disparates começaram a entrar na minha cabeça.

 
220Volt:

Compreendi porque estava hesitante, as matrizes não podem ser apagadas por eliminação, por isso não as apaguei. Tenho andado a brincar em C, foi por isso que todo o tipo de disparates começaram a entrar na minha cabeça.

Ahem. Pensei que por"matrizes dinâmicas" quis dizer "objectos dinâmicos" e os seus descritores associados. A julgar desde o início do tópico sobre aulas e descritores.
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 

Erro meu :(

Obrigado.

 
220Volt:

Erro meu :(

Obrigadocf