Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Pero miro el registro, y el registro muestra el mismo tick con una diferencia de 4 segundos.
p.d.
Odio la frase "no puede ser", me he acostumbrado a la idea de que todo puede pasar.
Por cierto, tal vez es lejos del tema, pero una vez en la afirmación de que la tierra es redonda también dijo algo como esto - "no puede ser.
En general, siempre tengo dudas hasta que lo compruebo, luego vuelvo a comprobarlo y, preferiblemente, otra persona lo comprueba varias veces.
¿Seguro que no se estropea el código que genera el registro y procesa los datos? Es una diferencia de 4 segundos.
Los ticks ya están en el terminal, es decir, ya han sido enviados por la red.
Poner el código en el dominio público
Y véalo usted mismo.
Los tics ya están en el terminal, es decir, ya se han transmitido por la red.
Poner el código de acceso abierto
Y véalo usted mismo.
Gracias, lo intentaré, hace tiempo que sigo el tema, me interesa más como investigador.
¿este código se retrasó durante 4 segundos?
No parece que sea este.
no veo OnTick en el código
Aparentemente este era el código en cuestión
He añadido mi tiempo al código.
Recuerdo el momento en el que se activó OnTick()(t_time = GetMicrosecondCount();)
Entonces tomo el tiempo, cuando cada función se ejecuta
El resultado es
Es decir, el tiempo de ejecución de cada función es inferior a 50 microsegundos.
¿De dónde pueden salir 4 segundos?
Creo que dos EAs se estaban ejecutando en un terminal y el terminal simplemente no tiene tiempo para
Sencillamente, no tiene tiempo para "fusionar" toda la información en un registro, por lo que establece la hora local según considere necesario.
En el comercio, personalmente, uso órdenes asíncronas.
La cosa es que (si operas seriamente en la Bolsa), necesitas todos los cambios en el mercado de valores,
y cuanto antes llegue este acontecimiento, mejor.
Yo, por mi parte, no veo ninguna alternativa a OnBook
En principio, es posible aliviar la invocación directa de las operaciones comerciales desde OnBook. Todo lo que hay que hacer en OnBook es formar una bandera para ejecutar la operación y procesar la propia bandera en otro lugar. Es decir, la operación en sí debe ser iniciado en otro procedimiento por la bandera formada, que creará un evento, pero después de salir del procedimiento HeBook, y luego el código OnBook sí estará libre de operaciones pesadas. Sin embargo, si las órdenes se abren de forma asíncrona, y no hay un procesamiento excesivamente grande de condiciones, es poco probable que cause retrasos significativos.
He añadido mi tiempo al código.
Recuerdo el momento en que se disparó OnTick()(t_time = GetMicrosecondCount();)
Entonces tomo el tiempo, cuando cada función se ejecuta
El resultado es
Es decir, el tiempo de ejecución de cada función es inferior a 50 microsegundos.
¿De dónde pueden salir 4 segundos?
Creo que dos EAs se estaban ejecutando en un terminal y el terminal simplemente no tiene tiempo para
El terminal simplemente no tiene tiempo para "volcar" toda la información en un archivo de registro y por eso establece la hora local que considera necesaria.
Supongo que es cierto, un desfase tan salvaje no es realista.
1 - ¡El FLUSH ha funcionado cuando MQ lo ha decidido por sí mismo!
2 - Retraso técnico en la escritura en el disco debido a un trabajo intensivo en el disco duro
Es posible que ya haya una cola de escritura en su máquina local - lo que es bastante real, tuve la experiencia de varios terabytes de copia de seguridad que se vierte en el disco
Sólo puedo suponer lo siguiente:
He tenido varios terabytes de copia de seguridad en el disco, por ejemplo, si ejecutaba Microsoft office, actualizaba mi Windows y grababa películas desde Internet, o si trabajaba con MS SQL en la máquina local al mismo tiempo,
hacer un par de copias de seguridad, tener una docena de 4 torrentes y dos o tres docenas de programas que escriben intensamente en el disco.
Es decir, quiero decir que si hubo un trabajo intensivo con el disco - es posible y hubo un retraso en la escritura del registro en el disco.
Probablemente sea cierto, no es realista con un retraso tan salvaje.
1 - ¡El FLUSH funcionó cuando MQ lo decidió por sí mismo!
2 - Retraso técnico en la escritura en el disco causado por un trabajo intensivo en el disco duro.
Es posible que alguna cola ya esté en su máquina local para el registro - que es bastante real, tuve la experiencia de varios terabytes de copia de seguridad que se vierte en el disco
Sólo puedo suponer lo siguiente:
He tenido varios terabytes de copia de seguridad en el disco, por ejemplo, si ejecutaba Mac irosoft office, actualizaba mi Windows y grababa películas desde Internet, o si trabajaba con MS SQL en la máquina local al mismo tiempo,
hacer un par de copias de seguridad, tener una docena de 4 torrentes y dos o tres docenas de programas escribiendo intensamente en el disco.
Quiero decir que si hubo un trabajo intensivo con el disco - es muy posible que haya habido un retraso en el registro en el disco.
He añadido mi tiempo al código.
Recuerdo el momento en que se disparó OnTick()(t_time = GetMicrosecondCount();)
Entonces tomo el tiempo, cuando cada función se ejecuta
El resultado es
Es decir, el tiempo de ejecución de cada función es inferior a 50 microsegundos.
¿De dónde pueden salir 4 segundos?
Creo que dos EAs se estaban ejecutando en un terminal y el terminal simplemente no tiene tiempo para
"Por lo tanto, fija la hora local según lo considere necesario.
Por cierto - para que no se quede atrapado en el tiempo de registro - puede añadir la hora local a la matriz - que se forma en el código - a continuación
Entonces habrá una clara diferencia en el registro entre el momento en que el terminal reinició el registro en el disco y el momento en que el tick o el evento de OnBook llegó localmente.
Y esto será más correcto desde el punto de vista de la investigación.
Apenas conectado con el disco, MT establece la hora ya cuando escribe el registro en su caché. Eso es lo que pensé que el terminal en general durante 4 segundos puede estar relacionado con la carga general del sistema, más bien la RAM y la CPU.
¿ESTÁ USTED SEGURO DE ESTO?
4 segundos ????, ¡no puede ser! ¿De verdad crees que el procesador se congeló durante 4 segundos o que la memoria se liberó durante 4 segundos?
Es más probable que sea la cola de escritura del disco.
El disco es más lento que la memoria y el procesador.
El comando flush() es un comando de C, probablemente lo conozcas y se ejecuta cuando se siente cómodo y puede retrasarse más a menudo debido al arranque del disco.
Así es como se llama cuando se quiere volcar los buffers al disco.