Erros, bugs, perguntas - página 1388

 

Um erro de lógica

Se o pedido para colocar uma ordem foi recusado (linha com falha) devido à falta de conectividade de rede, porque é que foi realmente executado, o que é confirmado pela subsequente modificação da ordem (linha com modificação).

E se depois de restabelecida a ligação à rede o próprio terminal enviou um segundo pedido, onde está a linha sobre a sua execução bem sucedida?

 
A100:

Um erro de lógica

Se o pedido para colocar uma ordem foi recusado (linha com falha) devido à falta de conectividade de rede, porque é que foi realmente executado, o que é confirmado pela subsequente modificação da ordem (linha com modificação).

E se depois de restabelecida a ligação à rede o próprio terminal enviou um segundo pedido, onde está a linha sobre a sua execução bem sucedida?

O corretor não quis executar a sua encomenda e desligou a Internet. Mas depois as condições do mercado mudaram e o corretor muda de ideias e executa a ordem. ))
 
Sergey Chalyshev:
O corretor não quis executar a sua encomenda e desligou a Internet. Mas depois as condições do mercado mudaram, ele mudou de ideias e executou. ))
O cerne do problema é que o software não regista devidamente as alterações que ocorrem, o que torna impossível a consulta do livro de registo em caso de desacordo com o corretor.
 

Pode dizer-me porque é que a função FileOpen não funciona em INI_file::WriteFile. Retorna -1. GetLastError() devolve o código 5004 (Ficheiro não pode abrir)

void INI_file::WriteFile(string &lines[])
  {
   string fn=IniName;
   //int fh=FileOpen(fn,FILE_WRITE);
   int fh=FileOpen(fn,FILE_WRITE|| FILE_TXT ||FILE_ANSI);
   if(INVALID_HANDLE==fh)
     {
      LastErr=GetLastError();
      Message=StringConcatenate("FileOpen(...) of ",IniName,": ",ErrorDescription(LastErr));
      return;
     }

   for(int i=0;i<ArraySize(lines);i++)
      FileWriteString(fh,lines[i]+"\n");

   FileClose(fh);
  }

void INI_file::ReadFile(string &lines[])
  {
   int fh=FileOpen(IniName,FILE_READ || FILE_TXT || FILE_ANSI);
   if(fh==INVALID_HANDLE)
     {
      LastErr=GetLastError();
      Message=StringConcatenate("FileOpen(...) of ",IniName,": ",ErrorDescription(LastErr));
      return;
     }

   string line="";

   int k=0;
   ArrayResize(lines,1000);
   while(!FileIsEnding(fh))
     {
      line=FileReadString(fh);
      lines[k++]=line;
      if(k==ArraySize(lines))
         ArrayResize(lines,1000+k);
     }

   ArrayResize(lines,k);
   FileClose(fh);
  }

Requer a recriação de um ficheiro de texto em ansi-encoding. Antes de chamar oWriteFile li o mesmo ficheiro usando o INI_file::ReadFile.

 

Estou a falar de MT4 e MQL4.

Por vezes os dados são abertos normalmente e escritos (o valor de retorno deFileWriteString não é verificado), mas o ficheiro não é alterado, mesmo a data do ficheiro não é alterada.

 int fh=FileOpen(fn,FILE_WRITE);

Se eu abrir o ficheiro desta forma, o ficheiro é aberto e os dados são escritos em ansi-encoding, mas não unicode, como descrito na Ajuda, quando FILE_ANSI/FILE_UNICODE está ausente.

 
Дмитрий:

Pode dizer-me porque é que a função FileOpen não funciona em INI_file::WriteFile. Retorna -1. GetLastError() devolve o código 5004 (Ficheiro não pode abrir)

   int fh=FileOpen(fn,FILE_WRITE | FILE_TXT | FILE_ANSI);
 
A100:
Obrigado! Há muito tempo que não escrevo em MQL )))))). Esqueci-me
 

Alguém pode explicar porque é que um testador descarregaria uma história numa ferramenta que eu não vou testar?

a descarregar o EURUSD

a ferramenta para testar o USDCAD, não há pedidos para trabalhar com o EURUSD

e isto acontece a toda a hora, está a tentar fazer pares sintéticos a partir do que tem se houver lacunas na história? Não consigo encontrar qualquer outra explicação.

 
O testador é multi-moeda e precisa de calcular com absoluta precisão, a qualquer segundo, tanto os requisitos de margem como os lucros na moeda de depósito.

É por isso que o testador de estratégias comerciais calcula todas as inter-relações de instrumentos financeiros e fornece uma modelação precisa das condições de mercado.
 
Renat Fatkhullin:
O testador é multi-moeda e precisa de calcular com absoluta precisão, a qualquer segundo, tanto os requisitos de margem como os lucros na moeda de depósito.

É por isso que o testador de estratégias comerciais calcula todas as inter-relações de instrumentos financeiros e fornece uma modelação precisa das condições de mercado.
Obrigado pelo esclarecimento, desde que seja necessário, deixe-o descarregar, não me sinto arrependido)
Razão: