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

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

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, explicações - por quê?

Modo de otimização

Tester-mode

O modo de teste inclui o modo de otimização, mas não o inverso.

Suas duas linhas estão erradas.

A primeira:

Se o modo de otimização for .opt, a extensão é .tst, caso contrário a extensão é .tst. Mas em caso de "caso contrário", pode não ser um testador.

Segundo:

Se o modo de teste, a extensão é .tst, caso contrário, a extensão é .opt. Mas no caso de "caso contrário", pode não ser um testador.

Certo:

  • Se modo testador.
    • Se o modo de otimização, a extensão .opt
      • caso contrário, a extensão .tst
 
Artyom Trishkin:

Modo de otimização

Modo testador

O modo testador inclui o modo de otimização, mas não o contrário.

Suas duas linhas estão ambas erradas.

A primeira:

Se o modo de otimização for .opt, a extensão é .tst, caso contrário a extensão é .tst. Mas em caso de "caso contrário", pode não ser um testador.

Segundo:

Se o modo de teste, a extensão é .tst, caso contrário, a extensão é .opt. Mas no caso de "caso contrário", pode não ser um testador.

Correto:

  • Se modo testador.
    • Se o modo de otimização, a extensão .opt
      • caso contrário, a extensão .tst

isto é suficiente.

A menos, é claro, que você queira verificar se a EA funciona em modo gráfico ou de teste.

 
Andrey Dik:

isso é o suficiente.

E se não for um testador, o que é?

 
Artyom Trishkin:

E se não for um testador, então o quê?

não tem a tarefa de verificar no testador ou em uma execução de gráfico, mas apenas para determinar se é uma simples execução no histórico ou como parte de um pacote de otimização, se eu entendo TC corretamente

 
Andrey Dik:

não tem a tarefa de verificar no testador ou na execução do gráfico, mas apenas determinar se é uma simples execução no histórico ou como parte de um pacote de otimização, se eu entendo TC corretamente

Exatamente certo. Se não é um testador ou otimizador, não vem aqui de forma alguma ))))

Artem, se eu entendi corretamente, meu projeto

if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))

é supérfluo?

Será suficiente

if(MQLInfoInteger(MQL_TESTER))

?

 
Maxim Kuznetsov:

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 normal sem SHARE_XXX, mas o otimizador gera erros de acesso compartilhado, então é um bug dos desenvolvedores de terminais

Portanto, o Consultor Especialista não escreve nada ali, apenas lê.


P.S. Além disso, é o único que o lê (até agora).
 
Сергей Таболин:

Mas o próprio Expert Advisor não escreve nada ali, apenas o lê.


P.S. Além disso, lê-se apenas ele (a única cópia até agora).

Se em COMMON, SHARE_READ é obrigatório.

como na piada - "você não consegue entender, você tem que lembrar" :-)

PS/ quando em testador - lê não só de (separado por grupo) comum, mas também de todas as cópias sendo testadas em paralelo. A propósito, este também é um bug em potencial - parece que é possível enganar o testador e desenhar um graal

 
Maxim Kuznetsov:

se em COMMON, SHARE_READ é obrigatório.

Bem, não é obrigatório.

O multiacesso não é tão bom quanto você gostaria que fosse.

 
Andrey F. Zelinsky:

Bem, não tem que ser.

O acesso múltiplo não é tudo o que está rachado para ser.

Espero que não haja problemas com o multiacesso no modo somente leitura? Ou será que existe?

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

Exatamente certo. Se não for um testador ou otimista, você não entra aqui de jeito nenhum ))))

Artem, se eu entendi corretamente, então minha construção

é supérfluo?

Será suficiente

?

Não. Pelo contrário.
Bem, isso se você precisar de meias-medidas.
Razão: