Saltar a contenido

🚀 PAXG Mean Reversion - Deployment Snapshot#

Estado del documento: Histórico (snapshot de despliegue).

Fecha del snapshot: 2026-03-09 16:17 UTC.

Para estado operativo vigente, usar en este orden:

  1. HANDOFF.md
  2. README.md
  3. Endpoints runtime (/settings/autopilot, /ops/p0/readiness, /ops/strategy/performance)

Status del Snapshot (09 Mar 2026 - 16:17 UTC)#

✅ Backend OPERACIONAL
✅ Shadow Mode ACTIVADO (simulación - sin riesgo real)
✅ Estrategia PAXG Mean Reversion CORRIENDO
✅ Autopilot generando ciclos cada minuto

📊 Configuración Activa#

Parámetro Valor
Strategy paxg_mean_reversion
Symbols PAXGUSDT
Trading Mode Simulation (Shadow)
Timeframe M15 (15 minutos)
Autopilot Cycle 1 minuto
Risk Per Trade 2% del capital

Indicadores Técnicos PAXG#

  • Bollinger Bands (20-period, 2.0 std dev)
  • RSI (14-period, thresholds 35/65)
  • Volume Profile (1.2x moving average)
  • Entry Logic: Price near BB + RSI extreme + Volume confirmation
  • TP/SL: 2.0x BB width (TP), 1.0x BB width (SL)

🔍 Cómo Monitorear#

Estado Vigente (consultar siempre)#

En lugar de depender solo de este snapshot, validar runtime actual:

TOKEN=$(curl -sS -X POST http://127.0.0.1:8096/auth/login \
   -H 'Content-Type: application/json' \
   -d '{"email":"admin@sdp.perlatec.net","password":"***"}' \
   | python3 -c 'import sys,json; print(json.load(sys.stdin).get("access_token",""))')

curl -sS http://127.0.0.1:8096/settings/autopilot -H "Authorization: Bearer $TOKEN"
curl -sS 'http://127.0.0.1:8096/ops/strategy/performance?days=7' -H "Authorization: Bearer $TOKEN"
curl -sS http://127.0.0.1:8096/ops/p0/readiness -H "Authorization: Bearer $TOKEN"

🧪 Tuning Backtest PAXG (15 Mar 2026)#

Se ejecutó un grid search de parámetros para paxg_mean_reversion en CT110.

  • Ventana solicitada: 90 días
  • Ventana real disponible en DB: 4230 velas M15 (2026-01-30 10:45:002026-03-15 12:00:00)
  • Combinaciones evaluadas: 6561
  • Variantes válidas: 5967

Mejor variante por score compuesto#

  • bb_period=15
  • bb_std=2.0
  • rsi_period=21
  • rsi_oversold=30
  • rsi_overbought=70
  • band_entry_pct=0.10
  • volume_mult=1.2
  • tp_mult=1.5
  • sl_mult=1.0

Indicadores de la variante ganadora#

  • trades=11
  • wins=7, losses=4
  • win_rate=63.6%
  • profit_factor=2.08
  • total_pnl=10.66%
  • max_drawdown=5.01%

Estado de aplicación#

Parámetros aplicados en runtime vía POST /settings/autopilot con mode=manual (reason: paxg_90d_backtest_tuning_2026_03_15).

Reporte generado en servidor:

  • /storage/reports/paxg_tuning_latest.json

Ajuste de robustez aplicado (min 30 trades)#

Para reducir riesgo de sobreajuste, se promovió la mejor variante entre las configuraciones con al menos 30 operaciones (top robusto de la corrida completa de 6561 combinaciones):

  • bb_period=20
  • bb_std=1.8
  • rsi_period=21
  • rsi_oversold=35
  • rsi_overbought=65
  • band_entry_pct=0.10
  • volume_mult=1.0
  • tp_mult=1.5
  • sl_mult=0.5

Aplicado en runtime vía POST /settings/autopilot con reason: paxg_robust_variant_min30_2026_03_15.

Comparativa directa: variante score vs variante robusta#

Se compararon las dos variantes líderes del grid sobre el mismo histórico disponible (2026-01-30 10:45:002026-03-15 12:00:00).

