esto es realmente mucho más difícil de escribir que un backtest para órdenes de mercado
Es de esperar. En mi experiencia, la dificultad y el tiempo de ingeniería suben 1-2 órdenes de magnitud, porque, entre otras cosas:
- En cuanto a la simulación del mercado, necesita
- datos completos de la cartera de pedidos, en lugar de sólo BBO;
- una marca de tiempo mucho más precisa en sus datos;
- mucho más la contabilidad de las órdenes de estrategia;
- una medición mucho más precisa de las distintas latencias del motor de concordancia, la pasarela y el lado del cliente;
- para tener en cuenta al menos un orden de magnitud más de escenarios de emparejamiento oscuros y casos límite como subastas, paradas, peticiones de oferta, prioridad precio-tiempo no pura, libro implícito;
- para tratar el comportamiento no observable como la selección adversa, la liquidez oculta;
- simular los efectos de autoexcitación que estarían presentes en la producción cuando sus pedidos se publican realmente en el feed;
- herramientas para la calibración posterior a la operación de su simulación.
- En el lado del cliente, ahora hay que gestionar un espacio de estado mucho mayor.
Las empresas que destacan en la negociación basada en la simulación dedican decenas de años de trabajo a perfeccionarla, y cuentan con especialistas para redactar simulaciones dirigidas a lugares específicos. Incluso algunos de los 30 principales creadores de mercado no tienen una buena simulación pasiva.
Me gustaría saber si alguien ha hecho backtesting de órdenes limitadas? ¿Algún consejo? ¿O esto es realmente una muy mala idea?
Véase también mi respuesta aquí . Generalmente recomiendo no hacerlo a menos que el objetivo principal de su estrategia es proporcionar liquidez y reducir el diferencial . De lo contrario, la siguiente mejor razón es que usted está usando órdenes limitadas puramente para reducir el deslizamiento, pero su estrategia ya es pasable (y en producción durante algún tiempo) con órdenes de mercado.
La peor razón para considerarlo es si tu estrategia aún no ha sido desplegada a producción y estás incorporando órdenes pasivas, no comercializables, para que pase cualquier umbral concreto o subjetivo que tengas para desplegar la estrategia.
porque el backtest debe tener en cuenta en cuenta el momento en que la orden de límite fue alcanzada
Además, si establezco un límite a la posición que se me permite tomar, esto hace que el backtest sea muy difícil de escribir.
No te equivocas en ambas afirmaciones. Es una cuestión de dificultad de aplicación. Dicho esto, ambos son de los problemas más fáciles de la simulación pasiva en realidad:
- Usted puede hacer una primera estimación de la orden (esto será impreciso) cuando la "orden de límite fue golpeado" por el mantenimiento de una estructura de libro de órdenes por separado en el lado del simulador, y ack'ing un relleno a la estrategia cuando un comercio se lleva a cabo en su libro de datos almacenados con menor prioridad que su orden.
- La mayoría de las estrategias deberían tener límites de posición, incluso las estrategias de toma de liquidez. Incluso si no es por motivos de gestión de modelos o de riesgos, se necesitaría un límite de posición debido a los requisitos de margen. Si su plataforma está bien diseñada, la misma capa de riesgo pre-negociación se encargará tanto de la simulación como de la producción, y parte de esto -la estrategia sigue necesitando un estado de fallo de posición excedida- se modulará lejos de su lógica de estrategia.