Erros, bugs, perguntas - página 2150

 
Vladislav Andruschenko:

Terminal 1755

Ao trabalhar com o Expert Advisor e compilar - a sua versão actualizada aparece no gráfico - está tudo bem

mas no testador selecciono esta EA e após a compilação é seleccionada outra (anterior) EA.

Depois do reinício - tudo é normal.

Um problema antigo.

 

Alguns tester_file-bugs. Reproduzir passo a passo

  1. Deixar um agente local de trabalho e limpar o Terminal Sandbox - MQL5\Files\*.*
  2. Compilar EA
    #property tester_file __FILE__
    
    sinput uint Range = 100; // Входной параметр для Оптимизации
    
    #define  SETRANGE(A, START, STEP, END) ParameterSetRange(#A, true, A, START, STEP, END)
    
    void OnTesterInit()
    {
      SETRANGE(Range, 0, 1, Range);
      
      const int handle = FileOpen(__FILE__, FILE_WRITE | FILE_BIN );
      
      // Создаем файл на 4 байта
      if (handle != INVALID_HANDLE)
      {
        FileWriteInteger(handle, 0);
        
        FileClose(handle);
      }
    }
    
    void OnTesterDeinit() { ChartClose(); }
    
    #define  TOSTRING(A) #A + " = " + (string)(A) + " "
    
    void OnTesterPass()
    {
      ulong Pass;
      string Name;
      long ID;
      double dOnTester;
      uchar Data[];
    
      while (FrameNext(Pass, Name, ID, dOnTester, Data))
        Print(TOSTRING(Pass) + TOSTRING(ID)); // Распечатываем размер файла на Агенте
    
      return;
    }
    
    double OnTester()
    {
      const int handle = FileOpen(__FILE__, FILE_READ | FILE_WRITE | FILE_BIN );
    
      const int i = (int)((handle != INVALID_HANDLE) ? FileSize(handle) : -1);
      
      // Делаем файл 4 байта, делаем - 8.
      if ((handle != INVALID_HANDLE) && (FileSize(handle) == INT_VALUE))
      {
        FileSeek(handle, 0, SEEK_END);
        FileWriteInteger(handle, 0);
              
        FileClose(handle);
      }
    
      uchar Data[];    
      FrameAdd(NULL, i, 0, Data); // Передаем размер файла до изменений.
      
      return(0);
    }

  3. Ao fazê-lo, aparecerá uma mensagem no ficheiro de registo do Testador a dizer que o ficheiro tester_file ainda não existe
    2018.02.28 08:37:29.574 Moving Average  tester_file 'Moving Average.mq5' is not exist
    2018.02.28 08:37:29.574 Moving Average  tester_file 'Moving Average.mq5' is not exist

  4. Executar o Expert Advisor através dos preços de abertura no Testador de Estratégia em modo de Optimização da Força Bruta Completa. Veremos no diário de bordo do Testador
    2018.02.28 21:20:24.424 Statistics      optimization done in 0 minutes 03 seconds
    2018.02.28 21:20:24.424 Statistics      local 101 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

  5. Reinicie imediatamente esta mesma Optimização, premindo "Start". Vamos ficar mais lentos Otimizar por 30 vezes - bug!
    2018.02.28 21:23:02.219 Statistics      optimization done in 1 minutes 06 seconds
    2018.02.28 21:23:02.219 Statistics      local 101 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


  6. Os resultados do consultor de enquadramento mostrarão que o ficheiro existente não é transferido, uma vez que o processo de compilação foi levado a cabo sem ele (ver passo 3). Bug ou um insecto?
  7. Recompilar o Consultor Especialista. Neste caso, não receberemos mensagens que são mostradas na p. 3, o que é correcto.
  8. Reiniciar a Optimização. Frame-Advisor mostrará que o ficheiro tester_file foi transferido para o Agente
    2018.02.28 21:28:33.449 Moving Average (EURUSD,M1)      Pass = 0 ID = 4 
    2018.02.28 21:28:33.472 Moving Average (EURUSD,M1)      Pass = 1 ID = 8 
    2018.02.28 21:28:33.495 Moving Average (EURUSD,M1)      Pass = 2 ID = 8 
    2018.02.28 21:28:33.519 Moving Average (EURUSD,M1)      Pass = 3 ID = 8 

  9. Realizar de novo a optimização. Vamos abrandar, como no passo 4. Mas no Frame-mode, vamos ver que o ficheiro tester_file não foi passado para o Optimizer no segundo arranque - bug!
    2018.02.28 21:28:43.727 Moving Average (EURUSD,M1)      Pass = 0 ID = 8 
    2018.02.28 21:28:43.797 Moving Average (EURUSD,M1)      Pass = 1 ID = 8 
    2018.02.28 21:28:43.834 Moving Average (EURUSD,M1)      Pass = 2 ID = 8 
    2018.02.28 21:28:43.864 Moving Average (EURUSD,M1)      Pass = 3 ID = 8 


  10. Iremos executar a terceira Optimização e obter os resultados na etapa 8.
  11. Em quarto lugar, obtemos resultados no passo 9.
  12. Assim, cada execução estranha da Optimização dá-lhe o resultado do passo 8, a optimização mesmo numerada dá-lhe o resultado do passo 9.

