Aquí va el secreto incómodo del machine learning en finanzas: estás intentando aprender de un río que fluyó exactamente una vez. Un modelo de visión llega a ver diez millones de fotos de gatos. Un modelo de lenguaje inhala internet entero, dos veces. Tú, el quant, recibes un solo camino realizado del historial de mercado — un 2008, un crac de 2020, una subida vertical por el COVID — y se acabó. El proceso generador de datos ejecutó el experimento una única vez y te entregó el resultado sin repeticiones.
Ya sabes por Deep Learning para Datos de Mercado por qué esto es fatal: el tamaño muestral efectivo es minúsculo. Veinte años de precios diarios parecen miles de filas, pero esas filas están autocorrelacionadas, agrupadas por régimen y solapadas, así que el número de observaciones genuinamente independientes está más cerca de las decenas que de los miles. Las redes profundas son bestias hambrientas con millones de parámetros; aliméntalas con decenas de ejemplos efectivos y no aprenden el mercado — lo memorizan, y luego publican un backtest glorioso que se evapora en cuanto el dinero real lo toca.
Así que la jugada es audaz: si el historial solo se ejecutó una vez, fabrica más historial. Entrena o construye un generador que emita caminos de retorno nuevos, jamás realizados, que aun así parezcan el mercado — mismas colas anchas, mismo agrupamiento de volatilidad — y aliméntalos a tu modelo hambriento. Es una idea brillante con un cuchillo escondido dentro, y ese cuchillo enmarca todo el curso: un generador entrenado con tu historial ha, en cierto sentido, visto el futuro relativo a cualquier backtest que ejecutes sobre él. Despístate y filtrará tus propios datos de vuelta dentro de tus pruebas, disfrazados de “sintéticos”. Guarda esa idea — es la columna vertebral de la lección 4 en adelante y la advertencia a la que volveremos una y otra vez.
El problema del historial único
Before you read — take a guess
Tienes 20 años de retornos diarios del S&P 500. ¿Por qué es engañoso llamar a esto '~5.000 puntos de datos independientes'?
Analogía. Imagina a un químico que puede ejecutar su reacción exactamente una vez, jamás otra. Sin repeticiones, sin barras de error, sin “probemos de nuevo a otra temperatura”. Lo que pasó, pasó — y ahora debe publicar leyes universales a partir de ese único vaso de precipitados. Ese químico eres tú, y el único vaso es el historial de mercado. No puedes volver a ejecutar 2008 con una decisión de Lehman distinta; la cinta es un experimento de un solo disparo.
Definición. El historial de mercado es un único camino realizado extraído de un proceso generador de datos (PGD) desconocido y no estacionario. Observas una trayectoria; nunca observas la distribución de la que vino, y desde luego no puedes muestrearla de nuevo. El tamaño muestral efectivo es el número de observaciones independientes que vale ese camino — siempre muy por debajo del recuento bruto de filas una vez tienes en cuenta la autocorrelación y la persistencia de régimen.
Ejemplo resuelto. Toma 20 años de datos diarios: aproximadamente
Suena abundante. Pero una corrección cruda de muestra efectiva por autocorrelación lo encoge. Si las observaciones consecutivas tienen autocorrelación de retardo 1 a nivel de volatilidad (la volatilidad se agrupa con fuerza), una aproximación habitual da
Setenta y siete. Y esa es la lectura generosa — si en cambio preguntas “¿cuántos regímenes de mercado genuinamente distintos observé?” (un mercado alcista, el crac de 2008, la lenta molienda del QE, el desplome y rebote del COVID, un ciclo de subidas de tipos), los cuentas con los dedos. Un historial de veinte años es, para las preguntas que importan, aproximadamente una extracción del PGD.
Mira cómo se ve en realidad el camino único — precio no estacionario vagando arriba, pero retornos estacionarios y agrupados debajo:
Un historial realizado: el precio (arriba) es un único camino no estacionario que nunca se repite, mientras que sus retornos (abajo) son estacionarios pero muestran agrupamiento de volatilidad — la calma engendra calma, el caos engendra caos. Observas exactamente una de estas trayectorias.
Trampa: confundir el recuento de filas con el tamaño muestral. “Tengo 5.000 filas, eso son datos de sobra” es la frase más cara de las finanzas cuantitativas. Las filas no son evidencia; las filas independientes lo son. Un modelo que cree tener 5.000 ejemplos cuando efectivamente tiene 77 sobreajustará con suprema confianza y te entregará un desastre de Sharpe desinflado. Pregunta siempre cuántos regímenes independientes contienen realmente tus datos.
Cuándo usarlo
Invoca el encuadre del historial único siempre que alguien te agite un gran recuento de filas como prueba de que un modelo profundo “tiene datos de sobra”. Es el diagnóstico que te dice que un modelo se muere de hambre incluso cuando la hoja de cálculo parece llena — y es toda la motivación para fabricar más caminos.
Completa la distinción central.
Elige la opción correcta para cada hueco y comprueba.
Veinte años de precios diarios son miles de , pero solo un puñado de regímenes de mercado independientes — por eso el tamaño muestral efectivo es minúsculo.
Los cuatro usos de los datos sintéticos
Before you read — take a guess
Un equipo de riesgos quiere probar su cartera frente a un shock de estanflación que nunca ha ocurrido en su ventana de datos. ¿Qué uso de los datos sintéticos es este?
Analogía. Un simulador de vuelo. Los pilotos reales no pueden estrellar un 747 de verdad para practicar, no pueden invocar un incendio de motor a demanda, no pueden esperar a la microrráfaga de una vez por década para que les enseñe. Así que generan esos escenarios. Los datos de mercado sintéticos son el simulador de vuelo para estrategias y sistemas de riesgo — y como un simulador de vuelo, solo son útiles en la medida en que la física que falsean sea honesta.
Definición. Los datos de mercado sintéticos son datos producidos artificialmente — caminos de retorno, flujos de órdenes, precios — que imitan las propiedades estadísticas de los mercados reales sin ser una copia literal de ningún periodo observado. Se usan para cuatro trabajos distintos, cada uno comprándote algo diferente y cada uno cargando con su propio riesgo.
| Uso | Qué te compra | El riesgo |
|---|---|---|
| Aumento de datos | Más caminos de entrenamiento para modelos hambrientos y de datos escasos | Los caminos fabricados pueden compartir los mismos sesgos, así que amplificas el error, no la señal |
| Generación de escenarios / pruebas de estrés | Regímenes que la cinta nunca entregó (una estanflación de los 70, una variante de flash-crash) | Escenarios basura → falsa confianza; el shock que modelas no es el que golpea |
| Compartición preservando la privacidad | Compartir un generador / estadísticas, no posiciones o P&L de clientes | Un generador con fugas puede reconstruir los registros privados con los que se entrenó |
| Backtesting sintético | Probar una estrategia a lo largo de miles de caminos, no del único que da el historial | Fuga — si el generador memorizó el historial, tu prueba “fuera de muestra” no lo es |
Mini-ejemplo resuelto. Supón que aumentas un conjunto de entrenamiento de 5.000 filas de retorno reales a 50.000 caminos — un impulso de 10x. ¿Qué arregla? Le da a tu optimizador más pasos de gradiente sobre más trayectorias variadas, lo que puede reducir genuinamente la varianza en lo que el modelo aprende y domar el peor sobreajuste. ¿Qué no arregla? Si tu generador se construyó a partir de ese mismo historial único, esos 50.000 caminos siguen codificando el mismo puñado de regímenes. No observaste un nuevo 2008; observaste ecos del viejo. El contenido de información efectivo apenas se movió — pasaste de ~77 observaciones independientes a quizá ~80, no a 800. Más caminos ≠ más información independiente.
Trampa: tratar el recuento de caminos como información. Generar 50.000 caminos a partir de un generador entrenado con un historial no te da 50.000 historiales independientes. El techo de información son los datos reales de los que el generador aprendió. Los datos sintéticos pueden reordenar e interpolar lo que hay; no pueden conjurar regímenes que el PGD nunca le mostró. (La generación de escenarios deliberadamente extrapola más allá del historial — pero entonces tú eres dueño del supuesto de que tu extrapolación es realista.)
Cuándo usarlo
Empareja el uso con la pregunta. ¿Modelo escaso muriéndose de hambre por variedad de gradiente? Aumento. ¿Necesitas sobrevivir a un shock que el historial nunca repartió? Generación de escenarios. ¿Legalmente no puedes compartir las posiciones en bruto? Generador de privacidad. ¿Quieres robustez a lo largo de muchos futuros, no de un solo pasado? Backtesting sintético — con la guardia de fuga de la lección 7 firmemente en su sitio.
Clasifica cada escenario en el uso de datos sintéticos que mejor encaja.
Coloca cada elemento en su grupo.
- Reforzar un conjunto de entrenamiento escaso para que un modelo profundo sobreajuste menos
- Modelar un régimen de estanflación que nunca aparece en tu ventana de datos
- Someter a presión una cartera frente a una variante de crac de un día estilo 1987
- Dar a un optimizador más caminos variados sobre los que avanzar
¿Cuáles de estos son trabajos legítimos para los datos de mercado sintéticos? (Selecciona todos los que correspondan.)
Dos filosofías: aprender frente a simular
Before you read — take a guess
¿Qué enfoque construye un generador codificando supuestos explícitos sobre la mecánica del mercado (una deriva, una volatilidad, un cambio de régimen) en lugar de aprender la distribución a partir de los datos?
Analogía. Dos formas de construir un simulador de vuelo. Mecanismo (simular): un ingeniero escribe las ecuaciones de la aerodinámica — sustentación, resistencia, empuje — desde primeros principios. Puedes leer cada línea y discutirla. Aprendido: atas sensores a diez mil vuelos reales y entrenas una red para predecir “qué hace el avión a continuación” — inquietantemente realista, pero pregúntale por qué hizo algo y se encoge de hombros. Ambos vuelan el simulador; uno lo puedes auditar, al otro en gran parte tienes que confiarle.
Definición. Hay dos filosofías para producir datos de mercado sintéticos:
- Simular un mecanismo (de abajo arriba, guiado por supuestos): especificas la dinámica explícitamente — movimiento browniano geométrico, un bootstrap por bloques, un modelo de conmutación de régimen — y muestreas de tus ecuaciones. Interpretable, ligero en datos, pero solo tan realista como tus supuestos. (Lección 3.)
- Aprender un generador (de arriba abajo, guiado por datos): entrenas una red neuronal — GAN, VAE o modelo de difusión — para reproducir la distribución de los datos. Flexible y de alta fidelidad, pero opaco y hambriento de datos, con riesgo real de fuga. (Lecciones 4–6.)
| Dimensión | Simular un mecanismo (MBG, bootstrap, conmutación de régimen) | Aprender un generador (GAN, VAE, difusión) |
|---|---|---|
| Interpretabilidad | Alta — escribiste las ecuaciones | Baja — pesos de caja negra |
| Hambre de datos | Baja — unos pocos parámetros que estimar | Alta — necesita muchos datos (escasos) |
| Riesgo de fuga | Bajo — no puede memorizar lo que nunca almacenó | Alto — puede memorizar y regurgitar el conjunto de entrenamiento |
| Fidelidad a los hechos estilizados | Parcial — el MBG se pierde las colas anchas y el agrupamiento; modelos más ricos lo hacen mejor | Potencialmente alta — si se entrena bien y se evalúa con honestidad |
Ejemplo resuelto. Supón que quieres retornos de colas anchas con agrupamiento de volatilidad. Camino del mecanismo: el MBG simple no te da ninguno — sus retornos son gaussianos y homocedásticos, así que la curtosis (sin colas anchas) y sin agrupamiento. Tendrías que ascender a un mecanismo de conmutación de régimen o de volatilidad estocástica para llegar ahí, y sabrías exactamente qué supuesto produjo las colas anchas. Camino aprendido: una GAN bien entrenada podría reproducir una curtosis de, digamos, — emparejando bellamente las colas anchas reales — pero no podrías señalar qué parámetro lo hizo, y tendrías que ejecutar pruebas de memorización para asegurarte de que no se limitó a fotocopiar un crac.
Aquí está la parte que la gente se salta: los simuladores clásicos son la línea base que los modelos aprendidos deben superar. Una GAN que no reproduce los hechos estilizados mejor que un simulador de conmutación de régimen bien afinado — mientras cuesta 100x el cómputo y carga con riesgo de fuga — no se ha ganado nada. Empezamos con los mecanismos simples en la lección 3 precisamente para que tengas un patrón de medida.
Trampa: suponer que “neuronal = mejor”. Un modelo generativo profundo no es automáticamente superior a un humilde bootstrap. Es más flexible, sí — pero la flexibilidad corta por ambos lados: puede memorizar, necesita los datos que no tienes y es difícil de auditar. Si tu sofisticado modelo de difusión no puede reproducir los hechos estilizados mejor que una línea base de conmutación de régimen, gana la línea base. Compara siempre los generadores aprendidos contra los clásicos, no en el vacío.
Cuándo usarlo
Echa mano de mecanismos cuando necesites interpretabilidad, tengas pocos datos, o quieras un escenario de estrés auditable que puedas defender ante un regulador. Echa mano de un generador aprendido cuando tengas datos suficientes, los hechos estilizados sean demasiado ricos para especificarlos a mano, y hayas presupuestado el esfuerzo de evaluación (lección 7) para demostrar que no tiene fugas. En la práctica: empieza por lo mecanístico, gradúate a lo aprendido solo cuando se gane el sueldo de forma demostrable.
Une cada concepto con su definición.
La trampa de fuga que lo enmarca todo
Before you read — take a guess
Un generador se entrena con tu historial completo de precios. Luego 'haces backtest' de una estrategia sobre datos que produjo. ¿Por qué esto potencialmente no es fuera de muestra?
Analogía. Un estudiante hace el examen, y luego lo contratan para escribir el examen del año que viene. Si reproduce preguntas de memoria, cada futuro estudiante que “estudia el examen de práctica” simplemente está memorizando las respuestas reales. El examen de práctica parece legítimo — portada distinta, tipografía oficial — pero es el examen de verdad disfrazado. Un generador que memoriza el historial es ese estudiante, y tu backtest es la clase futura que saca notas sospechosamente altas.
Definición. La fuga es cuando información de los datos sobre los que tu modelo está siendo probado contamina los datos sobre los que fue entrenado (o viceversa), inflando el rendimiento medido. Con generadores aprendidos es insidiosa: entrena un generador con tu historial completo , luego ejecuta entrenar-en-sintético, probar-en-real (o haz backtest sobre la salida de ). Como vio todo — incluido el periodo que tu prueba finge que es el futuro no visto — cualquier memorización en alimenta calladamente las respuestas hacia delante. Los datos “sintéticos” no son independientes de la verdad; son una copia con pérdidas de ella.
Ejemplo resuelto — el generador que hace trampas y se sale con la suya. Imagina el peor caso: un generador que copia perfectamente su conjunto de entrenamiento (simplemente muestrea ventanas históricas reales y las reetiqueta como “sintéticas”).
| Prueba que ejecutas | Qué esperarías que revelara | Qué puntúa en realidad esta copiona |
|---|---|---|
| ¿Media / varianza emparejan lo real? | Memorización | Pasa — idéntica por construcción |
| ¿Colas anchas (curtosis) emparejan? | Memorización | Pasa — idéntica |
| ¿Autocorrelación / agrupamiento emparejan? | Memorización | Pasa — idéntica |
| Sharpe del backtest posterior | Generalización verdadera | Inflado — la estrategia se prueba sobre sus propios datos de entrenamiento |
Cada prueba de distribución le da un certificado de buena salud, porque emparejar la distribución es exactamente lo que hace una copia perfecta. Sin embargo, en cuanto la usas para backtesting sintético, el Sharpe de la estrategia se dispara — la están “validando” sobre los mismísimos precios a los que se ajustó. Un generador que memoriza es indistinguible de un gran generador en cada prueba distribucional, y catastróficamente peor en la única cosa que te importaba. Por eso emparejar la distribución por sí solo nunca puede certificar un generador.
La disciplina (la tesis de este curso). Evalúa el generador antes de confiar en un solo resultado de datos sintéticos. En concreto, ejecuta pruebas de memorización / vecino más cercano — para cada muestra sintética, comprueba que no esté sospechosamente cerca de un ejemplo de entrenamiento real — antes de cualquier afirmación de entrenar-en-sintético o de backtest-sintético. Ese kit de evaluación es la lección 7, y es la puerta que todo generador aprendido debe pasar.
La trampa que enmarca todo el curso. Un generador que pasa cada prueba de distribución todavía puede ser un memorizador que filtra tu historial dentro de tu backtest, inflando el Sharpe y engañándote por completo. Emparejar medias, varianzas, colas anchas y autocorrelación es necesario pero ni de lejos suficiente. Nunca reportes un resultado de datos sintéticos hasta que el generador haya superado las comprobaciones de memorización y vecino más cercano. La fidelidad distribucional prueba que el generador es realista; solo la prueba de fuga prueba que es honesto.
Cuándo usarlo
Esto no es una comprobación ocasional — es una puerta permanente. Cada vez que entrenes un generador y pretendas usar su salida para cualquier cosa en la que vayas a confiar (entrenamiento aumentado, un backtest, un conjunto de datos compartido), la pregunta de la fuga va primero. Si no puedes demostrar que el generador no memorizó, no puedes creer ningún número posterior que produjera. Lleva esto a través de las lecciones 4, 5 y 6; cóbralo en la lección 7.
Porque una fotocopia perfecta del historial empareja cada hecho estilizado por construcción — mismas colas, mismo agrupamiento, misma autocorrelación — siendo a la vez el generador más propenso a la fuga posible. La fidelidad distribucional y la memorización no son opuestos; un memorizador es el extremo de la fidelidad. Necesitas una prueba aparte que pregunte “¿está cada muestra sintética demasiado cerca de una real?” — esa es la comprobación de vecino más cercano / memorización, no una comprobación de distribución.
Recapitulación
El machine learning se muere de hambre en finanzas porque observas los mercados ejecutándose una vez: miles de filas autocorrelacionadas colapsan en un puñado de regímenes independientes, así que el tamaño muestral efectivo es minúsculo y los modelos profundos hambrientos memorizan en lugar de aprender. El arreglo es fabricar más historial de mercado con un generador, y esos datos sintéticos hacen cuatro trabajos — aumentar conjuntos de entrenamiento escasos, generar escenarios de estrés que el historial nunca entregó, compartir estadísticas en lugar de posiciones privadas, y hacer backtesting a lo largo de muchos caminos. Puedes construir ese generador de dos formas: simular un mecanismo (interpretable, guiado por supuestos, resistente a la fuga, la línea base) o aprender un generador (flexible, hambriento de datos, opaco, propenso a la fuga). Y atravesándolo todo está la trampa de fuga: un generador entrenado con tu historial puede memorizarlo y pasar cada prueba de distribución mientras alimenta calladamente las respuestas a tu backtest — así que evalúa el generador en busca de memorización antes de confiar en cualquier resultado que produzca. Esa última frase es el curso en una línea.
Big picture
¿Por qué generar datos de mercado?
- ¿Por qué generar datos de mercado?
- Problema del historial único
- Un camino realizado del PGD
- Tamaño muestral efectivo minúsculo
- Los modelos hambrientos memorizan
- Cuatro usos
- Aumento de datos
- Escenarios / pruebas de estrés
- Compartición preservando la privacidad
- Backtesting sintético
- Dos filosofías
- Simular un mecanismo (MBG, bootstrap, conmutación de régimen) — línea base
- Aprender un generador (GAN, VAE, difusión) — hambriento de datos, opaco
- Trampa de fuga
- El generador vio el "futuro" de cualquier backtest
- Un memorizador pasa cada prueba de distribución
- Evalúa antes de confiar (lección 7)
- Problema del historial único
¿Por qué generar datos de mercado? — repaso mixto
Tienes 30 años de retornos diarios (~7.560 filas). Tratando cada fila como una observación independiente, afirmas 7.560 muestras. ¿Qué afirmación corrige mejor esto?
Comprueba tu respuesta para continuar.