El Problema de Two Sigma Que Lo Cambió Todo
Diciembre de 2018. El VIX en 36. Los filtros tradicionales de momentum de mi equipo se habían quedado en silencio — completamente inútiles en el caos impulsado por el miedo. Nuestro jefe de investigación dejó un desafío en mi escritorio: "Encuentra acciones que reviertan en 5 días, o retiramos la estrategia."
Fue entonces cuando descubrí que las máquinas de vectores de soporte podían ver patrones que los humanos no podían — especialmente en mercados de miedo extremo donde el filtrado tradicional falla. El modelo SVM que construí esa semana logró captar el 73% de las reversiones importantes durante los siguientes cuatro años.
En Two Sigma, teníamos un dicho: si no puedes programarlo, no puedes operarlo consistentemente. Hoy comparto el marco exacto, incluyendo fragmentos de código que puedes implementar tú mismo.
Por Qué el Filtrado Tradicional de Acciones Falla en Mercados de Miedo
La mayoría de los filtros de acciones se basan en lógica lineal: RSI por debajo de 30 = sobrevendido = señal de compra. Pero los mercados de miedo no siguen reglas lineales. Aprendí esto por las malas viendo cómo nuestros filtros de momentum marcaban "gangas" que caían otro 40%.
¿El problema? El miedo crea relaciones no lineales entre los indicadores. Una acción con RSI 20 en mercados normales podría rebotar. ¿El mismo RSI 20 durante una capitulación? Eso es una caída libre.
Esto es lo que mata a los filtros tradicionales en el miedo:
- Los umbrales lineales ignoran el contexto del mercado
- Los indicadores individuales pierden patrones multidimensionales
- Las reglas estáticas no pueden adaptarse a cambios de régimen
- Las relaciones volumen/precio se vuelven no lineales
Aquí es exactamente donde el aprendizaje automático — específicamente los SVM — sobresale. A diferencia de la regresión lineal, los SVM pueden encontrar límites de decisión complejos en un espacio de alta dimensión. Piensa en ello como dibujar curvas alrededor de grupos de datos en lugar de líneas rectas.

La Arquitectura SVM Que Realmente Funciona
Después de probar 47 algoritmos de ML diferentes (sí, los conté), las máquinas de vectores de soporte superaron consistentemente por una razón: manejan los valores atípicos de manera brillante. Los mercados de miedo SON valores atípicos.
Aquí está la arquitectura central en pseudocódigo:
// Construcción del vector de características
features = [
normalized_rsi_divergence,
volume_price_ratio,
liquidity_score,
institutional_flow_indicator,
cross_asset_correlation,
vix_regime_indicator
]
// SVM con kernel RBF para patrones no lineales
model = SVM(kernel='rbf', C=10, gamma=0.001)
model.fit(training_features, reversal_labels)
// Calibración de probabilidad para puntuaciones de confianza
calibrated_model = CalibratedClassifier(model)
reversal_probability = calibrated_model.predict_proba(new_data)
La magia ocurre en la ingeniería de características. Los datos de precio en bruto son ruido — necesitas características conductuales que capturen la dinámica del miedo.
Ingeniería de Características: El Secreto
La mayoría de los artículos sobre trading con ML pasan por alto las características. Eso es como darle a alguien un Ferrari sin las llaves. Aquí están las características exactas que transformaron mi tasa de aciertos:
1. Puntuación de Divergencia RSI Normalizada
No solo el RSI — la tasa de cambio en el RSI relativa al movimiento del precio. En Pine Script:
rsi_val = ta.rsi(close, 14)
rsi_roc = ta.roc(rsi_val, 5)
price_roc = ta.roc(close, 5)
divergence_score = rsi_roc / math.abs(price_roc)
2. Ratio de Dislocación Volumen/Precio
Mide cuándo el volumen explota pero el precio apenas se mueve — acumulación clásica:
vol_surge = volume / ta.sma(volume, 20)
price_stability = 1 / (ta.stdev(close, 5) / close)
dislocation_ratio = vol_surge * price_stability
3. Correlación de Miedo entre Activos
Cuando las correlaciones se rompen, a menudo siguen reversiones. Rastreo la correlación de las acciones con el VIX, el oro y los bonos del tesoro.
Estas no son aleatorias — cada característica surgió de analizar miles de operaciones fallidas. Como cubrí en mi análisis de divergencia RSI, el contexto transforma la efectividad del indicador.

