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

 
Artyom Trishkin:

....

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

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

    Receio não ter entendido.

    Se a MQL_OPTIMIZATION está incluída na MQL_TESTER, por que verificá-la também?

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

    Receio não entender.

    Se a MQL_OPTIMIZATION está incluída na MQL_TESTER, por que verificá-la também?

    Otimização é uma subespécie de testador.
    Mas o testador não é uma subespécie de nada.
     
    Сергей Таболин:

    Exatamente certo. A menos que você seja um testador ou otimista, você não vem aqui de jeito nenhum ))))

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

    é supérfluo?

    Será suficiente

    ?

    if(MQLInfoInteger(MQL_OPTIMIZATION)
    sabemos que estamos trabalhando em um testador, mas não sabemos se é uma única passagem ou uma otimização, então precisamos verificar a bandeira de otimização
     
    Andrey Dik:
    Sabemos que estamos trabalhando no testador, mas não sabemos se é uma única passagem ou otimização, então temos que verificar a bandeira de otimização

    Sim, Andrew, eu entendo isso.

    Mas esta é uma questão geral. Se eu estiver otimizando ou testando, algumas estatísticas estão sendo coletadas para uso no OnTester().

    Portanto, minha pergunta é se é suficiente escreverif(MQLInfoInteger(MQL_TESTER)) ouif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))?

    Se a otimização faz parte do teste, então a verificação do modo de otimização parece ser desnecessária...

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

    Mas esta é uma questão geral. Se eu estiver otimizando ou testando, algumas estatísticas estão sendo coletadas para uso no OnTester().

    Portanto, minha pergunta é se é suficiente escreverif(MQLInfoInteger(MQL_TESTER)) ouif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))?

    Se a otimização faz parte do teste, então a verificação do modo de otimização parece desnecessária...

    Por que complicar a construção?

    Parece que você tem arquivos para o real, para o testador e otimizador.

    Neste caso, o seu:

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

    você poderia escrever desta maneira:

       filename = "ERR_dir\\"+filename + ".";
       if(MQLInfoInteger(MQL_TESTER)) filename = filename + "t";
       if(MQLInfoInteger(MQL_OPTIMIZATION)) filename = filename + "o";
    

    e é isso - todos os seus arquivos serão claramente distinguíveis por testador, otimizador e real

     
    Andrey F. Zelinsky:

    por que complicar o projeto?

    Parece que você tem arquivos para o real, para o testador e para o o otimista.

    Nesse caso, eles são seus:

    você poderia escrever desta maneira:

    e é isso - todos os seus arquivos serão distinguíveis por testador, otimizador e real

    double x;
    int OnInit()
    {
       x = 0.0;
    }
    void OnTick()
    {
       ....
       // if new Bar
       if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER)) x += 1.618;
       ....
    }
    double OnTester()
    {
       return(x * 3.14159);
    }
    

    Esta verificação é realmente necessária?

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

    Este teste é necessário?

    você tem que começar com -- qual é a finalidade da distinção entre testador, otimizador e real em seu sistema?

    por que você não pode passar sem esses cheques?

     
    Andrey F. Zelinsky:

    você tem que começar com -- qual é a finalidade da distinção entre testador, otimizador e real em seu sistema?

    Por que você não pode passar sem eles?

    Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

    O que diabos está acontecendo?

    Sergey Tabolin, 2020.05.20 15:11

    Sim, Andrey, eu entendo isso.

    Mas é uma questão geral. Se estou otimizando ou testando, recolho algumas estatísticas para usar no OnTester().

    Portanto, minha pergunta é se é suficiente escreverif(MQLInfoInteger(MQL_TESTER)) ouif(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))?

    Se a otimização faz parte do teste, então a verificação do modo de otimização parece ser desnecessária...


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

    Em seguida, basta verificar o teste.
     
    Сергей Таболин:

    Por que você está perguntando a alguém?

    Verificar os valoresMQLInfoInteger(MQL_TESTER) eMQLInfoInteger(MQL_OPTIMIZATION) no testador e otimizador

    e você vai ver por si mesmo.

    Razão: