Perguntas de um "boneco" - página 229

 
Rosh:

A propriedade #propriedade do testador_de ficheiros destina-se precisamente a evitar colocar qualquer coisa à mão em qualquer lugar.

tester_file

corda

Nome do ficheiro para o testador, especificando a sua extensão e incluído entre aspas duplas (como uma cadeia constante). O ficheiro especificado será passado ao tesoureiro para trabalho. Os ficheiros de entrada para testes, se necessário, devem ser sempre especificados


Se algum ficheiro datafile .csv for necessário para a operação do programa, e estiver localizado em terminal_directory\MQL5\Files, o ficheiro será automaticamente movido pelo testador paratesting_agent_directory\MQL5\Files (é para isto que #property tester_file datafile.csv deve ser especificado).

O mesmo se aplica quando um ficheiro de teste está localizado na pasta terminal comum?

Se eu acrescentar linha:

#property tester_file "Test.txt"

...recebo um erro como este:


//---

Quero transferir o ficheiro para a nuvem a partir da pasta partilhada do terminal. Como é que faço isso?

 
tol64:

O mesmo se aplica quando o ficheiro de teste está na pasta partilhada do terminal?

Se eu acrescentar a linha:

...recebo um erro como este:


//---

Quero transferir o ficheiro para a nuvem a partir da pasta partilhada do terminal. Como é que faço isso?

Penso que isto já foi discutido e descobri que, por enquanto, os ficheiros não podem ser transferidos para a nuvem.
 
lazarev-d-m:


Penso que isto já foi discutido e descobri que, por enquanto, os ficheiros não podem ser transferidos para a nuvem.

Necessita então de uma ligação para uma discussão sobre esta questão. Onde é que isto tem sido discutido?

Eu próprio estou a contar com algumas discussões passadas e com o artigo: A MQL5 Cloud Network acelera os cálculos, mas algo não funciona.

Carrega-se no botão "Start" e o processo de optimização é iniciado. O terminal prepara a tarefa para os agentes de ensaio, o que inclui:

  • Tenho um ficheiro compilado do meu Expert Advisor como EX5;
  • indicadores e bibliotecas EX5 ligadas por directivas #indicador_de_propriedade e # biblioteca_de_propriedade (as DLLs são definitivamente proibidas na nuvem)
  • ficheiros de dados necessários para testes, que são ligados utilizando a directiva #property tester_file;
  • condições de teste/optimização (nome de segurança, intervalo de teste, modo de simulação, etc.)
  • ambiente comercial (propriedades dos símbolos, condições comerciais, etc.)
  • um conjunto de parâmetros do Expert Advisor, que formam todo o conjunto de passes necessários - tarefas.

O terminal MetaTrader 5 comunica com os nós da Rede Nuvem MQL5 e dá a cada nó um lote separado de tarefas para execução de passagens específicas. Cada nó é na realidade um proxy, pois recebe uma tarefa e um pacote de tarefas (single passes), e depois começa a distribuir essas tarefas aos agentes a ele ligados. Neste caso, o próprio Expert Advisor, indicador, biblioteca e ficheiros de dados não são guardados nos discos rígidos dos servidores da MQL5 Cloud Network.

//---

Por agora mudei o ficheiro de optimização para a pasta local do terminal. O erro acima não ocorre neste caso. Os testes em todos os modos e optimização estão a decorrer normalmente, mas ao tentar permitir a optimização na nuvem, o registo preenche-se com mensagens como estas:

//---

E, ocasionalmente, os resultados da optimização são zero. Uma espera bastante longa (cerca de dez minutos), mas nada acontece.

//---

Finalmente descobriu que para muitos caracteres a optimização na nuvem "não está disponível". (EA é multi-moeda). Tentei alterar a lista de símbolos manualmente e descobri que se adicionar estes símbolos, a optimização não começa (de 2010 até ao dia actual):

NZDUSD,GBPUSD,EURJPY,EURGBP

Assim que os retirei da lista, tudo começa a funcionar. Mas regozijei-me demasiado cedo. Assim que aumento a quantidade de história, vejo novamente a mesma situação (resultados zero). O meu Expert Advisor está a usar tanta memória:

//---

Onde procurar, o que fazer?

 
tol64:

Necessita então de uma ligação para uma discussão sobre esta questão. Onde é que isto tem sido discutido?

Eu próprio estou a contar com algumas discussões passadas e com o artigo: A MQL5 Cloud Network acelera os cálculos, mas algo não funciona.

//---

Por agora mudei o ficheiro de optimização para a pasta local do terminal. O erro acima não ocorre neste caso. Os testes em todos os modos e a optimização correm bem, mas quando tento permitir a optimização na nuvem, o registo preenche-se com mensagens como estas:

//---

E, ocasionalmente, os resultados da optimização são zero. Uma espera bastante longa (cerca de dez minutos), mas nada acontece.

//---

Finalmente descobriu que para muitos caracteres a optimização na nuvem "não está disponível". (EA é multi-moeda). Tentei alterar a lista de símbolos manualmente e descobri que se adicionar estes símbolos, a optimização não começa (de 2010 até ao dia actual):

NZDUSD,GBPUSD,EURJPY,EURGBP

Assim que os retirei da lista, tudo começa a funcionar. Mas regozijei-me demasiado cedo. Assim que aumento a quantidade de história, vejo novamente a mesma situação (resultados zero). O Expert Advisor utiliza tanta memória:

//---

Onde procurar, o que fazer?

Compreendo correctamente que consegue de alguma forma enviar o ficheiro terminal e as pastas para outros computadores para utilização no trabalho da EA?
 
lazarev-d-m:
Compreendo correctamente que consegue de alguma forma enviar o ficheiro terminal e as pastas para outros computadores para utilização no trabalho da EA?
Sim, se o ficheiro não estiver na pasta partilhada do terminal, pode ser utilizado na nuvem.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:

... Os testes em todos os modos e a optimização correm bem, mas ao tentar permitir a optimização na nuvem, o registo preenche-se com mensagens como esta:

...

Um erro de envio de histórico pisca no registo: erro de envio de histórico

Há algo de errado com a história. O que devo fazer neste caso? Quero optimizar parâmetros a partir do ano 2000 por múltiplos caracteres.

 
lazarev-d-m:

Pegue a declaração variável por detrás da função OnInit e atribua um valor bool - tudo funcionou para mim no testador e na depuração de uma só vez

Dá frequentemente tais conselhos "úteis" nesta secção? E se eu fosse um principiante, ele procuraria um problema meio ano depois deste conselho :)