Entrenando en el Miedo: El Desafío de los Datos
Aquí es donde falla el 90% de los traders de ML: entrenan en todas las condiciones del mercado por igual. Eso es como entrenar para un maratón solo trotando. Necesitas datos de entrenamiento específicos para el miedo.
Mi enfoque:
- Filtrar datos de entrenamiento solo a períodos con VIX > 25
- Sobremuestrear días de miedo extremo (VIX > 40) por 3x
- Incluir múltiples regímenes de miedo: 2008, 2020, 2022
- Validar en períodos de miedo fuera de la muestra
Los ajustes de VaR que uso ayudan a definir estos regímenes de miedo de manera programática. Sin un filtrado adecuado del régimen, tu modelo aprende los patrones equivocados.
Perspectiva crítica: El desequilibrio de clases te matará. Las reversiones por miedo son raras — quizás el 5% de todos los días de trading. Las prácticas estándar de ML sugieren equilibrar las clases. No lo hagas. En su lugar, usa pesos de clase que reflejen la realidad:
class_weights = {
'reversal': 1.0,
'continuation': 0.05
}
Esto evita que tu modelo grite "lobo" en cada vela roja.
Comprobación de Realidad en Backtesting: La Tasa de Aciertos del 73%
A los artículos académicos les encanta afirmar una precisión del 90%+. ¿En trading en vivo? Historia diferente. Mi filtro SVM logró un 73% de precisión en llamadas de reversión reales — aquí está el desglose:
- Venta Masiva del Q4 2018: 14/19 llamadas correctas (73.7%)
- Marzo 2020 COVID: 22/28 correctas (78.6%)
- Mercado Bajista 2022: 47/68 correctas (69.1%)
El modelo funciona mejor en ventas masivas agudas e impulsadas por el miedo. Los mercados bajistas prolongados reducen la precisión — el enfoque de acumulación por capas funciona mejor allí.

Implementación en Vivo: Del Modelo al Trading
Un modelo sin ejecución es una masturbación académica. Así es como integro el filtro SVM en el trading en vivo:
Flujo de Trabajo Diario (30 minutos antes del cierre):
- Ejecutar el filtro en un universo de 500 acciones líquidas
- Filtrar por probabilidad de reversión > 0.7
- Clasificar por probabilidad * magnitud de movimiento esperado
- Revisión manual de los 10 mejores candidatos
- Tamaño de posición basado en convicción y fracción de Kelly
Capa de Gestión de Riesgos:
if vix > 30:
position_size *= 0.5 # Mitad del tamaño en miedo extremo
stop_loss = atr * 3 # Stops más amplios por volatilidad
else:
position_size = base_size
stop_loss = atr * 2
Nunca confíes ciegamente en el modelo. Aprendí esto después de que mi SVM marcara a Lehman Brothers como un "fuerte candidato a reversión" en septiembre de 2008. Algunas reversiones nunca llegan.
Aplicación en el Mercado Actual (Marzo 2026)
Con el Índice de Miedo y Codicia en 14 y Bitcoin probando mínimos recientes, estamos en territorio ideal para SVM. El escaneo de ayer marcó configuraciones interesantes:
- Gigantes tecnológicos mostrando dislocación: Alto volumen, movimiento de precio mínimo
- Bancos regionales mostrando divergencia RSI: Precio haciendo nuevos mínimos, RSI más alto
- Acciones de materias primas rompiendo correlaciones: Desacoplamiento de los futuros subyacentes
Los indicadores de dark pool confirman acumulación institucional en varios nombres. Esta confluencia de señal de ML + datos de flujo es donde la ventaja se compone.
Recuerda: el modelo identifica candidatos, no garantías. En las condiciones actuales, estoy siendo selectivo — tomando solo configuraciones A+ donde se alinean múltiples sistemas.

