Trading Algorítmico
Un experimento público de inversión cuantitativa: estrategias sistemáticas, gestión de riesgo, resultados de backtesting y paper trading diario, documentados con la misma transparencia que el resto de Pulso de Mercado.
Un experimento de inversión cuantitativa, en público
Este es un proyecto personal: un sistema de trading sistemático que decide cuándo comprar y vender sin intervención manual diaria, siguiendo reglas fijas en vez de intuición. Aquí documento cómo se construyó, cómo se prueba y qué resultados reales va dando — con las ganancias y las pérdidas por igual. No es un servicio de señales ni una recomendación de inversión: es la bitácora pública de cómo investigo si un sistema así funciona antes de considerar arriesgar dinero real en él.
Seis rondas de pruebas antes de llegar a este diseño
El diseño actual no salió completo desde el día uno — cada cambio se probó contra el motor completo antes de adoptarse, y se documenta aquí incluyendo lo que se descartó:
- v1Versión original — el stop se fijaba en el precio de entrada y nunca se movía; el efectivo sin posición se quedaba parado, sin invertirse. En 6 meses de datos reales (may–oct 2026) esto dio -0.08% mientras el índice S&P 500 (comprar y mantener) dio +6.76% en el mismo período.
- v2Trailing stop + cash invertido en SPY — el stop ahora sube cada día con el precio (nunca baja) y el efectivo ocioso se invierte en el índice en vez de quedarse parado. Fue el cambio de mayor impacto medido: en una ventana de 22 meses, el retorno pasó de +0.23% a +17.75%.
- v3Circuit breakers reales — se agregó el límite de pérdida diaria y el umbral de drawdown que hoy bloquean o suspenden cada bucket (ver tabla de abajo).
- v4Universo ampliado + fricción real — de 32 a 159 símbolos en varias rondas, y comisión + slippage reales incluidas en el motor (antes solo las tenía el backtest formal, no el paper trading). Un trailing stop más ancho y un filtro de régimen de mercado se probaron y se descartaron — ambos empeoraron el resultado, y se reportan aquí igual que los cambios que sí funcionaron.
- v5Mean Reversion RSI(2), un 4to portafolio — todas las estrategias anteriores comparten la misma lógica (comprar fortaleza, seguir la tendencia). Se probaron también Donchian Breakout y una re-ponderación por volatilidad inversa (Risk Parity): ambos empeoraron el resultado y se descartaron. Mean Reversion RSI(2) (comprar debilidad temporal dentro de una tendencia alcista confirmada) sí mostró una correlación baja (0.14) con el resto del sistema en su backtest original — se agregó como un 4to portafolio independiente, con 35% del capital.
- v6Se revierte Mean Reversion — no sostuvo una auditoría más rigurosa — una validación walk-forward (la misma que ya había descartado otro candidato, Bollinger %B) encontró un Sharpe fuera de muestra promedio de -0.032 para Mean Reversion, con 2 de 5 ventanas en pérdida. Una investigación de seguimiento encontró además que el +47.90% del backtest original no era reproducible: con el mismo código y universo, un backtest corrido después dio +19.09% — consistente con el mismo problema de revisión retroactiva de datos ya documentado en v4. Se eliminó el bucket y se restauró el split original de 3 portafolios (43.33/33.33/23.33), sin borrar el código de la estrategia por si aparece evidencia mejor en el futuro.
Tres portafolios, cada uno con sus propias reglas
El capital de referencia ($18,799.40 MXN (equivalente a USD 1,000 al tipo de cambio del 2026-11-07)) se divide en tres "buckets" independientes, cada uno con su propia estrategia, universo y límites de riesgo:
| Bucket | Asignación | Universo | Estrategia | Riesgo/op. | Límite diario | Drawdown revisión |
|---|---|---|---|---|---|---|
| Largo Plazo | 43.33% | 26 ETFs | Time-Series Momentum | 2% | 1% | 6% |
| Mediano Plazo | 33.33% | 74 símbolos | Trend Following + Momentum/Breakout | 2% | 1.5% | 10% |
| Riesgo Alto | 23.33% | 45 símbolos | Trend Following + Momentum/Breakout | 3% | 2% | 15% |
Lo último que se midió, con fricción real incluida
Último backtest completo con los 3 buckets actuales (tras revertir Mean Reversion), sobre 36 meses de datos reales congelados, con 0.05% de comisión + 0.05% de slippage por lado (costos reales de operar, no un escenario optimista) y el split de producción 43.33/33.33/23.33:
- +34.00% de retorno neto acumulado en el período.
- 12.91% de drawdown máximo.
- Mean Reversion RSI(2) llegó a probarse con los 4 buckets reales (+43.61% retorno, 11.75% drawdown) pero esa cifra no sobrevivió una validación walk-forward más estricta ni resultó reproducible en una corrida posterior — se descartó y el sistema volvió a esta configuración de 3 buckets (ver timeline arriba y Bitácora de decisiones para el detalle completo).
Esto es backtesting — una simulación sobre precios ya conocidos, no el resultado del paper trading diario de abajo. Las dos mediciones nunca se combinan en un mismo gráfico en esta página. Los 3 buckets actuales se restauraron el 5-nov-2026 tras revertir Mean Reversion — el paper trading diario con esta configuración todavía tiene muy poco historial propio.
El sistema se detiene solo cuando algo sale mal
Si la pérdida del día supera el límite diario de su bucket, se bloquean nuevas compras el resto de la sesión — pero nunca se bloquea cerrar una posición ya abierta. Si el drawdown desde el máximo histórico supera el umbral de revisión, el bucket completo queda suspendido (sin liquidar nada) hasta reautorización manual. Nada de esto se desactiva para "dejar correr" una buena racha.
Cifras en pesos mexicanos (MXN), convertidas de USD al tipo de cambio del 2026-11-07: $18.6565 MXN por USD.
Comparación contra SPY (buy & hold): pendiente — el motor todavía no exporta una serie diaria de benchmark para el paper trading (sí existe a nivel de backtest, ver Investigación).
- Largo Plazo42.4% (objetivo 43.33%)
- Mediano Plazo36.3% (objetivo 33.33%)
- Riesgo Alto21.3% (objetivo 23.33%)
Cuánto aportó (o restó) cada bucket al retorno TOTAL del portafolio — no es el retorno individual de cada bucket, es su peso real dentro del resultado conjunto.
- una operación perdedora individual
- un mal mes aislado
- un desempeño peor al esperado en el corto plazo
- el desempeño en vivo diverge de forma sostenida del backtest
- los costos reales de operar superan lo asumido en el modelo
- el drawdown supera la tolerancia histórica documentada
- el comportamiento de las señales cambia de forma estructural
- se detecta un problema de calidad de datos
- Aportaciones mensuales (USD/MXN): el motor todavía no exporta un historial de depósitos — el capital mostrado es solo el inicial de cada bucket.
- Time-Weighted Return ajustado por flujos: no aplica todavía porque no hay aportaciones registradas en el snapshot.
- Comparación contra benchmark SPY dentro del paper trading: hoy solo existe a nivel de backtest por estrategia, no como serie diaria del paper trading.
- Sharpe, Sortino, Calmar y retornos rolling: requieren más historial diario real del que existe todavía (el 4to bucket arrancó el 1-nov-2026) para no ser puro ruido de arranque.
- Distribución de resultados por operación: con tan pocas operaciones cerradas todavía, un histograma describiría una muestra de 1-2 puntos, no una distribución real.