Actualmente estoy desarrollando una aplicación de comercio diario que, basada en reglas y algoritmos, compra o vende acciones, que en este momento podría comprar/vender una acción en la magnitud de 100 por día.
Estoy tratando de probar mi estrategia, pero no sé cómo manejar la diferencia entre la oferta y la demanda. Si, por ejemplo, en mi backtesting asumo que puedo comprar al precio actual, podría obtener un resultado sesgado ya que comprar al último precio supone que alguien todavía está dispuesto a vender a ese precio, lo que podría no ser el caso.
¿Hay mejores prácticas aquí? Uno de mis grandes problemas es que no tengo acceso a la profundidad histórica de pedidos para cada punto de datos, por lo que no conozco la demanda y la oferta. Aquí hay un par de opciones que he considerado (para comprar una acción):
Y si tuviera acceso a la profundidad del pedido:
Sin utilizar datos de profundidad, la mejor aproximación sería una función de volatilidad y liquidez. Los pesos dependerán de tu talla. Sin ir tan lejos, el método más simple sería esperar a que el precio se negocie a través de su precio por encima del x por ciento. Esto supone que los tamaños de sus posiciones se ajustan de antemano a la liquidez del instrumento.
Supongamos que sus compras y ventas no están afectando al mercado. Eso es un error, pero consciente. Permanecerá pequeño mientras usted permanezca pequeño.
Lo que puede hacer entonces es simular la ejecución real de la estrategia. Tendría cuidado no solo de seleccionar aleatoriamente días o períodos para ejecutar una simulación, sino también de definir las condiciones de mercado que desea representar. Toro/oso: interrupciones, trimestrales, anuales, etc.
Si su(s) método(s) e hipótesis sobreviven a la prueba directa, esa es una prueba mucho más sólida que la prueba retrospectiva. No importa cuán cuidadoso sea el backtesting, siempre terminas (de alguna manera) validando tus hipótesis con los mismos datos que se usaron para crearlas, que es la negligencia científica más común y peligrosa (en mi humilde opinión).
Como observa correctamente, realmente necesita acceso a los datos de profundidad de pedidos para evitar una variedad de sesgos relacionados con el diferencial/liquidez. Se recomienda encarecidamente intentar obtener esos datos lo antes posible, ya que es excepcionalmente difícil realizar una prueba retrospectiva precisa de cualquier estrategia comercial sin ellos. Si / cuando tiene datos de profundidad de pedido, necesita usar los supuestos más pesimistas y cercanos al mundo real cuando ejecuta su modelo:
Dos citas más que siempre vale la pena recordar cuando se realiza una prueba retrospectiva de cualquier estrategia:
"Nunca he visto un mal backtest"
--Dimitris Melas
"El primer principio es que no debes engañarte a ti mismo, y eres la persona más fácil de engañar"
--Richard Feynman
Víctor
borrado
misantroop
bob baerker