Qué instrumentos negociar en Otkritie - página 9

 
Anton Zverev:

Necesito escribir una función que devuelva ticks de una fecha a otra. Si tiene éxito, será verdadero, de lo contrario será falso.

Y no consigo escribir semejante disparate. Porque no sé qué hacer con la asincronía. El ejemplo de Renat a través de OnTimer es probablemente una opción. Pero definitivamente no de la manera que citó. OnTimer se puede utilizar para muchas cosas.

En definitiva, se puede aportar una función elemental de fecha a fecha para que funcione.

Losvolúmenes de ticks de las barras son completamente inconsistentes con lo que se encuentra en los copyticks, por lo que no está claro cuántos ticks consultar.

El script pide datos a partir de una fecha determinada.

Este es el resultado de dos ejecuciones del script a intervalos de unos minutos:

2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Получено тиков: 409 код ошибки: 0
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:30:00 bid: 92480.0 ask: 92540.0 last: 92520.0 [0]
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:32:38 bid: 92380.0 ask: 92390.0 last: 92380.0 [408]
2016.04.22 11:32:38.538 CopyTicks_1_02 (RTS-6.16,H3)    Size 0 Mb
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Получено тиков: 632 код ошибки: 0
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:30:00 bid: 92480.0 ask: 92540.0 last: 92520.0 [0]
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Тик: 2016.04.22 11:34:26 bid: 92410.0 ask: 92440.0 last: 92420.0 [631]
2016.04.22 11:34:26.502 CopyTicks_1_02 (RTS-6.16,H3)    Size 0 Mb

Es decir, los ticks se piden desde una fecha determinada hasta el momento actual.

Archivos adjuntos:
 
Karputov Vladimir:

El script pide datos a partir de una fecha determinada.

Este es el resultado de dos ejecuciones de la secuencia de comandos a intervalos de unos minutos:

Es decir, los ticks se piden desde una fecha determinada hasta el momento actual.

No entiendo por qué citas un código que es inferior incluso a la documentación en cuanto a información. Gracias, por supuesto. Pero eso no es en absoluto lo que pedí.

El código de Renate es mucho mejor, pero no es lo mismo en absoluto.

 
Renat Fatkhullin:

No, todos los ticks descargados previamente para cada servidor de comercio se almacenan en la caché local y se extraen automáticamente.

Hay una captura de pantalla de los archivos de garrapatas en la página anterior.

Gracias, no he estudiado la carpeta de Bases en detalle.

¿Cómo puedo solicitar copyticks en OnTester para obtener todos los ticks que se han pasado?

 
Anton Zverev:
¿Cómo podemos consultar los copyticks en OnTester para obtener todos los ticks que se han pasado?

En la beta actual (la versión de hoy), llama a CopyTicks y obtiene las últimas decenas de miles de ticks.

El probador utiliza un búfer en forma de anillo para almacenar los ticks sin poder obtener millones de ellos. Es costoso almacenar todos los ticks, de ahí el buffer de anillo. Sin embargo, tal vez podamos cambiar este comportamiento.

 
Anton Zverev:

No entiendo por qué citas un código que es menos informativo que incluso la documentación. Gracias, por supuesto. Pero eso no es en absoluto lo que he preguntado.

El código de Renate es mucho mejor, pero no del todo.

Mi código es sólo para demostrar el principio "para obtener ticks muy profundos hay que llamar a CopyTicks varias veces para esperar la paginación". OnTimer es bueno para eso.
 
Renat Fatkhullin:

En la beta actual (la versión de hoy), llama a CopyTicks y obtiene las últimas decenas de miles de ticks.

El probador utiliza un búfer en forma de anillo para almacenar los ticks sin poder obtener millones de ellos. Es costoso almacenar todos los ticks, de ahí el buffer de anillo. Sin embargo, podemos cambiar este comportamiento.

¿Cómo determinar el tamaño del buffer del anillo sin tener que consultar en cada tick (muy costoso hacerlo en el probador) los copyticks?

Digamos que el buffer del anillo es de 10000. Entonces llamaré a copyticks cada 10000 para asegurarme de que no hay saltos. Pero aparece un problema en forma de ticks con un tiempo (con precisión a mseg). En el intercambio se encuentran. No quiero contarlos dos veces, llamando a los copyticks de esta época en ms.

 
Renat Fatkhullin:
Mi código es sólo para demostrar el principio "para obtener ticks muy profundos hay que llamar a CopyTicks varias veces para esperar la paginación". OnTimer se adapta bien a ello.

Me di cuenta de que era para fines de demostración. Por eso me vino a la mente inmediatamente OnCopyTicks.

Ayuda con esto, tengo problemas con uno u otro.

Anton Zverev:

Necesito escribir una función que devuelva ticks de una fecha a otra. Si tiene éxito será verdadero, de lo contrario será falso.

 
Anton Zverev:

No entiendo por qué citas un código que es menos informativo incluso que la documentación. Gracias, por supuesto. Pero eso no es en absoluto lo que he preguntado.

El código de Renate es mucho mejor, pero no es lo mismo en absoluto.

Si necesitas pasar de (fecha antigua) a (fecha joven), lo necesitas así:

Consulta de las garrapatas (con un margen) de la "fecha antigua". En el array recibido ir desde el índice "0" y comprobar la fecha. En cuanto encuentre la primera ocurrencia (fecha joven), la memorizará (fecha joven del índice). En este punto, has determinado que el array de ticks desde el índice 0 hasta (índice fecha joven) contiene los ticks que quieres.

 
Estaría bien añadir una función para comprobar el estado de los ticks cargados/inyectados - en la base de datos local del terminal. Algo así como CheckXXX( símbolo ). Para no tener que estar tirando de la copiadora todo el tiempo.
 
Karputov Vladimir:

Si quieres pasar de (fecha antigua) a (fecha joven), haz lo siguiente:

Consulta de las garrapatas(con un margen) de la "fecha antigua". En el array recibido vaya desde el índice "0" y compruebe la fecha. En cuanto encuentre la primera ocurrencia (fecha joven), la memorizará (fecha joven del índice). En este punto has determinado que el array de ticks desde el índice 0 hasta (índice fecha joven) contiene los ticks que quieres.

Con una reserva es un desperdicio. Hago la petición por defecto (2000 ticks, creo), y continúo desde el punto (es fácil que se dupliquen los ticks), donde terminé.

No entiendo por qué no existe esta función por parte de los propios desarrolladores. ¿Por qué no sobrecargar los copyticks con otra opción de trabajo?