1 votos

¿Cómo diseñar un backtester de renta variable a medida?

Estaba pensando en escribir mi propio backtester y me doy cuenta de que tengo que hacer algunas suposiciones. Así que esperaba poder publicar lo que estoy planeando hacer y espero que algunos de ustedes puedan darme algunas ideas sobre cómo hacerlo mejor (estoy seguro de que hay mucho que se puede mejorar).

En primer lugar, mi estrategia consiste en mantener las acciones por lo general algunos días, no estoy haciendo (probablemente ninguna) operación intradía.

Así que esto es lo que estaba pensando. En primer lugar, compraría algunas comillas de acciones OHLC al minuto que cubran las acciones que me interesan (estoy pensando en comprar algunas de pitrading.com, ¿es su calidad aceptable?). Luego, si el algoritmo activa una compra o venta en alguna barra, "ejecutaría" la orden utilizando el máximo o el mínimo de la siguiente barra (intentando ser lo más pesimista posible). Una cosa que me resulta curiosa es el bid/ask, así que estaba pensando en añadir/restar unos céntimos para tenerlo en cuenta a la hora de comprar/vender. Me gustaría ver lo que estos valores han sido recientemente (diferencia entre la oferta y la demanda y la comilla de algunos datos recientes sobre estas acciones y luego sólo tiene que utilizar estos números como yo no sería backtesting tan lejos hacia atrás). Asumiría que puedo comprar/vender todo lo que quiera entonces a ese precio.

Por último, incluiría el coste de la comisión en el comercio. No tendría en cuenta el efecto que mi operación tendría en el mercado. ¿Existe alguna pauta aproximada que utilice el volumen para estimar cuánto tendría que comprar/vender para tener un efecto?

También simularía órdenes de venta stop-loss y éstas también se ejecutarían en el siguiente mínimo de la barra después de que el precio pasara el umbral.

Eso es todo, será bastante sencillo de implementar. Sólo espero que sea conservador para que me dé una idea de lo bien que funciona mi programa.

Cualquier opinión o crítica sobre este programa sería muy apreciada. Soy nuevo en esto y estoy seguro de que hay algunos detalles que estoy perdiendo.

13voto

Ant Puntos 121

Para el "máximo pesimismo" hay que calcular así:

  • para los largos - entrar en el máximo de la barra y salir en la barra baja en la barra siguiente barra de señal

  • para los cortos - entrar en el mínimo de la barra y salir en el máximo de la barra en la barra siguiente barra de señal

Ya había oído hablar de este enfoque de las pruebas de espalda como "prueba de tortura".

6voto

Chris Bunch Puntos 639

Hay muchos detalles que hay que tener en cuenta para hacer un backtest adecuado. Además de la corrección relativa a los precios de entrada/salida de la barra mencionada antes También tendrá que corregir el diferencial entre la oferta y la demanda, que puede ser mayor que el máximo y el mínimo de algunas acciones en algunos momentos. Algunos otros detalles son:

  • Divisiones
  • Dividendos
  • Cambios en el ticker
  • Emisiones de warrants/derechos
  • Actividad de fusiones y adquisiciones

Tenga cuidado de incluir los valores que han sido retirados de la lista en su backtest, y en general sólo utilice los criterios que se hubieran conocido en el momento de construir su muestra (véase aquí ).

En cuanto a los límites de volumen, una buena aproximación es no negociar nunca más del 5% del volumen típico que tiene lugar en un periodo determinado. Por ejemplo, si tiene la intención de comprar 1 MM de dólares de alguna acción durante, digamos, un período de media hora, asegúrese de que al menos 20 MM se negocian normalmente durante esa media hora del día. Por su pregunta, sin embargo, parece que usted está pensando en una estrategia que se ejecuta minuto a minuto, por lo que probablemente es mejor mirar el libro de órdenes y cuántas acciones están normalmente disponibles para el comercio. Puede tener una idea de eso mirando las barras de volumen por minuto, y asumir que no podrá negociar más que el 10º percentil de la distribución.

4voto

Vipul Naik Puntos 3037

Después de haber desarrollado muchos programas de backtesting personalizados en el pasado, me gustaría haber empezado comprando un backtester comercial decente por unos cientos de dólares. El coste de comprar uno ya completado le ahorrará horas de tiempo en aprender los matices y problemas que conlleva la implementación del backtesting. Una vez que conozca los entresijos y las limitaciones del software, podrá pasar a una programación más flexible. Como mínimo, dispondrá de una implementación de producción (con miles de horas de trabajo profesional) para comparar los resultados de su propio software personalizado y depurar los problemas que surjan. El coste de comprar un producto profesional real para aprender los entresijos es trivial a largo plazo.

3voto

Coincoin Puntos 12823

También puede entrar/salir en la apertura de la siguiente barra después de que la señal de trading sea generada por el backtester. En este caso, las barras horarias pueden ser más apropiadas para la negociación diaria.

2voto

mendicant Puntos 489

La simulación del stop loss con un OHLC estricto no es posible, ya que hay que asumir el orden de los máximos y los mínimos (¿cuál fue el primero?). Usted puede hacer una suposición cuando hay una línea recta a través del precio (abrir a la baja, cerrar a la alta, por ejemplo), sin embargo, en general, usted tendrá días en los que no está claro qué baja / alta llegó primero.

También hay que tener en cuenta la lógica de las órdenes de mercado frente a las órdenes limitadas. Si utiliza órdenes de mercado necesita algunas suposiciones de deslizamiento. Si utiliza órdenes limitadas, hay una probabilidad de que su orden no se ejecute.

Además, el uso de OHLC puede llevarle a diseñar una estrategia que opere en la Apertura. Sin embargo, el precio de apertura es extremadamente volátil y puede enfrentarse a un fuerte deslizamiento y a la incapacidad de alcanzar el precio de apertura cotizado.

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