Arquivo da versão MT. - página 5

 
Roman:

Isto não é uma muleta, mas uma prática recomendada pelos desenvolvedores.
Encontrei esta função na descrição do ciclo de tempo

Ocorreu-me uma idéia: se esta função encerra a execução correta do programa, por que não usá-la para o TesterStop()?
É uma pena que não funcione para o TesterStop(), saberemos disso agora.
Mas é justo perguntar aos desenvolvedores se a funçãoIsStopped() deve funcionar para a função TesterStop()?
Talvez seja um bug?

Mas o principal é que encontramos uma solução para o problema.

Eu não disse que não funciona. Eu disse que o TesterStop() exige que o teste já esteja sendo executado há algum tempo. )))

Talvez depois disso também funcione...
 
Сергей Таболин:

Eu não disse que não funcionava. Eu disse que o TesterStop() exige que o teste já esteja sendo executado há algum tempo. )))

Talvez depois disso também funcione...

Entendi agora.

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

Eu entendo tudo e não preciso de muletas. E eu tive que procurar uma muleta aqui lida para o que.

É possível. Mas não me lembro de ninguém reclamando disso.

Posso ter uma explicação?

//+------------------------------------------------------------------+
double OnTester()
{
   if(tester_stop) return(нужное вам значение);

   остальной код
}

O que é o restante do código? O que este código está executando?

 
Alexey Viktorov:

Posso explicar?

O resto do código, o que é isso? O que neste código é executado?

Pessoalmente, tenho um cálculo de estabilidade de crescimento do balanço em andamento. ))) Como disse antes, vou abrir uma discussão sobre este tópico.

E em geral, qualquer coisa pode ser contada lá.

 
Roman:

Isto não é uma muleta, mas uma prática recomendada pelos desenvolvedores.
Encontrei esta função na descrição do ciclo de tempo

É por isso que tive uma idéia: se esta função verificao fato do término forçado do programa, por que não usá-la para o TesterStop().
É uma pena que não funcione para o TesterStop(), saberemos disso agora.
Mas é justo perguntar aos desenvolvedores se a funçãoIsStopped() deve funcionar para a função TesterStop()?
Talvez seja um bug?

Mas o mais importante é que foi encontrada uma solução para o problema.

Esta função tem a finalidade de terminar tais laços. O encerramento forçado de um programa é o fechamento de uma janela do Expert Advisor ou o fechamento do próprio terminal. Se você iniciar um loop infinito sem verificar a função IsStopped(), o loop remanescente na memória continuará funcionando. O valor retornado por IsStopped() permite quebrar o laço quando o terminal é fechado. Em outros casos é inútil, tanto quanto eu entendo.

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

Pessoalmente, tenho o cálculo da estabilidade do crescimento do balanço acontecendo lá. ))) Como disse antes, vou abrir uma discussão sobre este tópico.

E, em geral, você pode calcular qualquer coisa lá.

Mas o valor devolvido pela OnTester é processado em algum lugar, não é mesmo?

Você pode ler qualquer coisa, mas como e onde usar o valor calculado é outra questão.

 
Alexey Viktorov:

Mas o valor devolvido pela OnTester é processado em algum lugar, não é mesmo?

Você pode ler qualquer coisa, mas como e onde usar o valor calculado é outra questão.

É usado como resultado da otimização...


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

Isto é usado como resultado da otimização...


Isto não é um uso, é uma exibição do resultado da otimização.

 
Alexey Viktorov:

Não é o uso, é exibir o resultado da otimização.

OnTester() calcula este resultado. E uso... Uso-o para avaliar a otimização...

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

OnTester() calcula este resultado. E uso... Uso-o para avaliar a otimização...

Mas a julgar por este pedaço de código

//+------------------------------------------------------------------+
double OnTester()
{
   if(tester_stop) return(нужное вам значение);

   остальной код
}
o valor retornado desta função deve ser processado de alguma forma. De que adianta retornar "menos muitos noves" se não houver reação a ele em outro código?