Signal Pilot
🟠 Avanzado • Lección 70 de 85

El aprendizaje automático como filtro

Tiempo de lectura ~13 min • Módulo 8: Construir un sistema
Signal Pilot
Formación profesional de trading
0 %
¡Estás progresando!
Sigue leyendo para completar esta lección

La lección 69 dejó a esta página una rejilla. Seis hiperparámetros con cinco valores cada uno son 15.625 configuraciones, una rejilla que un principiante llamaría modesta, y la aritmética de la lección 64 dice que una búsqueda de esa anchura, juzgada sobre 156 operaciones, fabrica 0,318 de un R por operación antes de que el mercado haya hecho nada. Esa es la objeción conocida al aprendizaje automático en el trading y es la que tiene respuesta: cuenta la rejilla, sube el listón de 1,645 a 4,507 y mira si el modelo lo pasa. La objeción que no se responde así no lleva ningún modelo dentro. Un filtro no crea operaciones, las quita, así que solo puede devolverte los perdedores que haya logrado atrapar, y una estrategia que se ve bien casi no tiene ninguno que atrapar. La regla ganadora de la lección 63 tiene seis ganadores y un perdedor. Un filtro igual de bueno reteniendo ganadores que rechazando perdedores tendría que acertar el 96,04 por ciento de las operaciones no vistas solo para quedarse a cero en esa regla, y uno perfecto, que atrapa el único perdedor y no toca nada más, la mejoraría un 4,30 por ciento.

Requisitos previos: Lección 64, por la fórmula del máximo esperado y el listón que fija un recuento de configuraciones, lección 63, por las siete operaciones que esta página desmonta, y lección 17, por los dos números de los que está hecho un factor de beneficio.

Lo que cuesta una rejilla antes de haber visto un precio

Una regla tiene parámetros y la lección 64 los contó. Un modelo tiene hiperparámetros, que son lo mismo con otro nombre, y tiene una dimensión que una regla no tiene: qué rasgos entran. Ambas cosas se multiplican, y la aritmética que tasa una búsqueda no distingue cuál es cuál. Cuenta configuraciones, y el recuento se sabe antes de que corra nada.

Toma la rejilla que dejó el anticipo. Seis hiperparámetros con cinco valores cada uno son 15.625, y la sustitución va entera para que nada de esto haya que creerlo. Uno dividido entre 15.625 es 0,0000640, y el valor de la normal estándar que deja esa cantidad en la cola superior es 3,83028. Después, 15.625 por e son 42.473, uno dividido entre eso es 0,0000235, y su valor normal es 4,06963. Ponderando los dos por 0,4228 y 0,5772 sale 3,96843, que es un estadístico t. Divide entre la raíz cuadrada de 156, que es 12,49, y la ventaja fabricada es 0,318 de un R por operación. El listón que una búsqueda de esa anchura tiene que pasar para que solo el cinco por ciento de las búsquedas inútiles lo superen está en 4,507.

Ahora la dimensión que nadie cuenta. Un menú de veinte rasgos con la instrucción de elegir de tres a seis es la forma habitual de este ejercicio, y esa instrucción se lee como una simplificación. Es una búsqueda. Elegir exactamente cuatro de veinte son 4.845 modelos distintos, elegir de tres a seis son 60.249, y el menú estaba escrito antes de que empezaras, así que el recuento está disponible para quien lo quiera. Multiplica la cifra de cuatro entre veinte por la rejilla de hiperparámetros y el trabajo de una tarde son 75.703.125 configuraciones.

Qué has variadoConfiguracionesListón al cinco por cientoR por operación fabricado sobre 156 operaciones
Tres hiperparámetros, cinco valores cada uno1253,3460,209
Cuatro hiperparámetros, cinco valores cada uno6253,7690,250
Seis hiperparámetros, cinco valores cada uno15.6254,5070,318
Cuatro rasgos elegidos de un menú de veinte4.8454,2520,295
Las dos últimas cosas juntas75.703.1256,0610,453