O que a EA faz. No modo frame, no OnTesterInit, cria um ficheiro de 4 bytes e envia-o através do mecanismo tester_file para o Agente. O Agente abre-o e se vir que o tamanho do ficheiro é de 4 bytes, irá anexá-lo a 8 bytes. O próprio Agente passa o tamanho original do ficheiro em bytes através da moldura. Assim, é verificado que o ficheiro é transferido na primeira passagem do Optimizer, e outras passagens trabalham com o ficheiro, que se encontra temporariamente na Caixa de Areia do próprio Agente.

Em geral, conseguimos reproduzir alguns bugs.

 

esta pergunta pode já ter sido feita, mas mesmo assim:

é possível chamar a janela do parâmetro indicador em MQL5?

 

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

Discussão sobre "Consultor comercial multiplataforma: Introdução"

fxsaber, 2016.08.17 16:51

Cortar para o exemplo StringConcatenate. É difícil compreender as pessoas que utilizam esta função em MT4/5. Não só é incómodo, como nem sequer é claro. A concatenação de cordas foi SEMPRE alcançada em ambas as plataformas através do operador +. Assim, a utilização de StringConcatenate para strings é comparável à utilização da função "NumberSummary" para obter a soma dos números. Absurdo, em suma.

Não só é absurdo, como também não é uma plataforma cruzada.

 
Andrii Djola:

esta pergunta pode já ter sido feita, mas mesmo assim:

é possível chamar a janela do parâmetro indicador em MQL5?

Tanto quanto sei, não existe tal função na MQL.
Mas através do WinAPI pode abrir a lista de todos os indicadores, procurar através da árvore de indicadores e encontrar o indicador certo...

 
Andrii Djola:

talvez esta questão já tenha sido colocada, mas mesmo assim:

é possível chamar a janela do parâmetro indicador em MQL5?

O Service Desk prometeu pensar em tal função.

 

Porque é que isto está a acontecer?

2018.03.01 06:54:04.342 Tester versão debug de "MQL5\Experts\MyExpert.ex5" pode ser optimizada apenas em agentes locais, sem Nuvem, sem Quinta

Como é que o arranjo?


 
Nexxtor:

Porque é que isto está a acontecer?

2018.03.01 06:54:04.342 Tester versão debug de "MQL5\Experts\MyExpert.ex5" pode ser optimizada apenas em agentes locais, sem Nuvem, sem Quinta

Como é que o arranjo?


Compilar primeiro, depois executar a optimização.

 
Na pasta "Bases\MetaQuotes-Demo\history\" apareceu uma pasta com 2018.hcc relacionada com o símbolo personalizado. Bug.
 

Na continuação desta grande característica do Testador. Running Optimization, eu recebo isto


Core1 log

KE      0       14:23:25.855    Startup MetaTester 5 x64 build 1755 (18 Jan 2018)
KP      0       14:23:25.862    Server  MetaTester 5 started on 127.0.0.1:3000
OJ      0       14:23:25.862    Startup initialization finished
JQ      0       14:23:25.871    127.0.0.1       login (build 1755)
HG      0       14:23:38.760    Network 38520 bytes of account info loaded
JP      0       14:23:38.760    Network 1482 bytes of tester parameters loaded
QG      0       14:23:38.760    Network 2236 bytes of input parameters loaded
OP      0       14:23:38.771    Network 4605 bytes of symbols list loaded
NK      0       14:23:38.771    Tester  expert file added: Experts\fxsaber\Test.ex5. 115516 bytes loaded
NM      0       14:23:38.771    Network 1368 bytes of optimized inputs info loaded
CH      0       14:23:38.774    Tester  successfully initialized
HL      0       14:23:38.774    Network 118 Kb of total initialization data received
JF      0       14:23:38.775    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
KL      0       14:23:38.775    Tester  optimization pass 0 started (batch of 30 tasks)


Registo Core2.

CQ      0       14:25:27.983    Startup MetaTester 5 x64 build 1755 (18 Jan 2018)
MD      0       14:25:27.988    Server  MetaTester 5 started on 127.0.0.1:3001
FO      0       14:25:27.989    Startup initialization finished
FM      0       14:25:29.021    127.0.0.1       login (build 1755)
HK      0       14:25:29.026    Network 38520 bytes of account info loaded
IL      0       14:25:29.026    Network 1482 bytes of tester parameters loaded
RK      0       14:25:29.026    Network 2236 bytes of input parameters loaded
QL      0       14:25:29.029    Network 4605 bytes of symbols list loaded
PG      0       14:25:29.030    Tester  expert file added: Experts\fxsaber\Test.ex5. 115516 bytes loaded
DI      0       14:25:29.030    Network 1368 bytes of optimized inputs info loaded
HL      0       14:25:29.032    Tester  successfully initialized
GP      0       14:25:29.032    Network 118 Kb of total initialization data received
JR      0       14:25:29.032    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
KI      0       14:25:29.033    Tester  optimization pass 180 started (batch of 30 tasks)


Todos os agentes estavam Prontos antes do início. Não havia visualizador. Core2 (e Core2 - ver imagem do ecrã) começou dois minutos após o início. Vamos resolver o problema!