1 votos

Sistema/núcleo de casación de órdenes de intercambio para pruebas locales

Busco un servicio que pueda desplegarse localmente o conectarse a él y que emule el sistema de casación de pedidos de exchange (también conocido como matching core).

Recuerdo, que he visto en GitHub repo, con el software, que permite simular NYSE ou NASDAQ comportamiento ECN de la bolsa. Así que podría enviar órdenes a la misma, y comprobar cómo podrían ser ejecutados por el sistema de comercio. Por supuesto, no es 100% la copia exacta del núcleo de intercambio, pero permite simular un comportamiento diferente.

Supongo que no soy el único con este problema, así que busco consejo. ¿Podría alguien recordarme o compartir su propia experiencia para emular el comportamiento de coincidencia de órdenes?

3voto

Jo Liss Puntos 1273

No conozco ningún servicio de este tipo, pero simular el comportamiento de la bolsa para backtest es muy difícil, dada la llegada irregular de órdenes y su impacto, así como las órdenes ocultas. Incluso la ejecución de órdenes del servicio de negociación en papel es muy simple y tiene limitaciones (si envías una orden limitada, se ejecutará por precio-toque-límite y el tamaño es irrelevante). Incluso si encuentras algún servicio de gestión de ejecución para instalar localmente, seguirías necesitando datos y una base de datos de series temporales para utilizarlos. A continuación se presentan algunas consideraciones si desea construir su propia herramienta.

Un buen sistema de ejecución de órdenes debe tener en cuenta las órdenes de mercado, las órdenes limitadas, el deslizamiento, la latencia y el cálculo del precio medio de ejecución y el tamaño tanto de las órdenes de mercado como de las limitadas.

Si una opción simplificada satisface sus necesidades, puede aplicarla usted mismo. Necesitaría datos históricos de la cartera de pedidos hasta el nivel N (instantánea o actualización, ambas están bien). Cuando envías una orden de mercado de un tamaño determinado, bajas por el libro de órdenes y sigues reduciendo el tamaño hasta que el tamaño final sea cero. De esta forma puedes calcular el precio medio de ejecución (ponderado por el tamaño a ese precio) y el deslizamiento. Cuando envías una orden limitada, puedes comprobar si hay una orden mejor disponible o no. En caso afirmativo, puede proceder como con una orden de mercado, pero la parte complicada es cuando se alcanza el precio límite y el tamaño restante es mayor que cero (puede suponer que se ha producido una ejecución o una ejecución parcial). Dependiendo de la granularidad de los datos de su libro de órdenes puede implementar alguna lógica para tener en cuenta la latencia.

[EDITAR] Para casos de uso avanzados, puede consultar el siguiente repositorio de código abierto: https://github.com/exchange-core/exchange-core

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