Errores, fallos, preguntas - página 1388

 

Un error de lógica

Si la solicitud de colocación de una orden fue rechazada (línea con failed) por falta de conectividad a la red, por qué se ejecutó realmente, lo que se confirma con la modificación posterior de la orden (línea con modify).

Y si después de restablecer la conexión de red el propio terminal enviara una segunda solicitud, ¿dónde está la línea sobre su ejecución exitosa?

 
A100:

Un error de lógica

Si la solicitud de colocación de una orden fue rechazada (línea con failed) por falta de conectividad a la red, por qué se ejecutó realmente, lo que se confirma con la modificación posterior de la orden (línea con modify).

Y si después de restablecer la conexión de red el propio terminal enviara una segunda solicitud, ¿dónde está la línea sobre su ejecución exitosa?

El corredor no quiso ejecutar su orden y desconectó Internet. Pero luego las condiciones del mercado han cambiado y el corredor cambia de opinión y ejecuta la orden. ))
 
Sergey Chalyshev:
El corredor no quiso ejecutar su orden y desconectó el internet. Pero entonces las condiciones del mercado cambiaron, él cambió de opinión y ejecutó. ))
El quid del problema es que el programa informático no registra adecuadamente los cambios que se producen, lo que hace imposible remitirse al cuaderno de bitácora en caso de desacuerdo con el corredor.
 

¿Puede decirme por qué la función FileOpen no funciona en INI_file::WriteFile. Devuelve -1. GetLastError() devuelve el código 5004 (El archivo no se puede 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);
  }

Requiere la recreación de un archivo de texto en codificación ansi. Antes de llamar aWriteFile leo el mismo archivo usando INI_file::ReadFile.

 

Me refiero a MT4 y MQL4.

A veces los datos se abren normalmente y se escriben (el valor de retorno deFileWriteString no se comprueba), pero el archivo no se modifica, incluso la fecha del archivo no se modifica.

 int fh=FileOpen(fn,FILE_WRITE);

Si abro el archivo de esta manera, el archivo se abre y los datos se escriben en codificación ansi, pero no unicode, como se describe en la ayuda cuando FILE_ANSI/FILE_UNICODE está ausente.

 
Дмитрий:

¿Puede decirme por qué la función FileOpen no funciona en INI_file::WriteFile. Devuelve -1. GetLastError() devuelve el código 5004 (El archivo no se puede abrir)

   int fh=FileOpen(fn,FILE_WRITE | FILE_TXT | FILE_ANSI);
 
A100:
Gracias. Hace tiempo que no escribo en MQL ))). Olvidé
 

¿Puede alguien explicar por qué un probador descargaría una historia en una herramienta que no voy a probar?

descargando EURUSD

la herramienta para probar USDCAD, no hay solicitudes para trabajar con EURUSD

y esto sucede todo el tiempo, ¿se trata de hacer pares sintéticos de lo que tiene si hay lagunas en la historia? No encuentro ninguna otra explicación.

 
El probador es multidivisa y necesita calcular con absoluta precisión en cualquier segundo tanto los requisitos de margen como los beneficios en la divisa del depósito.

Por ello, el comprobador de estrategias de negociación calcula todas las interrelaciones de los instrumentos financieros y proporciona una modelización precisa de las condiciones del mercado.
 
Renat Fatkhullin:
El probador es multidivisa y necesita calcular con absoluta precisión en cualquier segundo tanto los requisitos de margen como los beneficios en la divisa del depósito.

Por ello, el comprobador de estrategias de negociación calcula todas las interrelaciones de los instrumentos financieros y proporciona una modelización precisa de las condiciones del mercado.
Gracias por la aclaración, mientras sea necesario, que lo descargue, no me da pena)