Erros, bugs, perguntas - página 477

 
stringo:

No seu caso, necessita de utilizar matrizes dinâmicas

Obrigado! Funciona.

 

Corrigir, se não mesmo difícil, o erro no testador.

As EAs ficam cegas ao processar uma carraça. É impossível actualizar a informação sobre um símbolo durante o processamento de uma carraça.

No comércio normal, isto não acontece e todos os dados são actualizados.

https://www.mql5.com/ru/forum/4270/page2#comment_87059

Sem esta correcção, é impossível processar correctamente os erros comerciais.

RefreshRates() внутри OnTick()
RefreshRates() внутри OnTick()
  • www.mql5.com
Если это невозможно, то как проще всего реализовать обработку ошибок торговых операций с проверкой котировок на обновление?
 

Quando, durante a optimização, todas as transacções estão no lado positivo, o ficheiro de relatório xml é torto.

... Por favor, corrijam-na.

 

Ou não percebo alguma coisa, ou esqueceu-se de fazer FileClear() funcionar

Agora, segundo sei, para limpar um ficheiro tem de 1 fechar, 2 apagar, 3 abrir. - Isto é muito inconveniente.

 
vyv:

Ou não percebo alguma coisa, ou esqueceu-se de fazer FileClear() funcionar

Agora, segundo sei, para limpar um ficheiro tem de 1 fechar, 2 apagar, 3 abrir. - Isto é muito inconveniente.

Porque é que precisa de limpar um ficheiro? Move-se o ponteiro do ficheiro para 0 e começa-se a escrever.
 
stringo:
Porquê limpar o ficheiro? Mover o ponteiro do ficheiro para 0 e começar a escrever.
Se houver 5 linhas no ficheiro. Em vez disso, quero escrever 3. Movo o ponteiro para o início do ficheiro, escrevo 3.... E atrás deles há mais 2... Assim, há 5 linhas no ficheiro em vez de 3 - escudo...
 
vyv:
Se houver 5 linhas no ficheiro. Quero sobreescrevê-los com 3. Movo o ponteiro para o início do ficheiro, escrevo 3.... E há mais 2 atrás deles... Portanto, há 5 linhas no ficheiro em vez de 3 - um escudo...

Abra um ficheiro com a bandeira FILE_WRITE apenas para escrita e escreva o que quiser. Qualquer coisa antes disso será apagada.

Existem algumas peculiaridades de trabalhar com bandeiras de leitura e de escrita:

  • Se FILE_READ for especificado - é feita uma tentativa de abrir um ficheiro que já existe. Se o ficheiro não existir, o ficheiro não pode ser aberto, não é criado um novo ficheiro.
  • Se FILE_READ|FILE_WRITE - um novo ficheiro é criado se não houver ficheiro com esse nome.
  • Se FILE_WRITE - o ficheiro é recriado com tamanho zero.
 

Parece que a função FileChangeSize é necessária

 
O WinAPI tem a função SetEndOfFile
 
stringo:

A função FileChangeSize parece ser necessária

E esqueceram-se também das funções de renomeamento de ficheiro/pasta.

// OK, concordo, pode renomear com FileMove(....), mas para pastas precisamos também de um análogo. :)