Errores, fallos, preguntas - página 2233

 
A100:

Y no se puede quitar - porque es el código de la EA o quiere entender miles de líneas de código de otras personas es irrelevante - que se traduce en sólo un retraso de tiempo?

Realiza la tarea que te he encomendado anteriormente e informa al público de los resultados.

¿Por qué debo repetir el código equivocado? ???? ¿Por qué querría usar un archivo .ex desconocido? ????

Si hay un error al abrir el archivo con las banderas FILE_SHARE_READ|FILE_SHARE_WRITE sea amable y reproduzca estos problemas sin errores extraños, creados artificialmente.

 
Alexey Viktorov:

¿Por qué querría repetir un código erróneo? ???? ¿Por qué querría encadenar un archivo .eh desconocido a ????

Si hay un error al abrir un archivo con las banderas FILE_SHARE_READ|FILE_SHARE_WRITE, por favor reproduzca estos problemas sin errores extraños, creados artificialmente.

¿Qué te hace pensar que el código está mal?

La forma de informar sobre los errores es la misma, y el archivo .ex no es para ti, sino para los desarrolladores. Si quieres ayudar con una simple reproducción del error puedes usar mis consejos, si no quieres ayudar, no molestes a los demás con posts vacíos y enfadados

 
A100:

¿Qué te hace pensar que el código está mal?

No he escrito el archivo .ex para ti, sino para los desarrolladores. Si quieres ayudar con la simple reproducción del error puedes usar mis consejos, si no quieres ayudar, no molestes a los demás con posts vacíos y enfadados

Tus mensajes son más bien maliciosos. Mi petición

Foro sobre trading, sistemas de trading automatizados y comprobador de estrategias

Bichos, errores, preguntas

Alexey Viktorov, 2018.07.23 14:16

Es extraño que no sirva de nada. Sólo pude obtener 5004 sin la bandera FILE_SHARE_WRITE

El archivo en el asesor de escritura se abre en OnInit y se cierra sólo en OnDeinit. Al mismo tiempo, en el asesor de lectura, el archivo se lee e imprime sin problemas.

Sería bueno aclarar cómo escribes el archivo para replicar tus acciones con mayor precisión.


No iba dirigido a ti, pero te has pegado y has colado posts de hace dos años, a los que los desarrolladores no prestaron atención, en mi opinión, por un error creado artificialmente.

Y repito: ¿Por qué debería reproducir un error creado artificialmente???????????

 
Alexey Viktorov:

Y una vez más: ¿Por qué debería reproducir un error creado artificialmente???????????

¿Explique qué es un error creado artificialmente? No entiendo esta frase
 
TheXpert:

Pruebe después de abrir un archivo para escribir (parte 1 del código) a verlo con el visor de Windows. al menos quedará claro cuál es el asa que da problemas.

Si se abre - el segundo, si no - el primero.

Windows abrirá el primer archivo. Veo a nivel de sistema que las banderas de lectura, escritura y share_read están activadas. Pero en la terminal, al abrir el mismo archivo para su lectura, se produce 5004. El primer Asesor Experto escribe en el archivo, es decir, no sólo se abre con algunas banderas por diversión.

Cuando tenga tiempo, intentaré hacer un guión para la demostración. Pero a juzgar por el hecho de que no es la primera vez que escribo sobre ello y no hay desarrollos relacionados con archivos en el código, la curvatura está presente.

PS. ¿Quizás quien ya escribió en SD? ¿Cuáles son las respuestas?

 
A100:
Estrictamente hablando, el error es causado por la llamada simultánea deFileOpen( filename ) desde diferentes Asesores Expertos (las banderas no importan)
la bandera FILE_SHARE_READ en realidad significa acceso de lectura no exclusivo, al menos en el winapi original
 
Stanislav Korotky:

Windows abre el primer archivo.

El segundo Manipulador quiere acceso exclusivo de lectura u otro acceso no autorizado, a pesar de la bandera.
 
A100:
¿Explique qué es un error creado artificialmente? No entiendo esta frase.

No hay ningún subtexto en lo que estoy diciendo. Hay que entender qué es el cuero artificial. Remítase a ese entendimiento.

Mostrar código sin manipulación adicional con plantillas y otros panderos, que devuelve el error ERR_CANNOT_OPEN_FILE con banderas FILE_SHARE_READ|FILE_SHARE_WRITE

Si el error no se reproduce sin panderetas, significa que el error fue causado durante las panderetas...

Repetiré la secuencia de acciones:

EA 1:

En OnInit se abre un archivo binario para escribir.

Cada minuto escribe en el archivo la apertura del bar actual.

El archivo se cierra SOLO en OnDeinit.

Asesor experto 2:

Cada minuto abre este archivo binario.

Lee la última entrada y la imprime.

Cierra el archivo.

Y lo repite cada minuto.


No hay errores de apertura de archivos.

 

En este sencillo script, ejecutado primero con escritura = true y luego en otro gráfico con escritura = false, obtengo un error.

#property script_show_inputs

input bool writing = false;

int OnStart()
{
  int handle = FileOpen("xyz.foo", FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?FILE_WRITE:0));
  if(handle == INVALID_HANDLE)
  {
    Print("FileOpen failed: ", GetLastError());
    return INIT_FAILED;
  }
  
  if(writing) FileWriteInteger(handle, 0);
  
  Print("handle=", handle);
  
  while(!IsStopped())
  {
    Sleep(1000);
  }

  Print("Closing");
  FileClose(handle);

  return 0;
}
 
Andrey Khatimlianskii:

Por lo que recuerdo, establece un tiempo de espera tras el cual el precio se considera irremediablemente desfasado. En otras palabras, si no ha cambiado durante 3 minutos, no se puede abrir en él.

He escrito un script de prueba para este caso. NoPrice fue capturado 64 segundos después del último tick. Tal vez valga la pena un tiempo de espera de un minuto. Voy a tener que investigar un poco...