Erros, bugs, perguntas - página 2422

 

bild 2009

Os dados recebidos das TFs mais altas no gráfico em linha diferem dos dados recebidos no testador. Este bug torna impossível testar correctamente os Expert Advisors utilizando dados de TFs superiores.

Reproduziu exemplos mínimos no anexo, o guião para o gráfico e o consultor especializado para o testador escreve os dados num ficheiro para posterior comparação.

A imagem do ecrã dos dois ficheiros correspondentes mostra diferenças significativas:

bug

Arquivos anexados:
 
Andrey Dik:

bild 2009

Os dados recebidos das TFs mais altas no gráfico em linha diferem dos dados recebidos no testador. Este bug torna impossível testar correctamente os Expert Advisors utilizando dados de TFs superiores.

Reproduziu exemplos mínimos no anexo, o guião para o gráfico e o consultor especializado para o testador escreve os dados num ficheiro para posterior comparação.

A imagem do ecrã dos dois ficheiros correspondentes mostra diferenças significativas:

E, sim, este bug pode ser evitado através da construção independente de TFs mais elevadas a partir do histórico do tick, mas isso não significa que se possa ignorar o funcionamento incorrecto das funções i(o,h,l,c), iOpen, etc. no testador.

 
Andrey Dik:

Já executaram os meus códigos? Não goste dos meus testes, escreva os seus próprios testes, "correctamente". Quando tiver feito um teste para o bug que exprimiu, informe-o aqui. Não quer ter o trabalho de verificar? - O meu relatório de bug não é para si, é para programadores.
Tenho utilizado o MT5 desde o teste beta da plataforma, e não vos compete dar-me lições.

Não há necessidade de executar os seus códigos. Não compreende realmente o problema?

O guião lê os estados de barra para hoje. O Expert Advisor lê os estados da barra a partir do tempo de teste actual.

 
Slava:

Não há necessidade de executar os seus códigos. Não compreende realmente o problema?

O guião lê a barra afirma a partir de hoje. O Expert Advisor lê os estados da barra a partir do tempo de teste actual.

Slava, sob a pressão da vossa autoridade hesitei nas minhas acções... Mas só por um momento porque me lembrei que estava a verificar o momento de que me falaram, mostrando o tempo de TFs mais altas juntamente com os seus preços.

No entanto, especialmente para si, fi-lo - agora produz numa só linha tudo o que precisa para ver o problema.... Não quer dizer que o iTime devolve o tempo correctamente, mas os preços iOpen, iHigh, iLow, iClose - incorrectos e isto é normal?

Por favor, preste também uma atenção especial à linha:

int bar = iBarShift (NULL, tf, time, false);

na função relevante, barra é um índice na matriz, que é obtido com base no tempo, quer seja solicitado para hoje, ontem, ou anteontem, o índice de barras é devolvido a partir do tempo solicitado nos parâmetros da função.

Os exemplos em anexo mostram o tempo dos TFs, recomendo vivamente que ainda os execute e se certifique de que tem o problema, em vez de ouvir os transeuntes aleatórios, que não se preocupam em olhar para o problema, olhar para o código e executá-lo.

Não compreendo a posição da administração... Queria mostrar o problema, queria o melhor, mas acontece como sempre...

Arquivos anexados:
 
Pavel Nikiforov:

Deparei-me com um tal problema com o testador: a primeira vez que pressionamos começamos todo o processo corre bem, pressionamos imediatamente a seguir - nada, nenhum erro ou teste. O engraçado é que depois de esperar alguns minutos, o provador volta a trabalhar, mas novamente por uma vez.

Se executar a optimização num certo número de execuções, isso dá origem a

EO 2 15:51:28.514 Core 1 passe genético (0, 0) testado com erro "algum erro depois de terminado o passe" às 0:00:00.052

PS 2 15:51:28.615 Core 1 passe genético (0, 1) testado com erro "tarefa rejeitada pelo agente testador" em 0:00:00.000

Tal magia apenas com uma EA, provavelmente o problema com ela e novas actualizações, mas onde procurá-la não é claro, antes de tudo estar a funcionar (dois meses sem lhe tocar).

