La mejor manera de analizar un mensaje FIX? [cerrado]


¿Cómo se analiza un mensaje de CORRECCIÓN usando python ? (Mensaje FIX como en el Protocolo FIX 'financiero')

Author: ap330, 2010-02-22

6 answers

¿Quieres decir con QuickFIX? (Puedo ver QuickFIX en sus etiquetas)

Si ese es el caso, no lo sé. Generalmente no es difícil escribir un analizador simple para un mensaje de CORRECCIÓN. Encontré que las herramientas web en valid fix hacen el trabajo.

 10
Author: sergej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-22 13:51:44

Aparte de usar el quickfixengine real, es fácil analizar el mensaje fix cuando sabe que contiene etiquetas específicas.

Contiene 0x1 pares separados de cadenas 'key=value'. Una complicación son los grupos porque tienes que averiguar que la etiqueta es la primera en un grupo (encabezado de grupo) y luego averiguar cuándo termina el grupo (cuando golpea otra etiqueta que no está en el grupo).

Otro campo problemático es el RawData que puede contener cualquier cosa, incluido el separador de campos 0x1, pero está precedido por RawDataLength por lo que tienes que leer primero y luego leer RawDataLength número de bytes después de la etiqueta RawData para llegar al siguiente campo.

Creo que quickfixengine usa el diccionario de etiquetas donde puede averiguar que la etiqueta es la primera de un grupo y luego seguir agregando hasta que golpee la etiqueta que no está en un grupo.

Cuando necesito hacer un análisis personalizado de los mensajes FIJOS, en su mayoría sé exactamente qué mensajes y qué datos esperamos, así que puedo modificarlos para aquellos mensaje.

 7
Author: stefanB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-06 00:16:29

El formato FIX es sorprendentemente molesto de analizar (ya que el formato no XML, es decir, el que sigue siendo utilizado por casi todo el mundo, no tiene marcadores de inicio y fin de subgrupo, en su lugar, tiene que trabajar en base a las reglas de ordenación de etiquetas, y las etiquetas que no están en un subgrupo, el encabezado o la cola pueden estar en cualquier orden).

Así que en lugar de analizarlo usted mismo, le recomiendo que use una biblioteca existente para hacerlo.

La única opción de código abierto bien mantenida es Java QuickFIX / J biblioteca.

Hay muchas soluciones comerciales, por ejemplo, CameronFIX

 5
Author: George Hawkins,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-22 13:57:35

Try http://fix.nowing.com

Es un analizador de mensajes de corrección basado en web

 4
Author: Neo Wang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-04 14:51:20

Desde el código fuente de quickfixj, utiliza TreeMap para manejar el mensaje de CORRECCIÓN.

En cuanto al formato XML, creo que FIX es mejor, aunque el análisis es más difícil en JAVA. porque XML es demasiado pesado.

 2
Author: user462872,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-30 13:40:38

No hay nadie mejor, pero dada la etiqueta quickfix que usted o el sistema SO adjunta, un vistazo a QuickFix open source FIX engine sería un buen lugar para comenzar.

Hay muchos proveedores comerciales también si se encuentra en una empresa donde eso importa, o si desea más soporte y servicios.

Buena suerte

 1
Author: sdg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-22 13:50:34