La última fila es el recuento honesto de una tarde, y 6,061 es un estadístico t que unos cientos de operaciones no van a producir por buena que fuese la idea. Lee, eso sí, la tercera columna de arriba abajo y la forma es más suave de lo que suena: pasar de 15.625 configuraciones a 75.703.125 es 4.845 veces más búsqueda y mueve el listón 1,554. El castigo crece con el logaritmo del recuento, y eso corta por el lado que nadie menciona. No hace falta un modelo de moda para estar mal expuesto. Cuatro hiperparámetros y ninguna selección de rasgos ya están en 3,769.

Así que supón que haces todo eso bien. Supón que cuentas la rejilla, pasas el listón y tienes en la mano un modelo que de verdad ordena tus propios setups mejor que el azar. El resto de esta página trata de si eso vale algo, y no necesita ningún recuento de configuraciones, ninguna simulación y ninguna suposición sobre los mercados.

Móntalo como funciona el dinero de verdad. Un filtro no encuentra operaciones nuevas. Se sienta sobre los setups que tu método ya produce y quita algunos, así que la comparación honesta es el beneficio total sobre las mismas oportunidades originales, no el beneficio por operación tomada. Escribe tu tasa de acierto como p y tu pago como b, ambos de la lección 17, de modo que un ganador paga b y un perdedor cuesta uno. Que el filtro retenga una fracción s de los ganadores y rechace correctamente una fracción t de los perdedores. Por operación original renuncia a p por uno menos s por b, y ahorra uno menos p por t. Vale la pena cuando lo segundo es al menos lo primero:

(1 − p) t  ≥  p (1 − s) b

Divídelo de dos maneras y dice dos cosas distintas y útiles. Divide entre p por uno menos s y los perdedores que el filtro tira tienen que superar en número a los ganadores que tira por al menos b, tu ratio de pago, que es una prueba que puedes hacer sobre un registro de operaciones con dos recuentos y sin estadística ninguna. Divide en cambio entre uno menos p y el lado derecho se convierte en p b entre uno menos p, que es beneficio bruto entre pérdida bruta, la cantidad que suele llamarse factor de beneficio y el único nombre nuevo de esta página. Son los dos números de la lección 17 escritos como uno.

Si el modelo es igual de bueno en las dos direcciones, de forma que s y t son el mismo número a, la condición se reduce a un umbral sobre la exactitud sola: a tiene que ser al menos el factor de beneficio dividido entre uno más el factor de beneficio. Al revés, un filtro con exactitud a se gana su sitio en cualquier estrategia cuyo factor de beneficio esté por debajo de a entre uno menos a.

Con un 52 por ciento de exactitud, en cualquier estrategia con un factor de beneficio por debajo de 1,08.

Con un 55 por ciento, por debajo de 1,22.

Con un 60 por ciento, por debajo de 1,50.

Con un 65 por ciento, por debajo de 1,86.

El 52 por ciento no es un relleno. Gu, Kelly y Xiu midieron toda esta familia de modelos fuera de muestra sobre rendimientos mensuales de miles de acciones, y su mejor red alcanzó un R cuadrado mensual fuera de muestra de alrededor de cuatro décimas de un uno por ciento. Traduce eso al lenguaje de esta página: bajo una normal bivariante, la probabilidad de que el signo de una predicción coincida con el signo del resultado es un medio más el arcoseno de la correlación, dividido entre pi; la correlación es la raíz cuadrada del R cuadrado, o sea 0,0632, y la exactitud es del 52,01 por ciento. El mejor resultado publicado del campo es un filtro para estrategias con un factor de beneficio por debajo de 1,08.

Casi nadie que haya ajustado un modelo a sus propias operaciones ha dividido su beneficio bruto entre su pérdida bruta y ha puesto los dos números uno al lado del otro. Son dos sumas de un registro de operaciones y una división, y en eso consiste toda la decisión.

La hoja que este módulo viene construyendo desde la lección 62 no gana una novena columna. Aquí es donde se gasta, las ocho a la vez, sobre la única regla que el curso sigue desde la lección 63.

La hoja, gastada sobre una regla

La lección 63 buscó entre 253 configuraciones de medias móviles a lo largo de sesenta cierres y se quedó con una media de 2 barras contra una de 5: siete operaciones, 10,70 por acción en bruto, 9,84 tras costes, contra 5,68 por mantener. Rellena las ocho columnas y la hoja queda así.

