4 votos

Cómo filtrar y normalizar los datos de mercado obtenidos de fuentes distintas (FIX 4.4, bloomberg, etc.) en un sistema de trading algorítmico?

Me pregunto si algunos de ustedes sabe cómo resolver este requisito:

Tengo que definir la arquitectura de un sistema de trading algorítmico (pero yo no soy arquitecto, por lo que estoy tratando de hacer mi mejor esfuerzo). He definido una arquitectura inicial, pero justo ahora estoy atascado en el feed de datos de controlador de componente.

Quiero decir, el sistema recibe los datos del mercado a partir de diferentes fuentes (bloomberg, FIX4.4, etc) y deben normalizar los datos para producir un utilizable de datos de los piensos que se supone que para ser consumidos por los algoritmos de hacer algunos cálculos de una a crear algunos de los pedidos, algo como esto:

mk proveedores de datos => componente de datos => normalizar los datos => datos utilizables => algoritmos (consumo normalizado de datos)

Así que, me pregunto si usted sabe que una buena manera de hacer esto o tal vez usted conoce a un buen opensource mercado feed de datos controlador que puede recibir los datos de los distintos proveedores y producir una limpieza y normalización de la secuencia de datos de mercado.

Yo le agradezco mucho su respuesta. Gracias de antemano.

PD: he estado investigando y he encontrado esto:

Y por ahora estoy revisando los sitios...

1voto

Timothy Carter Puntos 7079

Si entiendo tu pregunta correctamente, usted se pregunta ¿qué es un buen diseño para una normalizado de alimentación. Este es un trivial la pregunta de (i) el retiro de los campos de datos (por ejemplo, precio, volumen) para filtrar hacia fuera de cada uno de los piensos y (ii) cómo mantener que en un sistema de comercio con un mínimo de sobrecarga computacional.

Con respecto a (i)

Yo altamente recomiendo que te acerques a este en un test-driven manera. En otras palabras, averiguar qué datos de su aplicación se va a utilizar aguas abajo y 'revertir' lo que usted necesita para normalizar aguas arriba.

Un ejemplo trivial: Si su estrategia sólo las necesidades de los precios, probablemente, hay poco uso en la normalización de la coincidencia de los números. Si su cumplimiento y post-análisis del comercio está cerrado por los tiempos de la transacción en lugar de números de secuencia, entonces probablemente no es necesario que sea.

Dos consejos que te puedo dar son:

  • No estire demasiado a ti mismo. Es fácil cometer el error de tratar de normalizar demasiados desde el día 1. Usted no quiere perder el tiempo tratando de conseguir que el mercado de divisas, swaps, opciones sobre acciones, valores de renta variable, futuros que cotizan en bolsa, etc. todos en el mismo normalizado de alimentación. Esto probablemente tomará un tiempo muy largo antes de que usted está tratando con todo eso, y por el tiempo que usted tiene, usted probablemente tiene a alguien haciendo esto para usted de todos modos.
  • Pensar un poco acerca de cómo va a mantener depreciado en los campos de la versión y los cambios en la normalizado de alimentación. No importa cuán exhaustiva de su diseño inicial, te garantizo que va a encontrar cambios en el transcurso de la implementación y el tiempo real de uso.

Con respecto a (ii)

Sin conocer su arquitectura, la mejor respuesta que puedo dar es una colección de obvia de desarrollo de software de consejos: mantener esto en memoria, minimizar la asignación y el GC de arriba, y minimizar el número de veces que usted está transportar los datos de hilo a hilo.

Nota importante

Si usted es un comercial basado en más de 1 de alimentación de datos, esto no es algo que usted quiere hacerlo solo. Es que en serio no vale la pena tu tiempo. Hay un motivo por el proveedor de datos normalizado feeds son costosos, que tomar un montón de tiempo para mantener.

La parte que no entiendo acerca de su pregunta es: Bloomberg es una normalizado feed de datos de proveedores considerando que la REVISIÓN es a veces utilizado por los intercambios directamente, ¿por qué la normalización a través de los dos? Entonces usted está a solo introducir una sobrecarga innecesaria en el Bloomberg camino. Sólo quiero usar Bloomberg solo si ese es el caso.

0voto

Chris Puntos 378

Usted debe comprobar CoralMD que hace exactamente lo que usted necesita:

  • Proporciona una rápida mercado de libro de datos de la aplicación que se puede agregar citas de varios intercambios, dando una visión global del mercado.

  • El mercado del libro de datos también puede proporcionar una per-intercambio de vista.

  • Proporciona un marco simple para generar feeds de datos de mercado para cada intercambio.

  • Y lo más importante, proporciona la infraestructura para distribuir normalizado de datos de mercado internos para todas las partes de su sistema de comercio, de GUIs para baja latencia estrategias, como el diagrama siguiente se ilustra:

enter image description here

Descargo de responsabilidad: yo soy uno de los desarrolladores de CoralMD

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