Técnicas Avanzadas: Métodos de Conjunto
Los modelos individuales tienen puntos únicos de fallo. En Two Sigma, nunca operamos con algoritmos en solitario. Aquí está mi enfoque de conjunto:
- SVM para señal primaria (reconocimiento de patrones no lineales)
- Random Forest para confirmación (familia de algoritmos diferente)
- LSTM para validación de secuencia (captura patrones temporales)
Solo cuando 2/3 modelos están de acuerdo considero válida la señal. Esto reduce los falsos positivos en ~40% manteniendo la mayoría de las señales verdaderas.
Para aquellos interesados en la ejecución automatizada, el sistema de alertas de FibAlgo puede activarse cuando tu modelo de ML genera señales de alta convicción, cerrando la brecha entre el análisis en Python y la ejecución en TradingView.
El marco de reversión a la media que discutí muestra beneficios similares de conjunto — múltiples perspectivas reducen el riesgo de un solo modelo.
Errores Comunes en el Filtrado de Acciones con ML
Déjame ahorrarte meses de dolor. Estos errores mataron mis primeros modelos:
Sobreajuste a eventos específicos: Mi primer modelo memorizó los patrones del crash de 2008. Inútil en 2020. Usa validación cruzada k-fold con conciencia temporal — nunca entrenes con datos futuros.
Filtrado de características: Incluir el volumen de mañana en la predicción de hoy. Suena obvio, pero las características derivadas pueden ocultar filtraciones temporales. Siempre piensa: "¿Podría saber esto en el momento de la predicción?"
Ignorar los costos de transacción: Esa tasa de aciertos del 73% asume fricción cero. En realidad, añade 10bps por deslizamiento, 5bps por comisiones. Los pequeños márgenes se evaporan rápidamente.
Degradación del modelo: Los mercados evolucionan. Mi modelo de 2018 se degradó a un 61% de precisión para 2020. Reentrena trimestralmente como mínimo, mensualmente durante cambios de régimen.
Como se cubrió en mi guía de riesgo AMM, las estrategias sistemáticas requieren monitoreo y ajuste constantes.
Construyendo Tu Propio Sistema de Filtrado con ML
Comienza simple. La complejidad no es ventaja — la implementación adecuada es la ventaja. Aquí está tu hoja de ruta:
Semana 1-2: Recopilación y limpieza de datos. Usa Yahoo Finance o Alpha Vantage para datos gratuitos. Construye un universo de acciones líquidas (capitalización de mercado de $1B+, volumen diario de 1M+).
Semana 3-4: Ingeniería de características. Comienza con mis tres características centrales anteriores. Añade otras basadas en tu hipótesis de mercado. El artículo sobre adaptaciones de OBV muestra cómo modificar indicadores para contextos específicos.
Semana 5-6: Entrenamiento y validación del modelo. Usa scikit-learn para la implementación SVM. Enfócate en una división adecuada entrenamiento/prueba — ¡el orden temporal importa!
Semana 7-8: Backtesting y trading en papel. Ejecuta tu filtro diariamente, rastrea predicciones vs resultados. Sin dinero real hasta 100+ operaciones en papel.
Semana 9+: Implementación en vivo con tamaño pequeño. Comienza con un riesgo del 0.25% por señal. Escala solo después de demostrar consistencia.
La Realidad del Trading con Aprendizaje Automático
El ML no es magia. Es reconocimiento de patrones a gran escala. Mi filtro SVM no predice el futuro — identifica cuándo las condiciones actuales coinciden con configuraciones históricamente rentables.
La ventaja proviene de tres fuentes:
- Procesar más datos de los que un humano puede (500 acciones, 6 características cada una)
- Mantener la disciplina durante el miedo (los algoritmos no entran en pánico)
- Ejecución consistente (las mismas reglas cada día)
Pero aquí está la clave — aún necesitas intuición para el trading. El modelo señala oportunidades; tú decides el tamaño de la posición, el momento y la gestión del riesgo. El trading puramente sistemático funciona hasta que deja de hacerlo. Solo pregúntale a los quants que fueron arrasados en agosto de 2007.
En Two Sigma, nuestras mejores estrategias combinaban inteligencia de máquina con supervisión humana. La máquina encuentra patrones. El humano gestiona el riesgo, especialmente durante cambios de régimen cuando los modelos entrenados con datos históricos se quedan temporalmente ciegos.
Con los mercados mostrando lecturas de miedo extremo, estamos en el momento ideal para el filtrado de reversiones basado en ML. Ya sea que construyas tu propio sistema o adaptes el mío, recuerda: el objetivo no es la perfección. Es una ventaja consistente, dimensionada adecuadamente, con el riesgo de cola gestionado.
Porque al final, sobrevivir al 27% de señales fallidas importa más que capturar cada reversión. El mejor algoritmo no puede operar si te arruinas con los valores atípicos.