La frase, de la lección 62: ponte largo cuando la media de 2 barras de los cierres cruce por encima de la de 5, ponte plano cuando vuelva a cruzar, ejecuta en el cierre siguiente.

El par, de la lección 63: 4,16 sobre el índice de referencia, contra un 52,5 por ciento de búsquedas sin estructura que devuelven 4,16 o más.

El listón y el recuento, de la lección 64: 253 celdas, un listón de 3,537, una t de 3,65, que lo pasa hasta que fijas un mínimo de operaciones, momento en el que la fracción va del 0,68 por ciento con un mínimo de siete al 50,48 por ciento con un mínimo de dos.

Las operaciones fijadas de antemano, de la lección 65: en blanco. Las siete son las que ocurrieron.

La parte de exposición, de la lección 66: 0,5085, y de los 10,70 brutos el mercado aportó 2,95.

La profundidad a la que parar, de la lección 67: en blanco.

La capacidad, de la lección 68: una operación media de 0,9101R son 1,4055 por acción, que sobre un precio cercano a 103 son 136 puntos básicos, así que en la pequeña capitalización de la lección 68 la operación sostiene 1.390.545 dólares y la mejor posición individual es 618.020.

El tope de posición y su intervalo de comprobación, de la lección 69: en blanco.

Tres blancos, y una segunda columna cuyas dos cifras están del revés. Ese es el veredicto, y llega antes de leer media hoja. Pero recórrela hasta el final igualmente, porque la pregunta de esta página no es si la regla vale algo. Es si un modelo podría mejorarla, y esa pregunta tiene respuesta incluso para una regla que no vale nada.

Las siete operaciones netas de costes son 2,577, 1,877, 2,377, 1,377, menos 0,423, 1,177 y 0,877. Seis ganadores que suman 10,262 y un perdedor de 0,423, así que el factor de beneficio es 24,26, el ganador medio es 1,1075R, el perdedor medio es 0,2739R y el ratio de pago es 4,04. Ahora pon a trabajar las demás columnas de la hoja y mira qué pasa a medida que se aplica cada una. La última fila de la tabla de abajo es el nulo de la propia lección 63, vuelto a correr para esta página: los 59 movimientos de barra a barra tomados con reemplazo, 4.000 series desde la semilla 20260903, la misma búsqueda de 253 celdas sobre cada una con el mismo mínimo de siete operaciones que el ganador cumplía, y el factor de beneficio de la celda que gane. Su mediana es 2,34, y un 3,08 por ciento de esas búsquedas sin estructura devuelve un ganador con un factor de beneficio de 24,26 o más.

Qué se ha restadoFactor de beneficioExactitud que un filtro tiene que superarLo máximo que podría añadir un filtro perfecto
Nada36,6797,35 %2,80 %
Costes, según la convención de la lección 6324,2696,04 %4,30 %
Costes, y la parte del mercado de la lección 6614,2293,43 %7,57 %
Lo que la misma búsqueda devuelve sobre nada, mediana2,3470,01 %74,91 %

La cuarta columna es la que merece una parada, y es un segundo número puro que cae de la misma desigualdad. Un filtro perfecto quita todos los perdedores y retiene todos los ganadores, así que lo máximo que puede añadir es la pérdida bruta entera, y como fracción de lo que la estrategia ya gana neto eso es uno dividido entre el factor de beneficio menos uno. En esta regla es un 4,30 por ciento. No un 4,30 por ciento si el modelo es bueno: un 4,30 por ciento si el modelo es impecable, porque en el registro solo hay un perdedor y vale 0,423 de 9,839.

Lee las dos columnas del medio juntas, de arriba abajo, y se mueven en direcciones opuestas por la misma razón. A medida que el factor de beneficio se desinfla hacia la verdad — primero los costes, después la parte del mercado, después lo que una búsqueda de la misma anchura devuelve sobre datos sin nada dentro —, la exactitud que el filtro necesita cae del 97,35 por ciento al 70,01, y el premio sube del 2,80 por ciento al 74,91. La búsqueda fabricó la ventaja y, en el mismo movimiento, fabricó la razón por la que ningún modelo podía mejorarla.

