Resultados de Backtest - Propuesta de Optimización#
Fecha: 9 de Marzo, 2026
Periodo: 90 días (9 Diciembre 2025 - 9 Marzo 2026)
Balance Inicial: $1,000 USDT
📊 RESUMEN EJECUTIVO#
Conclusión Principal: Los resultados del backtest muestran que la estrategia range_breakout tiene un problema fundamental que no se resuelve solo ajustando parámetros. Sin embargo, PAXGUSDT muestra resultados prometedores (39.5% win rate) mientras que EURUSDT es inadecuado para esta estrategia (4% win rate).
🧪 TESTS EJECUTADOS#
TEST 1: EURUSDT - Configuración ACTUAL (Baseline)#
Parámetros:
Lookback Bars: 12
Entry ATR Fraction: 0.25
ATR Multiplier: 1.6
TP Multiplier: 2.0
Min Vol Relative: 0.6142 # Muy alto
Trend Filter: OFF
Resultados:
| Métrica | Valor |
|---|---|
| Balance Final | $996.88 |
| PnL Total | -$3.12 (-0.31%) |
| Total Trades | 69 |
| Win Rate | 4.35% ❌ |
| Ganadores / Perdedores | 3 / 66 |
| Profit Factor | 0.00 |
| Expectancy | -$0.0452/trade |
| Max Drawdown | 0.31% |
| Avg Winner | $0.0036 |
| Avg Loser | -$0.0474 |
| Best Trade | $0.0090 |
| Worst Trade | -$0.0847 |
Análisis: Desastroso. Solo 3 ganadores en 69 trades.
TEST 2: EURUSDT - Configuración OPTIMIZADA (min_vol_rel 0.4)#
Parámetros:
Lookback Bars: 8 # -33%
Entry ATR Fraction: 0.18 # -28%
ATR Multiplier: 1.8 # +12%
TP Multiplier: 1.5 # -25%
Min Vol Relative: 0.4 # -35%
Trend Filter: OFF
Resultados:
| Métrica | Valor |
|---|---|
| Balance Final | $996.99 |
| PnL Total | -$3.01 (-0.30%) |
| Total Trades | 70 |
| Win Rate | 4.29% ❌ |
| Ganadores / Perdedores | 3 / 67 |
| Profit Factor | 0.02 |
| Expectancy | -$0.0430/trade |
| Max Drawdown | 0.30% |
| Avg Winner | $0.0180 |
| Avg Loser | -$0.0457 |
| Best Trade | $0.0258 |
| Worst Trade | -$0.0899 |
Análisis: Prácticamente idéntico al baseline. Los cambios de parámetros NO mejoran EURUSDT.
TEST 3: EURUSDT - Configuración MUY AGRESIVA (min_vol_rel 0.2)#
Parámetros:
Lookback Bars: 8
Entry ATR Fraction: 0.18
ATR Multiplier: 1.8
TP Multiplier: 1.5
Min Vol Relative: 0.2 # MUY BAJO
Trend Filter: OFF
Resultados:
| Métrica | Valor |
|---|---|
| Balance Final | $996.92 |
| PnL Total | -$3.08 (-0.31%) |
| Total Trades | 71 |
| Win Rate | 4.23% ❌ |
| Ganadores / Perdedores | 3 / 68 |
| Profit Factor | 0.02 |
| Expectancy | -$0.0433/trade |
| Max Drawdown | 0.31% |
Análisis: Incluso reduciendo el filtro de volumen a 0.2, los resultados siguen siendo pésimos.
TEST 4: PAXGUSDT - Configuración OPTIMIZADA 🌟#
Parámetros:
Lookback Bars: 8
Entry ATR Fraction: 0.18
ATR Multiplier: 1.8
TP Multiplier: 1.5
Min Vol Relative: 0.3
Trend Filter: OFF
Resultados:
| Métrica | Valor |
|---|---|
| Balance Final | $996.51 |
| PnL Total | -$3.49 (-0.35%) |
| Total Trades | 129 ✅ |
| Win Rate | 39.53% ✅ |
| Ganadores / Perdedores | 51 / 78 |
| Profit Factor | 0.61 |
| Expectancy | -$0.0271/trade |
| Max Drawdown | 0.35% |
| Avg Winner | $0.1087 ✅ |
| Avg Loser | -$0.1158 |
| Best Trade | $0.4918 |
| Worst Trade | -$0.4476 |
| Avg Bars Held | 17.2 |
Análisis: ¡MUCHO MEJOR! Win rate de 39.5% es cercano al objetivo de 35-40%. El problema es que avg_win/avg_loss es 0.94:1 (casi neutral) con TP de solo 1.5x. Necesita mayor TP o mejor entry timing.
📈 COMPARACIÓN VISUAL#
EURUSDT vs PAXGUSDT#
| Métrica | EURUSDT (Baseline) | EURUSDT (Optimizado) | PAXGUSDT (Optimizado) |
|---|---|---|---|
| Win Rate | 4.35% | 4.29% | 39.53% 🎯 |
| Trades | 69 | 70 | 129 |
| PnL | -$3.12 | -$3.01 | -$3.49 |
| Profit Factor | 0.00 | 0.02 | 0.61 |
| Avg Win/Loss | 0.08:1 | 0.39:1 | 0.94:1 |
🔍 HALLAZGOS CLAVE#
1. EURUSDT es INADECUADO para range_breakout#
- Win rate 4% indica que los breakouts son falsos o la estrategia está mal calibrada
- Cambiar parámetros NO mejora los resultados
- Posibles causas:
- EURUSDT ha estado en tendencia fuerte (no en rango) estos 90 días
- Volatilidad muy alta genera muchos falsos breakouts
- El símbolo es demasiado líquido y eficiente para esta estrategia simple
2. PAXGUSDT SÍ funciona mejor#
- Win rate 39.5% es muy cercano al objetivo
- 129 trades en 90 días = 1.43 trades/día (buena frecuencia)
- El ratio win/loss de 0.94:1 con TP 1.5x es el problema
- Con TP 2.0x probablemente llegaría a break-even
3. Los parámetros importan POCO vs la selección de símbolo#
- EURUSDT con 3 configuraciones diferentes → mismo resultado terrible
- PAXGUSDT inmediatamente muestra 10x mejor win rate
- Conclusion: El símbolo es más importante que los parámetros
4. La estrategia range_breakout en sí tiene limitaciones#
- Incluso PAXGUSDT con 39.5% win rate pierde dinero
- Necesita ratio win/loss mayor a 1:1 o win rate >50%
- La configuración actual de TP:SL no es óptima
💡 RECOMENDACIONES REVISADAS#
⚠️ URGENTE: NO implementar Propuesta 1 como estaba#
Los backtests demuestran que ajustar parámetros NO resuelve el problema fundamental.
✅ NUEVA PROPUESTA: Enfoque en Gestión de Símbolos#
OPCIÓN A: Pausar EURUSDT, Aumentar PAXGUSDT#
Acción Inmediata:
- Deshabilitar trading en EURUSDT temporalmente
- Concentrar 100% capital en PAXGUSDT
- Ajustar TP multiplier de 1.5 a 2.0 para PAXGUSDT
Parámetros PAXGUSDT:
AUTOPILOT_SYMBOLS: PAXGUSDT # Solo este
CFG_AUTO::PAXGUSDT::AUTOPILOT_LOOKBACK_BARS: 8
CFG_AUTO::PAXGUSDT::AUTOPILOT_ATR_MULT: 1.8
CFG_AUTO::PAXGUSDT::AUTOPILOT_TP_MULT: 2.0 # Más alto
CFG_AUTO::PAXGUSDT::AUTOPILOT_MIN_VOL_REL: 0.3
Expectativa:
- Win rate: 35-40%
- Trades/mes: ~40-50
- PnL: Cercano a break-even o levemente positivo
OPCIÓN B: Agregar Símbolos Tipo PAXG#
Estrategia:
- Investigar otros stablecoins o pares de baja volatilidad
- USDCUSDT, TUSDUSDT, BUSDUSDT, etc.
- Diversificar en símbolos que se comportan como PAXGUSDT
- Evitar pares volátiles como EURUSDT, BTCUSDT
OPCIÓN C: Cambiar de Estrategia para EURUSDT#
Enfoque:
- EURUSDT → MA Crossover o Trend Following
- PAXGUSDT → Range Breakout (actual)
- Selección automática según volatilidad del símbolo
Lógica:
if symbol in ["PAXGUSDT", "USDCUSDT"]:
strategy = "range_breakout"
elif symbol in ["EURUSDT", "BTCUSDT"]:
strategy = "ma_crossover" # Mejor para tendencias
🎯 DECISIÓN REQUERIDA#
Usuario, basado en estos resultados, te recomiendo:
-
NO aplicar la Propuesta 1 original (no funciona para EURUSDT)
-
Elegir una de estas 3 acciones:
A) CONSERVADOR: Pausar EURUSDT, solo operar PAXGUSDT con parámetros optimizados
B) BALANCEADO: Agregar 2-3 símbolos similares a PAXGUSDT (stablecoins), diversificar
C) AGRESIVO: Implementar multi-estrategia (range_breakout para PAXG, MA crossover para EURUSDT)
¿Cuál prefieres que implemente primero?
📊 Datos Completos de Backtest#
Los scripts de backtest están en:
- Script:
/Users/dmx83/Repos/SignalDashPro/scripts/backtest_range_breakout.py - Servidor:
deploy-backend-1:/app/scripts/backtest_range_breakout.py
Para replicar cualquier test:
python scripts/backtest_range_breakout.py \
--symbol PAXGUSDT \
--days 90 \
--lookback-bars 8 \
--entry-atr-fraction 0.18 \
--atr-mult 1.8 \
--tp-mult 2.0 \
--min-vol-rel 0.3
Siguiente paso esperando tu decisión...