Mas o que está acontecendo? - página 7

 

Se SHARE_READ resolveu o problema, então você estava abrindo exatamente o mesmo arquivo a partir de cópias paralelas da EA.

E sua afirmação de "não compartilhar" foi falsa, como eu assinalei acima.

Em resumo, é assustador para você.

 
Renat Fatkhullin:

Se SHARE_READ resolveu o problema, então você estava abrindo exatamente o mesmo arquivo a partir de cópias paralelas da EA.

E sua afirmação de "não compartilhar" foi falsa, como eu assinalei acima.

Em resumo, é assustador para você.

Eu não o entendi muito bem.

Cópias paralelas do EA apareceram no otimizador. É lógico esperar que o otimizador também faça cópias paralelas dos arquivos que estes EAs acessam.

Meu consultor especializado em si mesmo não precisa a priori de SHARE_READ. Então, aqui temos o quê? Se o Expert Advisor lida com um arquivo, ele tem que "atrapalhar" especificamente para o otimizador.

Vou levar isso em consideração, mas acho que isso não está certo. )))

 
Сергей Таболин:

É lógico esperar que o otimizador também faça cópias paralelas dos arquivos a que esses especialistas se referem.
É assustador para você.
 
Renat Fatkhullin:
Assustador para você.

Vamos, ))))

Basta escrever na documentação "quando um EA acessa um arquivo,SHARE_READ é obrigatório para otimizá-lo"!

 
Andrey Dik:

Você acha que uma variável EA global retém seu valor das execuções anteriores do otimizador e é transportada para as próximas?

Sim,Andrey F. Zelinsky, ele disse isso corretamente. Ao otimizar, tudo que é inicializado globalmente (não no OnInit) é inicializado apenas uma vez.

p/s// A razão do problema da TC é engraçada - Redes Neurais, IA e assim por diante... e trabalhar com arquivos não é importante ))

 
Aleksey Mavrin:

Sim, Andrey F. Zelinsky, ele disse bem. Durante a otimização tudo o que é inicializado globalmente (não no OnInit) é inicializado apenas uma vez.

p/s// A causa do problema da TC é engraçada - Redes Neurais, IA e assim por diante... e o trabalho com arquivos não é importante ))

Não é uma coisa ruim quando se é um homem velho.

 

Querida, apenas uma palavra, porque ninguém para quem trabalhar com arquivos é importante, até que eu o imprima, também não sugeriu que este poderia ser o problema ;) :) De qualquer forma, isso está resolvido.

Agora uma pergunta distraída: qual é a diferença entre as seguintes linhas?

   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_OPTIMIZATION) ? ".opt" : ".tst");
   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_TESTER) ? ".tst" : ".opt");

E, se possível, uma explicação - por quê?

 

se o arquivo for escrito para COMMON, é necessário ter SHARE_READ e um controle de raça de escrita bastante complicado. É meio decente não atirar o calcanhar em público.

Em geral, é uma boa prática que os conselheiros não escrevam nada em comum. Eles podem lê-lo, mas é escrito ou copiado lá pelo comerciante que é pessoalmente responsável por isso. Para todos os Conselheiros Especialistas em todos os terminais, estas são palavras dadas de cima.

Se um arquivo é escrito em um diretório comum sem SHARE_XXX, mas o otimizador gera erros de acesso compartilhado, este é um bug dos desenvolvedores de terminais
 
Você pode testar sem otimização.
 
Сергей Таболин:

Querida, apenas uma palavra, porque ninguém para quem trabalhar com arquivos é importante, até que eu o imprima, também não sugeriu que este poderia ser o problema ;) :) De qualquer forma, isso está resolvido.

Agora uma pergunta distraída: qual é a diferença entre as seguintes linhas?

E, se você puder explicar - por quê?


no segundo caso, sempre dará .tst