Un filtro solo puede devolverte tus perdedores, y una buena estrategia casi no tiene.

Por eso la fila de abajo importa más de lo que parece. Un factor de beneficio de uno es una estrategia con exactamente cero esperanza, y ahí el umbral está en el cincuenta por ciento y un filtro del 52 por ciento sí vale la pena. Cuéntalo sobre trescientas operaciones con un pago de dos: cien ganadores que pagan dos y doscientos perdedores que cuestan uno son cero. Retén 52 de los ganadores y 96 de los perdedores y tienes 104 menos 96, es decir 8R sobre las trescientas originales, o 0,027 de un R por operación. El filtro no está mejorando la estrategia. Es toda la estrategia, y es pequeña. Sube a un factor de beneficio de dos y ese mismo filtro del 52 por ciento le quita 0,22R por operación a una estrategia que gana 0,50.

Así que suma tus ganadores, suma tus perdedores, divide, y lee la respuesta como la exactitud que cualquier filtro tiene que superar antes de que lo construyas.

Lo que esto no resuelve

Que el filtro sea equilibrado. El umbral de exactitud supone que el modelo es exactamente igual de bueno reteniendo ganadores que rechazando perdedores, y la desigualdad de la que salió no supone nada de eso: solo pide que la especificidad dividida entre uno menos la sensibilidad supere el factor de beneficio. Un modelo afinado con dureza hacia rechazar perdedores, aceptando que retendrá casi todos los ganadores que vea, puede pasar ese listón con una exactitud global muy por debajo del umbral, y esa es la dirección hacia la que merece la pena construir. Esta página imprime el número equilibrado porque es el número que un clasificador informa por defecto, lo cual dice algo sobre el software y no sobre los mercados.

Que las operaciones que el filtro retiene paguen lo que habrían pagado las que tira. Si el modelo retiene preferentemente los ganadores grandes, la aritmética mejora y el umbral baja, y un modelo que ordena las operaciones por tamaño esperado en vez de clasificarlas por signo es un objeto distinto y mejor que el que se tasa aquí. La página tasa un clasificador porque un clasificador es lo que la gente construye, y porque la cifra de exactitud que cita el campo solo está definida para uno.

Que un factor de beneficio calculado sobre siete operaciones sea un número. Es un cociente de dos sumas, y una de esas sumas tiene un solo término. Si la única operación perdedora de la lección 63 hubiera costado 1,423 en vez de 0,423, el factor de beneficio sería 7,21, el umbral un 87,82 por ciento y el premio un 16,10 por ciento, con la misma regla sobre los mismos cierres. Sobre unos cientos de operaciones el cociente se asienta, pero nunca es preciso, y el segundo decimal de cualquier umbral calculado a partir de él es decoración.

Que el 52 por ciento sea la referencia adecuada para tu modelo. Gu, Kelly y Xiu predicen rendimientos mensuales sobre un corte transversal de miles de acciones con cerca de cien predictores, que es un problema distinto de calificar setups que tu propio método ya produjo: ellos tienen muchísimos más datos y ningún acceso a tu regla de entrada, y contigo pasa lo contrario. La cifra está en esta página como comprobación del orden de magnitud que alcanza el mejor trabajo del campo, y no es una predicción de lo que hará tu propio clasificador.

Que las configuraciones sean contables. Esta es la concesión de la lección 64 y un modelo la empeora en vez de mejorarla. Los hiperparámetros que tecleaste en una rejilla son contables. El rasgo que construiste, dibujaste, no te gustó y borraste no lo es, y tampoco lo es el objetivo que redefiniste de la dirección de la barra siguiente a la de las tres siguientes porque el primero no entrenaba. Cada reentrenamiento con datos nuevos es otra configuración, y un calendario que reentrena cada mes durante dos años ha corrido calladamente veinticuatro más.

