Erros, bugs, perguntas - página 2685

 
Não encontrei qualquer informação sobre isto

testador de estratégia em modo de optimização "Lento (enumeração completa de parâmetros" - a que valor total de passos de optimização muda para optimização genética?

ZS: ficaria grato se houvesse uma metodologia para fazer uma pesquisa completa para que a optimização genética não seja activada
 
O terminal MT4 fecha periodicamente de forma espontânea, não há nada sobre ele no diário de bordo do terminal e nada nos eventos dos ganhos. Como pode ser determinada a causa de tais colisões?
 
Igor Makanu:
ZS: Ficaria grato se houvesse uma metodologia para fazer um overkill completo de modo a que a optimização genética não se faça sentir

Optimização de lotes.

 
O defeito do depurador ME (build 2370) - StepInto (F11) e os pontos de ruptura definidos não funcionam.
O problema é que se a acção StepOver (F10) for aplicada a uma chamada de função pelo menos uma vez, não há maneira de depurar esta função mais tarde.

void Increment(int &n){
   ++n;
};

void test(){
   int n = 0;
   for(int i = 0; i < 100; ++i){
      DebugBreak();
      Increment(n);
   }  
}

void OnStart(){
   test();
}

Passos para a reprodução:
1) Executar o código em modo de depuração;
2) Depois de um ponto de parada ser accionado, executar StepOver (F10) duas vezes;

É isso - agora não há maneira de "entrar" na funçãoIncremento, todos os pontos de quebra definidos manualmente não funcionam, e em vez da operação StepInto (F11) é de facto executada StepOver (F10).


 

Um defeito no depurador ME(build 2370) - após ser accionado umponto de interrupção em vez de continuar a execução do código pressionando (F5), o mesmoponto de interrupçãoé efectivamente accionado novamentesem executar qualquer código.

#include <Generic\ArrayList.mqh>

void OnStart(){
   CArrayList<int> arr;
   for(int i = 0; i < 5; ++i){
      arr.Add(i);
      arr.Add(2*i);
   }
}

Passos de repetição:
1) Definir manualmente
o ponto de quebra para ambas as linhas " arr.Add()";
2) Iniciar a depuração (F5);
3) Utilizar PCM para abrir o ficheiro <Generic\ArrayList.mqh> aninhado num novo separador.
4) Encontrar a linha "if(m_size==ArraySize(m_items))" na função "bool CArrayList::Add(T item)" e definiro ponto de quebra manualmente.
5) Enquanto estiver no separador "
ArrayList.mqh", continuar a executar o código (F5).

Isto
desencadeará o mesmoponto de quebra que antes, sem qualquer execução de código real.

 
Bug MT5 (build 2370) - o ponto de quebra no método de estrutura estática faz com que o terminal MT fique pendurado.
Como resultado, não é de todo possível debugar o códigodo método da estrutura estática:

struct A{
   static void test(){
      DebugBreak();
   }
};

void OnStart(){
   A::test();
}
 
Igor Makanu:
Não encontrei qualquer informação sobre isto

Testador de Estratégia no modo "Lento (optimização da força bruta completa)" - a que valor total de passos de optimização muda para a optimização genética?
 
Andrey Khatimlianskii:

Encontrei esta correspondência, e acho que a li quando aconteceu - o resultado é uma proibição de membros, por isso quis encontrar a fonte original

Testei em modo de pesquisa completa por um parâmetro - os passes são numerados fora de sequência, em geral, pesquisa completa - funciona de acordo com alguma lógica dos programadores, não com o conceito semântico

 
Igor Makanu:

testado em modo de pesquisa completa por um parâmetro - os passes são numerados fora de sequência, em geral pesquisa completa - funciona de acordo com alguma lógica dos programadores, não com o conceito semântico

Assim, as tarefas são distribuídas em pacotes aos agentes.

1-100 para a primeira, 101-200 para a segunda, etc.

E nos resultados aparecem à medida que entram (1, 101, 2, 102, etc.).

Fácil de classificar.

 
Andrey Khatimlianskii:

Assim, as tarefas são distribuídas em pacotes aos agentes.

1-100 para a primeira, 101-200 para a segunda, etc.

E nos resultados aparecem à medida que entram (1, 101, 2, 102, etc.).

Fácil de classificar.

OK, essa é uma boa resposta, é mais ou menos correcta, é pena que a fonte original nunca tenha sido encontrada,

resta saber em que número total de passes será incluída a AG, até agora parece que 100 000 000 de passes, pois as minhas tarefas são suficientes