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