O tipo bool destina-se ao armazenamento de valores lógicos verdadeiros ou falsos, que representam numericamente 1 ou 0 respectivamente.

Significa que se faz deliberadamente uma variável 0 ou 1 e depois compará-la com um número negativo e concluir que tudo funciona.

A questão é porque é que este código se recusa a trabalhar no testador:

int OnInit()
  {
int cl_ctx;
if((cl_ctx=CLContextCreate(CL_USE_ANY))==-1)
  {
    Print("OpenCL not found! Err: ", GetLastError());
    return(-1);
  }
Print("Ok!!!");
return(0);
  }

void OnTick() {} 
 
MigVRN: Porque é que este código não funciona no testador:

Que tipo de erro retorna?

Não sei nada sobre OpenCL, mas já vi um tópico sobre OpenCL e o testador antes. Talvez o testador simplesmente não apoie esta característica? Veja o tópico OpenCL: testes internos de implementação em MQL5

 
Yedelkin:
E que erro é que retorna?

Nesta variante - 0 :)

OpenCL não encontrado! Err: 0
 
Yedelkin:

Não sei sobre OpenCL, mas de alguma forma deparei-me com um fio sobre OpenCL e um testador. Talvez o testador simplesmente não apoie esta característica? Veja o tópico OpenCL: testes internos de implementação em MQL5

É aqui que dizem que funciona.
Razão: