Errores, fallos, preguntas - página 2235

 
fxsaber:

¿Cómo es posible que last-price no sea un múltiplo de TickSize?

tal vez, hice esta pregunta hace unos años, escribí ticks en un script while(true), escribí ticks cambiando los datos en "market overview", a menudo había ticks como 1.3555000001, o 1.3555999999

me sorprendió recibir datos de precios no normalizados desde el servidor, no obtuve ninguna respuesta, pero leí temas posteriores y vi las respuestas de los desarrolladores diciendo que algunos ticks son ticks para el terminal y el EA no opera con dichos ticks

en su caso también, tal precio no es un múltiplo deSYMBOL_TRADE_TICK_SIZE, lo que significa que no se negociará a tal precio.... aunque resulta que el análisis del último precio también puede carecer de sentido ))))

 
Igor Makanu:

Puede que haya hecho esta pregunta hace unos años, escribí ticks en un script while(true), los ticks se escribían cambiando los datos en "market overview", a menudo había ticks como 1.3555000001, o 1.3555999999

Su caso es una peculiaridad de la conversión doble -> cadena. Mi situación es ligeramente diferente.

 
El registro de EA es de 15 GB. Al intentar verlo en el Terminal, se cuelga durante más de un minuto.
 
fxsaber:
El registro de EA es de 15 GB. Al intentar verlo en el Terminal, se cuelga durante más de un minuto.

¿Qué quieres que sea?

 
Alexey Kozitsyn:

¿Quieres que sea así?

En caso de un gran registro, emita primero una advertencia al respecto y pregunte si desea continuar o no.

 
fxsaber:

En el caso de un registro grande, para dar una advertencia al respecto primero y preguntar si desea continuar o no.

Verás que inmediatamente se convirtió en algo constructivo:)

 
Alexey Viktorov:

Su error es que después de escribir en un archivo, los datos sólo llegarán al disco después de FileClose O después de un reinicio forzado de los datos en el disco por FileFlush

De lo contrario, ¿cómo se puede leer un archivo que no existe?

Me has confundido con otra persona. Tanto con y sin FileFlush - el error es el mismo. El Asesor Experto real, donde todo comenzó, tiene inicialmente tanto FileFlush como el propio archivo.

La bandera FILE_SHARE_WRITE en esa combinación parece funcionar, pero surge otra pregunta: ¿qué sentido tiene esa entrada? Lógicamente, si se activa la separación de escritura, hay que añadirla exactamente a la bandera de escritura:

FILE_READ|FILE_BIN|FILE_SHARE_READ|(writing?(FILE_WRITE|FILE_SHARE_WRITE):0)

Eso es exactamente lo que he probado, y también da error.

 
En general, no está claro por qué tengo que comprobar un archivo para la escritura, cuando sólo se requiere la separación de la lectura?
 
Señores, ¿alguien puede ayudarme con esta pregunta?
 

El tooltip deMqlTradeCheckResult no aparece en ME

#define  TOSTRING(A)  #A + " = " + (string)(A) + "\n"
#define  TOSTRING2(A) #A + " = " + EnumToString(A) + " (" + (string)(A) + ")\n"

string ToString( const MqlTradeRequest &Request )
{
  return(TOSTRING2(Request.action) + TOSTRING(Request.magic) + TOSTRING(Request.order) +
         TOSTRING(Request.symbol) + TOSTRING(Request.volume) + TOSTRING(Request.price) +
         TOSTRING(Request.stoplimit) + TOSTRING(Request.sl) +  TOSTRING(Request.tp) +
         TOSTRING(Request.deviation) + TOSTRING2(Request.type) + TOSTRING2(Request.type_filling) +
         TOSTRING2(Request.type_time) + TOSTRING(Request.expiration) + TOSTRING(Request.comment) +
         TOSTRING(Request.position) + TOSTRING(Request.position_by));
}

string ToString( const MqlTradeResult &Result )
{
  return(TOSTRING(Result.retcode) + TOSTRING(Result.deal) + TOSTRING(Result.order) +
         TOSTRING(Result.volume) + TOSTRING(Result.price) + TOSTRING(Result.bid) +
         TOSTRING(Result.ask) + TOSTRING(Result.comment) + TOSTRING(Result.request_id) +
         TOSTRING(Result.retcode_external));
}

string ToString( const MqlTrade