3 votos

Backtesting de la estrategia de daytrading, ¿cómo manejar el spread?

Actualmente estoy desarrollando una aplicación de daytrading que en base a reglas y algoritmos compra o vende acciones, que ahora mismo podría comprar/vender una acción en la magnitud de 100 por día.

Estoy intentando hacer un backtest de mi estrategia pero no sé cómo manejar el spread 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 al comprar al último precio se asume que alguien todavía está dispuesto a vender a ese precio, lo que podría no ser el caso.

¿Existen buenas prácticas en este sentido? Uno de mis grandes problemas es que no tengo acceso a la profundidad de la orden histórica para cada punto de datos, por lo que no conozco la oferta y la demanda. Aquí hay un par de opciones que he considerado (para comprar una acción):

  • Utiliza el último precio (En el mundo real, puede que no pueda comprar a este precio)
  • Calcule el movimiento medio entre las operaciones de la acción y añádalo al último precio y utilícelo.

Y si tuviera acceso a la profundidad de la orden:

  • Utilizar la oferta actual (¿Y si el volumen de esa oferta es mucho menor que el mío?)
  • Utilizar la media de la demanda y la oferta (debería dar un buen valor, suponiendo que la mitad de las veces el siguiente precio será la demanda actual, y la otra mitad la oferta )

0 votos

¿Qué tipos de órdenes utilizaría en la vida real y en el back-testing? Parece que en su escenario hay órdenes de mercado. ¿Ha pensado en utilizar órdenes de compra y venta con tope?

0 votos

Sí, mi plan es utilizar órdenes de mercado. Pero incluso si utilizo órdenes de stop, ¿no me encontraré con el mismo problema? Digamos que una acción alcanza (desde un precio más alto) $5.00 is my trigger, and then i want to buy at $ 5,00, pero el pedido actual es $5.01 so i will not be able to buy at $ 5.00.

1 votos

Las órdenes de stop SON órdenes de mercado. Una orden stop normal sólo significa que si el precio alcanza el punto X, la orden se envía a mercado. Con una stop-limit, la orden limitada se envía en su lugar, pero el valor por defecto es el mercado para las "órdenes stop".

2voto

workless Puntos 108

Sin utilizar datos de profundidad, la mejor aproximación sería una función de la volatilidad y la liquidez. Las ponderaciones dependerían de su tamaño. Sin ir tan lejos, el método más sencillo sería esperar a que el precio se negocie a través de su precio por encima del x por ciento. Esto supone que el tamaño de sus posiciones se ajusta de antemano a la liquidez del instrumento.

0 votos

Esta era mi idea original, calcular de alguna manera un "spread medio" para una acción determinada, en función de la volatilidad y la liquidez. Voy a intentar esto para ver si puedo encontrar un buen cálculo para el "spread promedio"

0 votos

El problema clásico de utilizar algo como el diferencial medio es que cuando los precios son más volátiles y tienen un mayor impacto en los resultados, generalmente el diferencial es también el más amplio y el más ilíquido, lo que crea un sesgo infrecuente pero enorme, ya que todos los factores suelen estar correlacionados simultáneamente.

0 votos

Eso es muy cierto. Supongo que comparar la volatilidad a muy corto plazo con la volatilidad "media" a más largo plazo podría ayudar ligeramente, pero no es un sustituto de la profundidad real. Todo se reducirá a si los cambios mediocres en el deslizamiento están determinando la viabilidad de la estrategia o no.

0voto

recluze Puntos 457

Como bien observas, realmente necesitas acceder a los datos de profundidad de órdenes para evitar una serie de sesgos relacionados con el spread/liquidez. Se recomienda encarecidamente que intente obtener esos datos lo antes posible, ya que es excepcionalmente difícil hacer un backtest preciso de cualquier estrategia de negociación sin ellos. Si tiene datos sobre la profundidad de las órdenes o cuando los tenga, deberá utilizar los supuestos más pesimistas y cercanos al mundo real cuando ejecute su modelo:

  • Siempre debe permitir que su estrategia compre sólo en la oferta actual
  • Sólo le permite comprar/vender la liquidez que estaba disponible
  • Si su estrategia sugirió que los precios más profundos en el libro de órdenes eran también compras/ventas, también debería comprarlos en las liquidaciones correspondientes
  • Tienes que modelar las fluctuaciones de tu banco a través de Kelly o cualquier sistema de gestión de dinero que estés utilizando para asegurarte de que te mantienes solvente durante el tiempo de uso de dicha estrategia

Dos citas más que siempre vale la pena recordar cuando se hace un backtesting de cualquier estrategia:

"Nunca he visto un backtest malo"

-- Dimitris Melas

"El primer principio es que no debes engañarte a ti mismo, y tú eres la persona más fácil de engañar"

-- Richard Feynman

0 votos

Gracias, intentaré ver si puedo conseguir los datos de profundidad también, pero creo que será difícil.

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