1 votos

Modelo preciso pero la ejecución en el backtesting está perdiendo dinero

Tengo un modelo de clasificación binaria que predice la COMPRA (1) y la VENTA (-1) con una puntuación F1 fuera de muestra del 71% (la precisión es del 65% y la recuperación del 80%). La salida del modelo es una probabilidad de que se produzca una etiqueta de COMPRA, que luego se utiliza en una fórmula de tamaño de apuesta para apostar en efectivo (similar al criterio de Kelly). El modelo también se entrenó teniendo en cuenta la comisión y el deslizamiento conservador.

Ahora que tengo el modelo entrenado, estoy haciendo un backtesting con datos fuera de muestra. Sin embargo, parece que la ejecución está perdiendo dinero a largo plazo. El modelo está funcionando como se esperaba - incluso en los datos de backtest, todavía funciona con una puntuación F1 del 71%, pero parece que la comisión y el deslizamiento están erosionando las ganancias.

¿Existe algún consejo/reglas/literatura que uno deba seguir cuando hace backtesting y simula la ejecución? Me resulta extraño que el modelo funcione tan bien con datos fuera de la muestra y que, sin embargo, pierda dinero; de nuevo, el modelo fue entrenado con estimaciones conservadoras sobre el deslizamiento, más altas de lo que ocurriría en el comercio real.

EDITAR: Como se ha sugerido en los comentarios, voy a ampliar un poco más lo que hace el modelo. Los datos son simples series temporales OHLCV con alguna ingeniería de características aplicada (por ejemplo, valores CDF para la distribución de los retornos, haciendo estacionarios los precios a través del operador backshift, normalizando los datos entre 0 y 1). El método para etiquetar los datos se ha tomado de la obra de López Avances en el aprendizaje automático financiero , en concreto el Etiquetado de triple barrera Primero se calcula el porcentaje de los rendimientos a partir del precio de cierre, y luego se calcula un EWMA de la desviación estándar (std) de estos rendimientos - esto es como una volatilidad implícita. La barrera superior es un múltiplo del EWMA de std de los rendimientos y, de forma similar a la barrera inferior, la tercera barrera vertical es una ventana de tiempo fija posterior (digamos 60 minutos, o 5 días). En cada momento i calculen los rendimientos entre i y i + j . Si este rendimiento alcanza (es mayor o igual) la barrera superior (EWMA superior de std de los rendimientos en i ), se etiqueta BUY (1) en el momento i . Si la rentabilidad alcanza la barrera inferior (EWMA inferior de la std de las rentabilidades en i ), se etiqueta como VENTA (-1) en el momento i . Si la rentabilidad no ha alcanzado la barrera superior ni la inferior en el momento en que ha transcurrido el tiempo de la ventana fijada, se etiqueta como VENTA (-1) en el momento i .

Los datos del backtest se distribuyen de la misma manera que los datos de entrenamiento, como demuestra una prueba de chi-cuadrado y el hecho de que el modelo alcanza puntuaciones F1 similares entre los datos de prueba y los del backtest (ambos fuera de muestra).

2voto

Hamish Gibson Puntos 11

¿Puedo preguntar qué tipo de backetest está utilizando? ¿Es un backtest basado en eventos o un simple backtest de bucle for? Dependiendo de si escribiste el tuyo propio o estás usando una biblioteca para ello, intenta analizar una muestra de operaciones individualmente.

Si sólo predice una compra o una venta, entonces no le queda ningún margen de maniobra como un hold opción. Por lo tanto, cada operación que usted hace significa que usted está pagando las tasas de transacción, incluso si los movimientos de los precios no justifican ninguna importancia. Yo también estoy construyendo un sistema en el que los beneficios se ven reducidos por las comisiones. Tienes que encontrar una manera de hacer que el concepto de comisiones se convierta en algo endógeno a tu modelo de ML, porque concedido mientras que el 71% es impresionante, las comisiones de negociación son algo exógeno a los modelos de ML.

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