En realidad, sólo hay una cantidad de cosas para repartir hasta ahora. Seleccionando el tiempo más largo. Pero esto supone un coste adicional al obtener dos valores de tiempo en cada OnBookEvent()...
Alexey Kozitsyn: En realidad, sólo hay una cantidad para repartir hasta ahora. Seleccionando el tiempo más largo. Pero es un gasto adicional de obtener dos valores de tiempo en cada OnBookEvent()...
EmularTimeTradeServer a través de GetMicrosecondCount. O añadir la diferencia entre TimeTradeServer y TimeCurrent al 99% de BookEvent.
fxsaber: EmularTimeTradeServer a través de GetMicrosecondCount. O bien añadir la diferencia entre TimeTradeServer y TimeCurrent en el 99% del BookEvent.
TimeTradeServer funciona a través de GetMicrosecondCount añadiendo la diferencia correspondiente a TimeCurrent.
No sé qué necesitas conseguir. Pero ahorrar en unidades de microsegundos no me parece razonable.
Necesito obtener el valor correcto de la hora actual. Estoy solicitando a OnBookEvent() de la hora actual que escriba el valor del parámetro vinculado a la hora. Y necesito el tiempo actual, no el tiempo transcurrido, y preferiblemente sin muletas en forma de obtener varios valores de tiempo con la elección del valor más grande. Se supone que TimeCurrent() se encarga de esta tarea (según la descripción en la documentación). ¡Pero resultó que ahora no lo hace!
Alexey Kozitsyn: Necesito obtener el valor correcto de la hora actual. Estoy consultando la hora actual desde OnBookEvent() para escribir el valor del parámetro vinculado a la hora. Y necesito la hora actual, no la pasada, y preferiblemente sin las muletas de obtener múltiples valores de tiempo y seleccionar el valor más alto. Se supone que TimeCurrent() se encarga de esta tarea (según la descripción en la documentación). Pero resulta que ahora no lo hace.
Podrías haber sido más preciso. Por ejemplo, podría recorrer todos los símbolos, llamando a SymbolInfoTick (+ CopyTicks). A partir de ahí, tacha el tiempo en milisegundos. No entiendo qué utilidad práctica puede tener.
En realidad, sólo hay una cantidad para repartir hasta ahora. Seleccionando el tiempo más largo. Pero es un gasto adicional de obtener dos valores de tiempo en cada OnBookEvent()...
Solicitud al SR#1674783
Por favor, decídase cuanto antes.
EmularTimeTradeServer a través de GetMicrosecondCount. O bien añadir la diferencia entre TimeTradeServer y TimeCurrent en el 99% del BookEvent.
Todavía es cuestión de conseguir algunos parámetros.
La cuestión no es el número de parámetros, sino su baratura total.
Entonces, ¿crees que TimeTradeServer() funcionará más rápido que SymbolInfoInteger( _Symbol, SYMBOL_TIME )?
TimeTradeServer funciona a través de GetMicrosecondCount añadiendo la diferencia correspondiente a TimeCurrent.
No sé qué necesitas conseguir. Pero ahorrar dinero en microsegundos no me parece razonable.
TimeTradeServer funciona a través de GetMicrosecondCount añadiendo la diferencia correspondiente a TimeCurrent.
No sé qué necesitas conseguir. Pero ahorrar en unidades de microsegundos no me parece razonable.
Necesito obtener el valor correcto de la hora actual. Estoy consultando la hora actual desde OnBookEvent() para escribir el valor del parámetro vinculado a la hora. Y necesito la hora actual, no la pasada, y preferiblemente sin las muletas de obtener múltiples valores de tiempo y seleccionar el valor más alto. Se supone que TimeCurrent() se encarga de esta tarea (según la descripción en la documentación). Pero resulta que ahora no lo hace.
{
static ulong PrevStartTime = GetMicrosecondCount();
static datetime PrevTimeCurrent = TimeCurrent(); // TimeTradeServer()
const datetime NewTimeCurrent = TimeCurrent(); // TimeTradeServer()
const ulong NowTime = GetMicrosecondCount();
if (PrevTimeCurrent < NewTimeCurrent)
{
PrevTimeCurrent = NewTimeCurrent;
PrevStartTime = NowTime;
}
return(PrevTimeCurrent + (datetime)((NowTime - PrevStartTime) / 1000000));
}
Recorrer todos los símbolos consultando SymbolInfoTick (+ CopyTicks). A partir de ahí, tacha el tiempo en milisegundos.