1 votos

¿Cuál es una estructura de datos eficaz para guardar los estados de la cartera de pedidos?

En primer lugar, soy consciente de la pregunta tan relacionada ¿Cuál es una estructura de datos eficaz para modelar la cartera de pedidos? pero mi pregunta es un poco diferente aquí.

Quiero guardar los estados del libro de órdenes tras la llegada de cada mensaje, lo que incluye añadir, cancelar y operaciones. Por ejemplo, supongamos que estamos utilizando un B-Tree con listas de doble enlace, después de cada mensaje voy a serializar a disco.

Estas operaciones se realizan fuera de línea mediante la reproducción de datos históricos, por lo que no me preocupa demasiado el rendimiento y no necesito implementar la correspondencia yo mismo. Mi objetivo principal es poder recuperar rápidamente el aspecto de la cartera de pedidos a partir de un mensaje específico y generar una instantánea en futuras investigaciones, de modo que no tenga que reproducir todos los datos cada vez.

Por lo tanto, me interesa sobre todo cómo guardar eficazmente estos estados de la cartera de pedidos para lograr un uso reducido del disco y una carga rápida. Para algunos instrumentos líquidos podría haber millones de mensajes y parece poco realista guardar todas las instantáneas, especialmente cuando son altamente redundantes y correlacionadas en serie. Estoy pensando en guardar sólo los cambios de los libros de órdenes como secuencias como algo así como "precio 100 + vol 1000, precio 101 - vol 100", pero entonces sería dependiente de la ruta.

¿Alguna sugerencia?

3voto

Charles Chen Puntos 183

Un enfoque sería hacer una instantánea cada $n$ mensajes con $n$ elegidos de forma que al aplicar $n$ mensajes a una determinada cartera de pedidos es lo suficientemente rápido para usted. Esto supone una reducción de las necesidades de almacenamiento en un factor aproximado de $n$ y debería ser rápido aplicar un número limitado de mensajes.

Si además puedes reproducir los mensajes hacia atrás, el tiempo previsto para la reproducción de un determinado mensaje se reduce a la mitad.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X