🚀 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:
HANDOFF.mdREADME.md- 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:00→2026-03-15 12:00:00) - Combinaciones evaluadas: 6561
- Variantes válidas: 5967
Mejor variante por score compuesto#
bb_period=15bb_std=2.0rsi_period=21rsi_oversold=30rsi_overbought=70band_entry_pct=0.10volume_mult=1.2tp_mult=1.5sl_mult=1.0
Indicadores de la variante ganadora#
trades=11wins=7,losses=4win_rate=63.6%profit_factor=2.08total_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=20bb_std=1.8rsi_period=21rsi_oversold=35rsi_overbought=65band_entry_pct=0.10volume_mult=1.0tp_mult=1.5sl_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:00 → 2026-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
BacktestJobpersistidos constrategy_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_MULTde0.5a0.4(reason:paxg_1y_candidate_sl04_2026_03_15). - Verificado por
GET /settings/autopilot:mode=manualyeffective_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=watchreason=warmup_in_progresselapsed_hours=15.18closed_trades=0(aún sin muestra para decisión)
Criterio operativo:
- Antes de
24h: mantenerwatch. - Entre
24hy72h: seguir recolectando muestra y revisar brechas. - A
72hcon muestra mínima suficiente:holdsi no hay brechas;rollbacksi 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_crossoverrange_breakoutpaxg_mean_reversion(variante robustaSL=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_reversionrobustSL=0.4. ma_crossoveryrange_breakoutno muestran edge positivo anual para PAXG en esta configuración.paxg_matvard_hybridya 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
modeautó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)#
- Autopilot ejecuta ciclos cada minuto
- Analiza candelas M15 de PAXGUSDT
- Genera señales: compra, venta, o espera
-
Simula órdenes sin riesgo real
-
Métricas a Monitorear
scanned=1→ 1 símbolo evaluado (PAXG)created=0+→ Órdenes simuladas creadasblocked=N→ Órdenes rechazadas por guardrails-
skipped=N→ Ciclos saltados (fuera de horario/ventana) -
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