Saltar a contenido

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:

  1. NO aplicar la Propuesta 1 original (no funciona para EURUSDT)

  2. 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...