Variante Trades Win rate Profit factor PnL total Max DD Lectura
Score leader 15/2.0/21/30-70/0.10/1.2/1.5/1.0 11 63.6% 2.07 10.59% 5.07% Mejor calidad estadística por trade, pero muestra chica
Robust leader 20/1.8/21/35-65/0.10/1.0/1.5/0.5 30 46.7% 1.83 12.69% 4.66% Menor sobreajuste probable, más operaciones, más PnL, menor DD

Criterio de decisión#

  • Si el objetivo fuera maximizar el score del backtest, la líder sería la variante 15/2.0/....
  • Si el objetivo es promover una configuración más robusta para forward testing/producción, la decisión más defendible es la variante 20/1.8/... que hoy quedó activa en runtime.
  • No existen BacktestJob persistidos con strategy_name = paxg_mean_reversion, por lo que esta comparación debe entenderse como la mejor evidencia disponible del grid reciente, no como una serie histórica larga de versiones de la estrategia.

Backtest anual (1 año) y ajuste runtime posterior#

Para validar estabilidad fuera de la ventana corta disponible en CT110, se ejecutó comparación anual con velas públicas Binance M15 (aprox. 35040 velas).

Reporte generado:

  • storage/reports/paxg_1y_variants_compare.json
Variante Trades Profit factor PnL total Max DD Lectura
Score leader 15/2.0/21/30-70/0.10/1.2/1.5/1.0 113 1.259 17.08% 11.02% Rendimiento positivo, pero por debajo de la familia robusta
Robust current 20/1.8/21/35-65/0.10/1.0/1.5/0.5 251 1.421 34.74% 11.21% Mejor consistencia que score leader
Robust candidate 20/1.8/21/35-65/0.10/1.0/1.5/0.4 278 1.537 41.90% 9.70% Mejor combinación anual de retorno y control de DD

