Volver al Caso de Estudio

Carry Trade Algo — Tech Deep Dive

Estrategia Forex Algorítmica — Validación de 94 Días en Paper Trading

Stack Tecnológico

PythonOANDA APIpandasSQLiteDockerAWS
Arquitectura: Pipeline Basado en Eventos

Arquitectura

OANDA v20 REST API300 H1 Candles · Positions · Swap RatesHourly TickV3 Carry StrategyGolden Cross (50/200 MA) + Positive Swap6 JPY Pairs · RSI < 75 · Regime FilterRegime DetectorADX + ATR → 4 Market StatesTrend/Range × Low/High VolNews BlackoutFOMC · BOJ · ECB±1h High-Impact EventsSignalsML Signal GateThompson Sampling · 14 Features · TAKE / SKIPDynamic Sizer + Exit ManagerKelly × ATR × Regime × Correlation × DD Decay7 Exit Conditions · Trailing Stops · Profit Scaling5-Layer Risk1. Kelly Criterion2. ATR Volatility Scaling3. Regime Multiplier4. Correlation Monitor5. Drawdown DecayCircuit BreakersDaily: -3% · Weekly: -7%Max DD: -20% → HALTMax 6 Positions · 15%/PairLimit Orders @ BidSQLite (WAL)Trades · Equity · ProtocolSurvives Container RestartsTelegram Bot/status · /trends · /positionsReal-time Alerts · WatchdogDocker on AWS EC2LIVE — Day 41/94Hourly event-driven pipeline: OANDA data → Strategy → ML Gate → Risk Sizing → Execution → PersistenceCore PipelineRisk / FiltersDecision NodeGuard / Gate

Flujo de Datos

  1. 1

    APScheduler activa tick horario durante horas de mercado forex (Dom 22:00 - Vie 22:00 UTC)

  2. 2

    El reconciliador sincroniza estado interno con posiciones del broker OANDA (broker = fuente de verdad)

  3. 3

    El fetcher de datos obtiene 300 velas H1 por par desde la API REST OANDA v20

  4. 4

    La Estrategia V3 evalúa cruce dorado, tasas de swap, RSI y régimen para señales de entrada/salida

  5. 5

    El gate ML Bandit (Thompson Sampling) decide TOMAR o SALTAR basándose en 14 features contextuales

  6. 6

    El dimensionador dinámico calcula unidades: Kelly × ATR × régimen × correlación × decaimiento por drawdown

  7. 7

    El gestor de salidas verifica 7 condiciones por tick: stop-loss, trailing, tiempo, profit escalado, cambio de régimen, reversión de tendencia

  8. 8

    Las órdenes se colocan como límites al precio bid (ahorra 1-2 pips vs órdenes de mercado)

  9. 9

    Los circuit breakers evalúan umbrales diarios/semanales/DD máx — detienen trading si se violan

  10. 10

    La persistencia SQLite modo WAL guarda todo el estado (sobrevive reinicios de contenedor)

  11. 11

    El bot de Telegram despacha alertas y responde a comandos /status, /trends, /positions, /health

Patrones de Código

Pipeline de Riesgo Multi-Capa

El dimensionamiento de posición fluye a través de 5 factores de riesgo independientes multiplicados: criterio de Kelly (tamaño óptimo por win rate), escalado de volatilidad ATR (menos tamaño cuando es volátil), multiplicador de régimen (0-100% basado en estado de tendencia + volatilidad), factor de correlación (reduce tamaño cuando pares JPY correlacionan >0.7), y decaimiento cuadrático por drawdown (15% DD = 50% tamaño). Tres circuit breakers proveen paradas duras.

Estrategia Adaptativa por Régimen

Un detector de régimen compuesto clasifica mercados en 4 estados usando ADX (fuerza de tendencia) y ATR (volatilidad): TENDENCIA_BAJA_VOL (tamaño completo), TENDENCIA_ALTA_VOL (75%), RANGO_BAJA_VOL (25%), RANGO_ALTA_VOL (0%). La optimización Bayesiana semanal via Optuna reentrena parámetros por régimen con datos recientes.

Resiliencia Operacional

El estado SQLite modo WAL sobrevive reinicios de contenedor Docker. La reconciliación horaria con OANDA detecta discrepancias de posiciones. La integración de calendario económico bloquea entradas ±1h alrededor de eventos de alto impacto (FOMC, BOJ). El watchdog monitorea heartbeats y escala via Telegram en ticks perdidos.

Métricas del Sistema

473 tests
Suite de Tests
4 (V3 activa)
Versiones de Estrategia
5 + 3 breakers
Capas de Riesgo
23
Módulos Fuente

Próxima Evolución

Quedan 53 días en el protocolo de validación de 94 días. El sistema necesita 50+ trades completados para significancia estadística y debe mantener <15% de drawdown para aprobar. Trayectoria actual: 30 trades limpios con 70% de win rate y 0.53% de drawdown máximo.

Después de completar el protocolo, la checklist de Preparación para Dinero Real requiere: detección de régimen como gate duro de entrada (no solo dimensionamiento), activación del ML bandit (actualmente en modo shadow aprendiendo de resultados), bloqueo duro de VIX > 25, blackout de 48 horas para reuniones del BOJ, y protección de gaps de fin de semana.

El despliegue de capital sigue un enfoque por fases: $5-10K de asignación inicial con límites estrictos de posición, escalando a $20-25K después de 3 meses de rendimiento en vivo, con despliegue completo solo después de 6+ meses de resultados consistentes y auditables.

Desarrollo Activo — Sigue el Proceso

¿Quieres resultados similares para tu proyecto?