¿Qué diablos está pasando? - página 8

 
Сергей Таболин:

Querido, sólo una palabra, porque nadie para quien el trabajo con archivos es importante hasta que lo imprimí sugirió que este podría ser el problema también ;) :) De todos modos, eso está resuelto.

Ahora una pregunta distraída: ¿cuál es la diferencia entre las siguientes líneas?

   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_OPTIMIZATION) ? ".opt" : ".tst");
   filename = "ERR_dir\\"+filename+(MQLInfoInteger(MQL_TESTER) ? ".tst" : ".opt");

Y, si es posible, explicaciones: ¿por qué?

Modo de optimización

Modo probador

El modo de comprobación incluye el modo de optimización, pero no a la inversa.

Sus dos líneas están equivocadas.

La primera:

Si el modo de optimización, la extensión es .opt, de lo contrario la extensión es .tst. Pero en el caso de "otra cosa", puede que no sea un probador en absoluto.

Segundo:

Si se trata del modo tester, la extensión es .tst, de lo contrario la extensión es .opt. Pero en el caso de "otra cosa" puede no ser un probador en absoluto.

Sí:

  • Si el modo probador.
    • Si el modo de optimización, la extensión .opt
      • en caso contrario, la extensión .tst
 
Artyom Trishkin:

Modo de optimización

Modo de prueba

El modo de prueba incluye el modo de optimización, pero no a la inversa.

Tus dos líneas son erróneas.

El primero:

Si el modo de optimización, la extensión es .opt, de lo contrario la extensión es .tst. Pero en el caso de "otra cosa", puede que no sea un probador en absoluto.

Segundo:

Si se trata del modo tester, la extensión es .tst, de lo contrario la extensión es .opt. Pero en el caso de "otra cosa" puede no ser un probador en absoluto.

Sí:

  • Si el modo probador.
    • Si el modo de optimización, la extensión .opt
      • en caso contrario, la extensión .tst

esto es suficiente.

A menos que, por supuesto, quiera comprobar si el EA funciona en modo gráfico o de prueba.

 
Andrey Dik:

es suficiente.

Y si no es un probador, ¿qué es?

 
Artyom Trishkin:

Y si no es un probador en absoluto, ¿entonces qué?

no tiene la tarea de comprobar en el probador o en una ejecución de gráficos, sino sólo para determinar si se trata de una simple ejecución en la historia o como parte de un paquete de optimización, si entiendo TC correctamente

 
Andrey Dik:

no tiene la tarea de comprobar en el probador o en la ejecución del gráfico, pero sólo para determinar si se trata de una simple ejecución en la historia o como parte de un paquete de optimización, si entiendo TC correctamente

Exactamente. Si no es un probador u optimizador, no viene aquí en absoluto )))

Artem, si he entendido bien, mi tal diseño

if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))

¿es superfluo?

Será suficiente

if(MQLInfoInteger(MQL_TESTER))

?

 
Maxim Kuznetsov:

si el archivo se escribe en COMMON, es obligatorio tener SHARE_READ y un control de carrera de escritura bastante complicado. Es un poco decente no disparar el talón en público.

En general, es una buena práctica que los asesores no escriban nada en el común. Pueden leerlo, pero lo escribe o lo copia allí el comerciante, que es el responsable personal de ello. Para todos los Asesores Expertos en todos los terminales, estas son palabras dadas desde arriba.

Si se escribe un archivo en un directorio habitual sin SHARE_XXX, pero el optimizador genera errores de acceso compartido, se trata de un error de los desarrolladores del terminal

Por lo tanto, el Asesor Experto no escribe nada allí, sólo lee.


P.D. Además, es el único que lo lee (hasta ahora).
 
Сергей Таболин:

Pero el propio Asesor Experto no escribe nada allí, sólo lo lee.


P.D. Además sólo se lee en él (el único ejemplar hasta ahora).

Si está en COMMON, SHARE_READ es obligatorio.

como en el chiste - "no puedes entenderlo, tienes que recordarlo" :-)

PS/ cuando en el probador - lee no sólo de (separado por grupo) común, sino también de todas las copias que se están probando en paralelo. Por cierto, esto también es un posible error - parece que es posible engañar al probador y dibujar un grial

 
Maxim Kuznetsov:

si en COMMON, SHARE_READ es obligatorio.

Bueno, no es obligatorio.

El acceso múltiple no es tan bueno como uno quisiera.

 
Andrey F. Zelinsky:

Bueno, no tiene por qué serlo.

El multiacceso no es todo lo que parece.

Espero que no haya problemas con el multiacceso en modo de sólo lectura. ¿O no?

 
Сергей Таболин:

Exactamente. Si no eres probador u optimizador, no entras aquí para nada )))

Artem, si he entendido bien, entonces mi tal construcción

¿es superfluo?

Será suficiente

?

No. Al contrario.
Bueno, eso es si necesitas medias tintas.