Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 146

 
talvez faltem algumas bibliotecas dll?
 
azsxg8181:   Talvez estejam faltando algumas bibliotecas dll?

Muito provavelmente, você coloca o terminal na unidade do sistema e na pasta Arquivos de Programas.

Se for o caso, escolha outra unidade. Ou pelo menos até a raiz de seu acionamento do sistema. No início da instalação, há um botão Setup

 
Esta é claramente uma questão infantil, portanto, é assim.
De alguma forma, eu não prestava atenção a isso antes. Na nota para a descrição da função IndicatorDigits, diz o seguinte:
Por padrão, a precisão do preço do instrumento financeiro, ao qual o indicador está anexado, é utilizada.
De fato, eu observo cinco dígitos na janela de dados:
  • A configuração padrão é de 4 dígitos ;
  • quando o IndicatorDigits(Dígitos) é especificado explicitamente - 5.
É uma falha ou o quê?
 
Por favor, ajude! Eu não consigo ler o arquivo
int File()
{
int P=0;
int filehandle=FileOpen("C:\\Users\\Михаил\\Desktop\\qqq.csv",FILE_READ|FILE_CSV); 
if(filehandle!=INVALID_HANDLE) 
     { 
     datetime d = FileReadDatetime(filehandle);
     int I=FileReadNumber(filehandle);
     FileClose(filehandle);
     Comment(d+" "+I);
     }
     else {Comment(GetLastError());}
return P;

}
Erro 5002- Nome de arquivo inválido

Embora o arquivo exista


 
Mikhail Simakov:
Por favor, me ajude! Não consigo ler o arquivoImits error 5002 - Nome de arquivo inválido

Embora o arquivo exista

FileOpen

Por razões de segurança, a linguagem MQL5 controla estritamente as operações com arquivos. Os arquivos que são tratados pelas operações de arquivo em linguagem MQL5 não podem estar fora do arquivo "sandbox".

Se você quiser trabalhar com diretórios fora da caixa de areia, crie um link de atalho/simbólica para o diretório necessário com"MQL4\\\\Files" nele.
 
Konstantin Nikitin:

FileOpen

Se você quiser trabalhar com diretórios fora da caixa de areia, crie um link de atalho/simbólica para o diretório necessário nele"MQL4\\Files".

OK, copiou o arquivo para a pasta de Arquivos, redidiu o código, mesmo erro

int File()
{
int P=0;

int filehandle=FileOpen(TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\"+"qqq.csv",FILE_READ|FILE_CSV); 
if(filehandle!=INVALID_HANDLE) 
     { 
     datetime d = FileReadDatetime(filehandle);
     int I=FileReadNumber(filehandle);
     FileClose(filehandle);
     Comment(d+" "+I);
     }
     else {Comment(GetLastError());}
return P;

}
 
Mikhail Simakov:

OK, copiou o arquivo para Files, redidiu o código, mesmo erro

int filehandle=FileOpen("qqq.csv",FILE_READ|FILE_CSV); 

Isso é suficiente. Há um exemplo muito bom dado ali, com a abertura de arquivo errada e correta.

 
Konstantin Nikitin:

Isso é suficiente. Há um bom exemplo dado ali, com a abertura errada e correta do arquivo.

ao testar um EA, onde o arquivo só de leitura deve ser localizado?

 
Mikhail Simakov:

ao testar um EA, onde o arquivo lido deve estar localizado?

Isto é da MQL5, mas a essência é a mesma.

 
Konstantin Nikitin:

Isto é da MQL5, mas a essência é a mesma.

Encontrei o diretório que o programa acessa, mas por alguma razão ele apaga este arquivo qqq.csv durante os testes