Em geral, descobri-o. Se alguém está interessado, foi o Sleep(5000); não importa quantos milissegundos se pode usar um. Por outras palavras, Sleep() não deve afectar os testes e ao mesmo tempo "joga" carraças geradas durante o tempo especificado. Até agora não encontrei nenhuma ligação entre o Sleep() e um código específico do Expert Advisor. Este problema não existe noutras dívidas mas ainda não aconteceu antes e se encontrar problemas semelhantes deve prestar atenção a ele.

 
Andrey Dik:

Slava, sob a pressão da vossa autoridade, hesitava nas minhas acções. Mas só por um momento, porque me lembrei que estava a verificar o ponto que mencionou, exibindo também o tempo dos TFs mais antigos juntamente com os seus preços.

No entanto, especialmente para si, fi-lo - agora produz numa só linha tudo o que precisa para ver o problema.... Não quer dizer que o iTime devolve o tempo correctamente, mas os preços iOpen, iHigh, iLow, iClose - incorrectos e isto é normal?

Por favor, preste também uma atenção especial à linha:

na função relevante, barra é um índice na matriz, que é obtido com base no tempo, quer seja solicitado para hoje, ontem, ou anteontem, o índice de barras é devolvido a partir do tempo solicitado nos parâmetros da função.

Os exemplos em anexo mostram o tempo dos TFs, recomendo vivamente que ainda os execute e se certifique de que tem o problema, em vez de ouvir os transeuntes aleatórios, que não se preocupam em olhar para o problema, olhar para o código e executá-lo.

Não compreendo a posição da administração... Queria mostrar-vos que havia um problema, queria o melhor mas acabou sempre por acontecer da mesma forma...

Tentei usar CopyRates () no Expert Advisor, o resultado foi o mesmo que no caso de i(), o tempo coincide, mas os preços não.

 

No exemplo seguinte, ocorre um erro ao tentar copiar um objecto com um campo constante, apesar da presença do operador sobrecarregado =. E o texto da mensagem de erro nem sequer corresponde à causa do erro, porque protegido não tem nada a ver com o mesmo.

class A
{
};

class B
{
  A _data;
 public:
  const A*const Data;
  
  B() : Data(&_data) { }
  
  void operator=(const B &other) { _data= other._data; }
};

struct  C
{
  B b;
};

void OnInit()
{
  B b;
  b=b; // Так работает
  C c;
  c=c; // '=' - not allowed for objects with protected members or inheritance
}
 
Como posso descarregar o código do ME russo a partir da língua inglesa KB?
 
Andrey Dik:

Slava, sob a pressão da vossa autoridade, hesitava nas minhas acções. Mas só por um momento, porque me lembrei que estava a verificar o ponto que mencionou, exibindo também o tempo dos TFs mais antigos juntamente com os seus preços.

No entanto, especialmente para si, fi-lo - agora produz numa só linha tudo o que precisa para ver o problema.... Não quer dizer que o iTime devolve o tempo correctamente, mas os preços iOpen, iHigh, iLow, iClose - incorrectos e isto é normal?

Por favor, preste também uma atenção especial à linha:

na função relevante, barra é um índice na matriz, que é obtido com base no tempo, quer seja solicitado para hoje, ontem, ou anteontem, o índice de barras é devolvido a partir do tempo solicitado nos parâmetros da função.

Os exemplos em anexo mostram o tempo dos TFs, recomendo vivamente que ainda os execute e se certifique de que tem o problema, em vez de ouvir os transeuntes aleatórios, que não se preocupam em olhar para o problema, olhar para o código e executá-lo.

Não compreendo a posição da administração... Queria mostrar o problema, queria o melhor, mas acontece como sempre...

Ninguém está interessado nisso. O principal é o Mercado e os sinais funcionam.
 

Boa tarde.

Construir 2007. O problema é o seguinte. Estou a correr no testador de estratégia um EA sobre um futuro (não colado) com visualização. Obtive o seguinte resultado

Agora retiro a caixa de verificação "Visualização" e obtenho resultados diferentes

Aceito outros períodos, incluindo instrumentos. Tanto os parâmetros de lucro como o número de negócios são diferentes. Além disso, descobri, após uma comparação detalhada de acordos, que alguns acordos são impossíveis sem visualização ao nível da lógica do conselheiro. Assim, os dados correctos só podem ser obtidos utilizando a visualização.

Camaradas membros do Fórum e desenvolvedores, o que é e como lidar com ele? É dispendioso testar o tempo todo com visualização em grandes períodos, porque o processo demora mais tempo do que sem a visualização.