Decisión operativa aplicada en runtime (15 Mar 2026):

  • Se mantiene la familia robusta 20/1.8/21/35-65/0.10/1.0/1.5/*.
  • Se ajusta AUTOPILOT_PAXG_SL_MULT de 0.5 a 0.4 (reason: paxg_1y_candidate_sl04_2026_03_15).
  • Verificado por GET /settings/autopilot: mode=manual y effective_value=0.4.

Validación forward 72h (guardrails operativos)#

Se agregó chequeo automático para emitir veredicto watch/hold/rollback usando runtime settings + KPIs de GET /ops/strategy/performance:

  • Script: scripts/run_paxg_forward_guardrails.py
  • Reporte: storage/reports/paxg_forward_guardrails_latest.json

Comando base:

python scripts/run_paxg_forward_guardrails.py \
   --base-url https://api.sdp.perlatec.net \
   --email "$EMAIL" \
   --password "$PASS" \
   --rollout-at 2026-03-15T00:00:00Z

Resultado inicial (15 Mar 2026, primera corrida):

  • verdict=watch
  • reason=warmup_in_progress
  • elapsed_hours=15.18
  • closed_trades=0 (aún sin muestra para decisión)

Criterio operativo:

  • Antes de 24h: mantener watch.
  • Entre 24h y 72h: seguir recolectando muestra y revisar brechas.
  • A 72h con muestra mínima suficiente: hold si no hay brechas; rollback si hay brechas o degradación clara.

Backtest 1 año: estrategias PAXG codificadas (incluye MATVARD híbrida)#

Se ejecutó comparativo anual con velas públicas Binance M15 (35040 velas) para los modes disponibles hoy en código:

  • ma_crossover
  • range_breakout
  • paxg_mean_reversion (variante robusta SL=0.4)
  • paxg_matvard_hybrid

Reporte generado:

  • storage/reports/paxg_1y_three_strategies_binance.json
Estrategia Indicadores base Trades Win rate Profit factor PnL total Max DD
ma_crossover SMA(9), SMA(21) 975 19.90% 0.462 -2.78% 2.78%
range_breakout Rango(12), ATR(14), Volumen relativo SMA(20) 1113 33.33% 0.398 -3.52% 3.52%
paxg_mean_reversion robust SL=0.4 Bollinger(20,1.8), RSI(21), volumen relativo, proximidad a banda 278 30.22% 1.536 41.82% 9.70%
paxg_matvard_hybrid Mean reversion + MA contexto (21/55) + filtro de valor + régimen ATR 78 57.69% 1.045 5.50% 36.00%

Lectura operativa actual:

  • En horizonte anual y bajo estas reglas de simulación, la estrategia con mejor resultado es paxg_mean_reversion robust SL=0.4.
  • ma_crossover y range_breakout no muestran edge positivo anual para PAXG en esta configuración.
  • paxg_matvard_hybrid ya quedó implementada como estrategia autónoma y arroja PnL anual positivo, pero con drawdown alto en esta primera calibración.

Estado de la variante "combinada con MATVARD":

  • Ahora existe como mode autónomo en backend: paxg_matvard_hybrid.
  • Esta implementación combina señal base de reversion a la media con filtros MATVARD codificados de contexto/valor/ritmo y ya tiene backtest anual reproducible en el reporte anterior.

Opción 1: Script Rápido (recomendado)#

bash /tmp/check_paxg_status.sh

Muestra: Ciclos recientes, señales, configuración

Opción 2: Monitor Continuo#

python3 scripts/monitor_paxg_signals.py

Panel en vivo que actualiza cada 60 segundos

Opción 3: Logs Directos en Servidor#

sshpass -p "$CT_SIGNALDASHPRO_PASS" ssh -p 2202 root@185.209.230.42 \
   'docker exec deploy-backend-1 tail -f storage/logs/signaldashpro.log' | \
  grep -i paxg

📈 Qué Esperar#

Nota: esta sección describe expectativas del momento del snapshot (09-Mar). Los parámetros reales pueden haber cambiado por runtime settings manuales/auto.

En Shadow Mode (Simulación)#

  1. Autopilot ejecuta ciclos cada minuto
  2. Analiza candelas M15 de PAXGUSDT
  3. Genera señales: compra, venta, o espera
  4. Simula órdenes sin riesgo real

  5. Métricas a Monitorear

  6. scanned=1 → 1 símbolo evaluado (PAXG)
  7. created=0+ → Órdenes simuladas creadas
  8. blocked=N → Órdenes rechazadas por guardrails
  9. skipped=N → Ciclos saltados (fuera de horario/ventana)

  10. Ejemplo de Log

Autopilot cycle | scanned=1 created=1 blocked=0 skipped=0 queue_ids=[...]

Duración de Shadow Testing#

  • Mínimo: 24 horas (una sesión completa)
  • Recomendado: 48 horas (dos sesiones de mercado)
  • Objetivo: Validar que la estrategia genera señales coherentes sin crashes

⚙️ Cambios Realizados#

✓ backend/services/strategies/paxg_mean_reversion.py → DEPLOYED
✓ AUTOPILOT_MODE: range_breakout → paxg_mean_reversion
✓ AUTOPILOT_SYMBOLS: EURUSDT,PAXGUSDT → PAXGUSDT
✓ BINANCE_SIMULATION_MODE: false → true
✓ Backend reconectado con nueva config

🎯 Decisión Pendiente: EURUSDT#

Tenemos 3 opciones para EURUSDT:

Opción Acción Ventaja Desventaja
1. Keep Disabled No hacer nada No hay riesgo innecesario Pierdes 1 activo
2. Switch Strategy Activar con ma_crossover o range_breakout Diversificación Diferentes backtest requerido
3. Archive Dejar en producción pero monitoreado Total control Complejidad

Recomendación: Opción 1 (sigamos con PAXG puro por ahora)

¿Cuál prefieres? Podemos revisar juntos después de 24h de shadow testing.


📞 Soporte Rápido#

Problema Solución
Backend no responde docker logs current-backend-1 (observar 2 min de startup)
Sin señales PAXG Verificar: hora de trading UTC (7-21), balance demo, volume
Errores en logs Revisar /app/storage/logs/signaldashpro.log en contenedor

✅ Checklist Final#

  • [x] Backend desplegado ✓
  • [x] Nueva estrategia en memoria ✓
  • [x] Shadow Mode activado ✓
  • [x] Autopilot corriendo ✓
  • [x] Logs monitoreables ✓
  • [ ] 24h Shadow testing (en progreso)
  • [ ] Decisión EURUSDT (pendiente)

ESTADO: 🟢 OPERACIONAL - Listo para monitoreo


Última actualización del snapshot: 2026-03-09 16:17:22 UTC