Y la concesión que más cuesta: esta página ha tasado un modelo y no ha dicho nada sobre si alguno podría acertar por una razón. Un filtro que rechaza las operaciones tomadas en los primeros quince minutos porque tus perdedores se agrupan ahí es una regla, se puede escribir en una línea y cuenta como una sola configuración con un listón de 1,645. Lo que la aritmética de esta página castiga no es aprender algo de tu propio registro. Es aprender muchas cosas de él y quedarse con la mejor, que es en qué consiste ajustar un modelo. La lección 71 abre el módulo de cartera preguntando qué compran cuatro reglas que una no compra, mide la correlación entre reglas en vez de suponerla, y encuentra que los 14,7 meses que tasó la lección 67 bajan a 14,1 y no a 3,7.

Problemas

  1. Cuenta tu rejilla. Toma el último modelo que hayas ajustado, o el último que te hayan enseñado, y cuéntalo bien: cada valor de hiperparámetro que probaste, multiplicado, y eso multiplicado otra vez por el número de subconjuntos de rasgos que consideraste. Lee el listón en la primera tabla de arriba o calcúlalo a partir del recuento. Diez minutos, y acabas con un número, la t que tu modelo tenía que superar, que casi seguro no es 1,645.
  2. Calcula tu propio umbral. Toma tus últimas doscientas operaciones, suma todo lo que ganaron los ganadores, suma todo lo que costaron los perdedores, y divide lo primero entre lo segundo. Media hora, y acabas con un número, tu factor de beneficio, del cual la exactitud que un filtro tiene que superar es ese número dividido entre uno más él, y lo máximo que podría añadir un filtro perfecto es uno dividido entre ese número menos uno.
  3. Mide el filtro que podrías construir de verdad. Parte tu registro en orden temporal. Sobre la primera mitad, elige un rasgo del que puedas dar una razón en una frase y encuentra el único umbral sobre él que mejor separa tus ganadores de tus perdedores. Aplica ese único umbral, sin tocarlo, a la segunda mitad, y cuenta dos cosas: cuántos perdedores tiró y cuántos ganadores tiró. Una tarde, y acabas con un número, la razón entre el primer recuento y el segundo, que tiene que superar tu ratio de pago antes de que el filtro más simple que puedas construir valga algo, y que deberías comparar con lo que esperabas antes de partir el registro.

Fuentes. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado y Qiji Jim Zhu, «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance» (Notices of the American Mathematical Society, 2014), por la fórmula del máximo esperado con la que está calculada la primera tabla, traída de la lección 64 y aplicada aquí a una rejilla de hiperparámetros en vez de a una de parámetros. Shihao Gu, Bryan Kelly y Dacheng Xiu, «Empirical Asset Pricing via Machine Learning» (The Review of Financial Studies, 2020), por la medición fuera de muestra que esta página convierte en el 52 por ciento contra el que se lee cada umbral suyo. Marcos López de Prado, Advances in Financial Machine Learning (Wiley, 2018), por el argumento de que la validación cruzada corriente filtra información en finanzas y por la corrección por contrastes múltiples de la que la primera tabla es un caso pequeño. Robert D. Arnott, Campbell R. Harvey y Harry Markowitz, «A Backtesting Protocol in the Era of Machine Learning» (The Journal of Financial Data Science, 2019), por el protocolo que exige registrar el número de pruebas antes de la búsqueda, que es la columna de la hoja que añadió la lección 64 y que esta página gasta.

Lecciones relacionadas
Lección 64

El precio de buscar

La fórmula del máximo esperado y el listón que fija un recuento de configuraciones.

Leer la lección →
Lección 63

Backtesting como prueba

Las siete operaciones que esta página desmonta, y la búsqueda que las produjo.

Leer la lección →
Lección 17

Esperanza

La tasa de acierto y el pago de los que está hecho un factor de beneficio.

Leer la lección →
Solo con fines educativos. Operar conlleva un riesgo sustancial de pérdida. No es asesoramiento financiero. Los resultados pasados no garantizan resultados futuros.

💬 Debate (0 comentarios)

0/1000

Cargando comentarios…

← Lección anterior Lección siguiente →

¿Listo para operar con Signal Pilot?

Aplica tu formación con indicadores profesionales y herramientas de análisis de mercado en tiempo real.

Volver a Signal Pilot →