Bibliotecas: MultiTester - página 26

 
traveller00:

1. Eu mudaria de GetTickCount() para GetTickCount64() em Sleep2. Caso contrário, o estouro ameaça a lógica não muito correta. E isso acontece com muito menos frequência na variante de 64. Em outros trabalhos, talvez valha a pena mudar também.

Lá, mesmo teoricamente, não pode haver ameaça de estouro.

void OnStart()
{
  uint StartTime1 = UINT_MAX - 100;
  uint StartTime2 = UINT_MAX + 100;
  
  Print(StartTime2 - StartTime1); // 200 
}

2) O segundo ArrayResize levanta questões aqui

Muito provavelmente deveria ser

Não, tudo está correto aqui. A documentação está mentindo.

3. e, por fim, alguns tipos diferentes.

Corrigido, obrigado.

 
fxsaber:

Nem mesmo teoricamente pode haver uma ameaça de transbordamento.

Sim, você está certo, eu estava desatento. Nesse caso, realmente não há diferença.

Mas em ThirdPartyTicks -> Web.mqh parece haver uma diferença

    ulong StartTime = ::GetTickCount();
...
    StartTime = ::GetTickCount() - StartTime;

É por isso que eu uso a variante de 64 bits em todos os lugares, por precaução.


fxsaber:

Não, tudo está correto lá. A documentação está errada.

Eu uso o seguinte código

    ushort Shorts[];
    MTTESTER::FileLoad(FileName,Shorts);

Dentro de FileLoad, haverá Size=1000, tamanho de matriz 500 e, após a leitura, Read=Size=1000. E minha variante está correta. Aqui eu me baseei no MSDN e esse comportamento está de acordo com ele.

 
traveller00:

Eu uso o seguinte código

Dentro do FileLoad, o tamanho será Size=1000, o tamanho da matriz será 500 e, após a leitura, Read=Size=1000. E então minha variante está correta. Aqui eu me baseei no MSDN e esse comportamento está de acordo com ele.

Eu tenho 500.

 
fxsaber:

Eu tenho 500.

Isso é estranho, acabei de verificar novamente e está de acordo com o MSDN. Mas se ninguém tiver dúvidas e tudo funcionar, tudo bem, não vejo sentido em entrar em detalhes.

 

Se alguém já tiver feito isso, compartilhe o esquema de organização do trabalho com os resultados de otimizações anteriores enquanto o Testador estiver ocupado com a otimização atual.


Está claro que precisamos copiar os arquivos de opção e os símbolos. Provavelmente, a maneira mais razoável é por meio do mklink.

 
fxsaber:

Se alguém já tiver feito isso, compartilhe o esquema de organização do trabalho com os resultados de otimizações anteriores enquanto o testador está ocupado com a otimização atual.


Está claro que precisamos copiar os opt-files e os símbolos. Provavelmente, a maneira mais razoável é por meio do mklink.

Eu uso um link para a pasta de cache. Só que não com o mklink, mas no gerenciador de arquivos Far Commander. Mas é a mesma coisa.
Você pode organizar o acesso aos arquivos fora da área restrita e com o WinAPI, mas é preferível usar links.
Em princípio, não preciso de mais nada, mas, se necessário, preciso criar links para outras pastas.
Por esquema de organização do trabalho, você se refere a algum outro detalhe?
 
Edgar Akhmadeev:
Por esquema de organização do trabalho, você se refere a outros detalhes?

Observe os arquivos de opção e execute passes únicos a partir deles.

 

Pessoalmente, tento não usar vários terminais em uma pasta. Ele é feito de forma muito peculiar. Se ele cair discretamente, você o descobrirá uma semana depois por acidente.

E assim ele funciona por meio da api do vin.

 
Olá. É possível alterar um dos parâmetros do EA de forma programática e executar um único teste?
 
pivomoe:
Olá. É possível alterar um dos parâmetros do EA de forma programática e executar um único teste?

A biblioteca MTTester permite que você faça absolutamente tudo o que um usuário pode fazer por meio da GUI.