2 votos

¿Por qué necesitamos backtesters basados en eventos?

Estoy leyendo esto artículo en quantstart con respecto a los backtesters impulsados por eventos. Me parece que la principal ventaja de utilizar un backtester basado en eventos es que evita el sesgo de anticipación.

Normalmente descargo los datos del precio de las acciones en yahoo finance, que contiene el índice datetime en pandas.

Pero en los modelos estadísticos de Python, en particular los modelos de previsión de series temporales como ARIMA y GARCH, se ajustan muy bien a los datos.

Pregunta: ¿Por qué necesitamos backtesters basados en eventos?

2voto

Simon Puntos 106

Los dos tipos de backtesters tienen objetivos ligeramente diferentes.

El backtest vectorizado es una forma bastante burda de probar rápidamente una estrategia. Se hace multiplicando el vector de señales con el vector de rendimientos y el resultado es la curva de equidad.

El backtester dirigido por eventos es una simulación más pensada. Al hacer uso de un backtester basado en eventos, podemos evitar en gran medida el sesgo de anticipación al alimentar sólo los datos a medida que están disponibles. Esto también se acerca mucho a la forma en que su comercio se llevará a cabo en la vida real a través de un sistema de ejecución.

También tenemos la ventaja de incorporar los costes de transacción, las restricciones de liquidez y el impacto del mercado. Esto no se puede hacer con el método vectorial. (Se podrían añadir los costes de transacción a posteriori).

El sistema event driven al que te refieres de quantstart tiene la ventaja añadida de que puedes cambiar tu backtester por un modelo en vivo con bastante facilidad con sólo cambiar un parámetro. Ya crea un secante, un sistema de contabilidad y métricas de rendimiento previas y posteriores. El sistema de eventos es el camino a seguir si quieres construir una infraestructura de grado institucional.

Los backtesters vectorizados son para ideas de investigación rápidas, pero si tienes uno impulsado por eventos, entonces puedes olvidarte de los vectorizados...

Ah, y sé de fondos que han implementado la arquitectura basada en eventos y la he utilizado personalmente. Es el camino a seguir.

2voto

Timothy Carter Puntos 7079

Usted no Necesito un backtester basado en eventos.

Para establecer alguna convención, una función o método que toma un vector como argumento (por ejemplo, una función de MATLAB, statsmodels API) a veces se denomina indistintamente y de forma confusa como vectorizado función. Esto no significa necesariamente que utilice SIMD vectorización aunque a menudo es perfectamente adecuado utilizar extensiones vectoriales SIMD dada la disposición de los datos de entrada, y un compilador moderno lo explotará.

Entre bastidores, el citado vectorizado es simplemente pasar los elementos a través de un bucle, al igual que un backtester dirigido por eventos en ese sentido. Así que no hay ninguna razón de corrección para preferir un enfoque sobre otro.

Sin embargo, la principal ventaja de envolver este bucle alrededor de un backtester basado en eventos, en lugar de una función vectorizada, es que el primero es idéntico a cómo se implementará para los datos de producción (que vienen en flujo de 1 evento a la vez), mientras que el segundo necesita ser modificado para manejar el flujo de datos en tiempo real.

También hay una pequeña ventaja, ya que las funciones vectorizadas tienden a dificultar el razonamiento en torno a la secuencia de eventos y a evitar el sesgo de búsqueda: lo más probable es que todo lo que se necesita es un error de indexación de uno en uno para causar un daño grave a la precisión de su backtest, mientras que es bastante imposible cometer este error si está procesando los elementos de una manera impulsada por eventos.

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