Perguntas de um "boneco" - página 108

 

O meu Expert Advisor retira valores padrão de um ficheiro csv. quando negoceia, tudo funciona mas não no testador. onde devo colocar o ficheiro csv e que pasta devo criar?

Fi-lo desta forma

O ficheiro é aberto na subpasta MQL5\files do terminal do cliente (ou em caso de teste, na pasta_Testing_agent\MQL5\files).

Mas não funciona e onde está localizado o directório de agentes de ensaio?

 
openlive:
O meu Expert Advisor retira valores padrão de um ficheiro csv. quando se negoceia, tudo funciona, mas não no testador. onde devo colocar o ficheiro csv e que pasta devo criar?
Ver no Manual de Referência a descrição da constante do ficheiro tester_file
 
Yedelkin:
Ver no Manual de Referência a descrição da constante do ficheiro tester_file

Olhado, colocar o ficheiro em Mql5Tester\Files

mas o testador apenas fica parado.

Aqui está o próprio ficheiro do testador.

Arquivos anexados:
 
openlive:

olhou para ele, colocou o ficheiro em Mql5Tester\Files

A descrição da função FileOpen() diz: "O ficheiro abre-se na pasta terminal do cliente na subpasta MQL5\files (ou no directório_agent_tester\MQL5\files em caso de teste)". Tente:

a) especificar o caminho completo para o ficheiro como

string filename=TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Tester\\Files\\"+"file.csv";

b)colocar o ficheiro no directório do agente .

Eu próprio ainda não encontrei isto. Da descrição de outras funções de trabalhar com ficheiros, resulta que, em caso de teste, o ficheiro deve ser procurado em ficheiros Mql5Tester.

Uma adição. Sim, abriu aí vários ficheiros. E no tester_file só tem um.

 
Yedelkin:

A descrição da função FileOpen() diz: "File opens in the folder of the client terminal in subfolder MQL5\files (ou catalog_agent_testing\MQL5\files em caso de teste)". Tente:

a) especificar o caminho completo para o ficheiro como

b)colocar o ficheiro no directório do agente .

Eu próprio ainda não encontrei isto. Não encontrei nenhuma instrução directa no Manual, onde o ficheiro para testes deve ser colocado.

Adenda. Sim, tem aí vários ficheiros abertos. E no ficheiro tester_file é especificado apenas um.

a) fê-lo - não ajudou.

b) Não compreendo como fazê-lo. Tenho apenas a pasta MQL5\Tester\Files e não consigo descobrir qual é a pasta que se destina emtesting_agent_folder\MQL5\files.

 

Aqui está mais: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Ver dois posts. Funcionava se o ficheiro estivesse em ficheiros MQL5.

Bem, pode tentar movê-lo para pasta partilhada no TerminalInfoString(TERMINAL_COMMONDATA_PATH). E ao abrir o ficheiro em si, colocar a bandeira FILE_COMMON.

 

Yedelkin:

Aqui está mais: https://www.mql5.com/ru/forum/1111/page182#comment_31599 Ver dois posts. Funcionava se o ficheiro estivesse em ficheiros MQL5.

Bem, pode tentar movê-lo para pasta partilhada no TerminalInfoString(TERMINAL_COMMONDATA_PATH). E colocar a bandeira FILE_COMMON ao abrir o ficheiro em si.

colocar o ficheiro em C:Dados do ProgramaCotas deetaQuotes\Ficheiros Comuns, colocar a bandeiraFILE_COMMON

O testador não diz nada de qualquer maneira.

Não sei mais o que fazer

 

Por outras palavras, encontrar o ficheiro nem em Mql5Tester, nem em Mql5Files, nem na pasta partilhada dos terminais dos clientes ajuda?

Colocar FileIsExist() verificar com a saída.

Escreveu os outros ficheiros utilizados pelo programa usando o tester_file?

Uma observação não relacionada com a questão principal. Tem

int handle16=FileOpen("signal10000.csv",FILE_WRITE|FILE_CSV,";");
int handle17=FileOpen("signal10000.dat",FILE_WRITE|FILE_BIN,";"); 
int handle=FileOpen(filename,FILE_READ|FILE_CSV,";");

etc.

São chamados em cada tic-tac. Isto é muito incómodo. A menos que haja uma razão especial, o cabo de ficheiro deve ser obtido na função OnInit(), verificado quanto a deficiência, e depois trabalhar com o cabo de ficheiro aberto em vez da funçãoFileOpen().

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
Yedelkin:

Por outras palavras, encontrar o ficheiro nem em Mql5Tester, nem em Mql5Files, nem na pasta partilhada dos terminais dos clientes ajuda?

Colocar FileIsExist() verificar com a saída.

Escreveu os outros ficheiros utilizados pelo programa usando o tester_file?

Uma observação não relacionada com a questão principal. Tem

etc.

São chamados em cada tic-tac. Isto é muito incómodo. A menos que haja uma razão especial, o cabo do ficheiro deve ser obtido na função OnInit(), verificado quanto a deficiência, e depois trabalhar com o cabo do ficheiro aberto, e não com a funçãoFileOpen().

Os ficheiros não são realmente chamados de cada carrapato. há um cheque para um novo bar. mas obrigado de qualquer forma, vou arranjá-lo

Vou tentar FileIsExist()

 
openlive:

Os ficheiros não são realmente chamados de cada carrapato. Há um cheque para um novo bar. mas obrigado de qualquer forma, vou arranjá-lo

Sim, não o examinou minuciosamente. Mas acertou no essencial :)
Razão: