Cómo opera Xcripe 2.5 FULL sobre XAUUSD
Un sistema de entradas escalonadas por RSI, con gestión de cesta agrupada, filtro de tendencia y siete capas de protección de capital. Este manual documenta cada mecanismo tal como está implementado en el código, con diagramas de su funcionamiento real.
Resumen ejecutivo
Xcripe es un EA de reversión a la media escalonada: en lugar de esperar un único punto de entrada, define cuatro niveles de RSI cada vez más extremos por dirección. Cuanto más se estira el precio, más profundo es el nivel que se activa — y cada nivel dispara una ráfaga (burst) de varias órdenes de mercado simultáneas en vez de una sola posición.
Esas posiciones no se gestionan de forma aislada por mucho tiempo: en cuanto hay suficientes niveles abiertos en la misma dirección, el Modo Cesta las agrupa, retira los take-profits individuales y pasa a controlar el cierre por un objetivo y un stop en dinero ($) sobre el conjunto. Todo el proceso está enmarcado por un filtro de tendencia (EMA200 en H1) y siete filtros de protección que pueden bloquear entradas o cerrar posiciones ante condiciones de mercado anómalas.
◆ MOTOR DE ENTRADA
- 4 niveles RSI por dirección (compra/venta)
- Ráfaga de N órdenes de mercado por nivel
- Riesgo % y lotaje calculado por nivel
◆ GESTIÓN Y SALIDA
- Cesta agrupada con target/SL en $
- Trailing stop individual por nivel
- Circuit breaker + límites diarios
Arquitectura del sistema
En cada tick, el EA recorre una tubería de verificaciones antes de permitir que una señal RSI se convierta en una orden. Esta secuencia — implementada en CheckSignalTrading() — es el corazón operativo del sistema.
Escalera RSI de 4 niveles
El RSI(14) se calcula sobre la vela cerrada del timeframe de señal (M1 por defecto). Cada nivel tiene su propio umbral, su propio tamaño de ráfaga y su propio riesgo asignado — cuanto más extremo el RSI, mayor la ráfaga y el riesgo, siguiendo la configuración por defecto del EA.
Reglas de activación (armado)
Cada nivel tiene una bandera armed que evita disparos repetidos sobre el mismo estiramiento: un nivel solo puede volver a activarse después de que el RSI regrese a la zona neutral y vuelva a tocar el umbral. Un nivel bloqueado por ya tener una posición abierta en ese mismo nivel no se reabre hasta que esa posición se cierre.
Con UseProgressiveRisk = true, el riesgo de cada nivel se multiplica por ProgressiveMultiplier elevado a la potencia del nivel−1 (por defecto ×1.2), aumentando la exposición de forma geométrica cuanto más extremo es el nivel. Está desactivado por defecto.
Dimensionamiento de posición
El lotaje de cada orden dentro de una ráfaga se calcula para que la pérdida total de las N órdenes del nivel, si todas tocan su Stop Loss, equivalga al % de riesgo configurado sobre el balance. No es un riesgo por orden — es un riesgo por nivel, repartido entre todas las órdenes de la ráfaga.
Ejemplo con Nivel 1 de compra (valores por defecto)
| Variable | Valor |
|---|---|
| Riesgo del nivel | 0.5% del balance |
| Órdenes en la ráfaga | 5 |
| Stop Loss | 1500 puntos |
| Take Profit individual | 500 puntos |
| Relación riesgo:beneficio por orden | 3 : 1 |
Si el filtro UseRiskCalculation = false, el sistema ignora este cálculo y usa un lote fijo (FixedLotSize) para cada orden, sin importar el balance ni el nivel.
Filtro de tendencia EMA200
Antes de ejecutar cualquier señal RSI, el EA evalúa la posición del precio de cierre frente a una EMA de período configurable (200 por defecto) en un timeframe superior (H1 por defecto), usando siempre la vela cerrada para evitar ruido intrabar.
El filtro puede desactivarse por completo (EMA_Filter_Enable) o aplicarse solo a un lado (comprar o vender), y tiene un botón de encendido/apagado en tiempo real directamente en el panel del gráfico, con contadores de cuántas señales bloqueó en cada dirección.
Modo Cesta (Basket)
Este es el mecanismo distintivo de Xcripe. En vez de dejar que cada nivel se cierre por su cuenta, agrupa las posiciones de una misma dirección en una cesta cuando se cumplen las condiciones, y pasa a controlar el cierre por el resultado combinado en dinero.
Secuencia exacta
- Activación: cuando hay al menos Basket_MinLevels niveles distintos abiertos en la misma dirección (2 a 4, configurable).
- Toma de control: se eliminan los take-profits individuales de todas las posiciones de esa dirección; los stop-loss individuales se mantienen como red de seguridad ante movimientos violentos.
- Monitoreo: en cada tick se recalcula el PnL flotante total de la cesta.
- Cierre por target: si el PnL flotante ≥ Basket_Buy/Sell_TargetMoney, se cierran todas las posiciones de la cesta de una vez.
- Cierre por stop: si el PnL flotante ≤ −Basket_Buy/Sell_StopLossMoney, se cierra la cesta completa.
- Alerta: con Telegram activado, se notifica la activación y el cierre de cada cesta con el PnL final.
Trailing Stop por nivel
Cada uno de los 8 niveles (4 compra + 4 venta) tiene su propio trailing stop independiente, con tres parámetros: distancia de arranque, paso mínimo de movimiento y distancia de seguimiento.
El trailing actúa sobre posiciones individuales incluso cuando la cesta está activa — la cesta controla el cierre total por PnL agregado, pero el trailing puede seguir ajustando el stop de cada posición como capa adicional de protección.
Sistema de protecciones
Siete filtros independientes, evaluados antes de cada posible entrada. Cualquiera de ellos puede bloquear una señal o forzar el cierre de posiciones abiertas.
⚡ CIRCUIT BREAKER
Detecta velas cuyo rango supera SpikeRangeATRMult × ATR o un mínimo fijo en puntos. Al dispararse, cierra todas las posiciones del símbolo y bloquea nuevas entradas durante BreakerCooldownMinutes. También reacciona a slippage (requotes/rechazos) y a saltos de precio entre ticks (gap de liquidez).
📰 FILTRO DE NOTICIAS
Descarga el calendario de Forex Factory y bloquea operaciones NewsMinutesBefore/After alrededor de eventos de impacto alto (y medio, opcional) para las divisas configuradas — por defecto, USD.
Límites diarios y control de drawdown
El PnL del día se calcula como realizado + flotante (si CountFloatingLoss = true), reseteado al inicio de cada nueva sesión (Asia/Londres/NY configurables).
| Evento | Umbral | Acción |
|---|---|---|
| Pérdida diaria | DailyLossLimitPercent (5%) o DailyLossLimitMoney | Cierra todas las posiciones si CloseAllOnDailyLoss=true; bloquea nuevas entradas por el resto del día |
| Objetivo diario | DailyTargetMoney ($300 por defecto) | Cierra todo si CloseAllOnDailyTarget=true; con LockTradingAfterTarget=true bloquea hasta el inicio de la sesión asiática siguiente |
Estos límites son independientes del Modo Cesta: aunque una cesta tenga su propio target/SL en $, el límite diario global sigue vigilando el resultado agregado de toda la cuenta en el símbolo.
Panel de control en el gráfico
El panel se dibuja directamente sobre el gráfico de MT5 y se actualiza en tiempo real: estado de versión, RSI actual, tendencia EMA, estado del filtro ATR, ambas cestas y botones para armar/desarmar cada nivel individualmente sin reiniciar el EA.
Recreación esquemática del panel según la configuración de colores del EA (PanelBgColor, PanelHeaderColor) — no es una captura real.
Presets de cuenta
El input AccountPreset permite sobreescribir de golpe los niveles de compra al iniciar el EA (las ventas se desactivan en ambos presets). Cualquier valor tocado manualmente en los inputs se pierde al aplicar un preset distinto de CUSTOM.
| Preset | Nivel 1 | Nivel 2 | SL / TP | Drawdown diario |
|---|---|---|---|---|
| Prop Agresivo | RSI 14 · 12 ord. · 1.0% | RSI 8 · 26 ord. · 3.0% | 3000 / 1150 pts | 5% |
| Prop Conservador | RSI 25 · 30 ord. · 1.0% | RSI 15 · 20 ord. · 1.5% | 3000 / 1150 pts | — (usa el input general) |
| Personalizado | Usa exactamente los valores definidos en los inputs de cada nivel, sin sobreescribir nada | |||
Cómo se comporta la curva de resultados
El diagrama siguiente no proviene de una prueba histórica real sobre XAUUSD. Es una representación esquemática de la forma que tiende a tomar la curva de un sistema de reversión a la media con entradas escalonadas y cesta agrupada, para ilustrar el mecanismo — no un resultado esperado ni una promesa de rentabilidad. Para conocer el desempeño real con la configuración actual, es imprescindible correr el Strategy Tester de MT5 (idealmente con datos tick-a-tick) sobre el rango de fechas y símbolo que interesen.
Qué determina la forma real de la curva
- Régimen de mercado: en rangos laterales, la reversión a la media captura oscilaciones con frecuencia. En tendencias fuertes y sostenidas, los niveles más profundos (L3/L4) pueden acumular varias posiciones en contra antes de que el precio revierta.
- Relación target/SL de la cesta: un target bajo y alcanzable genera más cierres ganadores pero más pequeños; un SL de cesta amplio tolera más ruido antes de cortar pérdidas.
- Filtro EMA200: reduce las entradas contra-tendencia, lo que en teoría acorta las rachas de niveles profundos abiertos en la dirección equivocada — a costa de dejar pasar reversiones válidas en mercados laterales sobre una EMA plana.
- Límites diarios: actúan como el freno de emergencia final, independiente de cómo se esté comportando cualquier cesta individual.
Referencia completa de parámetros
Todos los inputs del EA, agrupados exactamente como aparecen en la ventana de propiedades de MT5.
Identificación de órdenes 4 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| InpTradeComment | "" | Comentario de las órdenes |
| InpUsePerLevelMagic | true | Magic number distinto por nivel, para poder rastrear cada uno |
| InpMagicBase | 202501 | Base del magic number |
| InpMagicBaseFromLogin | true | Deriva el magic base del login de la cuenta |
Configuración general y RSI 5 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| InpSymbol | XAUUSD | Símbolo operado |
| TF_Signal | M1 | Timeframe de la señal RSI |
| RSIPeriod | 14 | Período del RSI |
| ActivarVentas | true | Habilita el lado de ventas por completo |
| UseProgressiveRisk | false | Multiplica el riesgo geométricamente por nivel |
Filtro de tendencia EMA 9 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| EMA_Filter_Enable | true | Activa el filtro globalmente |
| EMA_Period | 200 | Período de la media móvil |
| EMA_Timeframe | H1 | Timeframe de cálculo |
| EMA_Method | MODE_EMA | EMA / SMA / SMMA / LWMA |
| EMA_Filter_Buys / Sells | true / true | Aplica el filtro por dirección |
| EMA_ShowInPanel | true | Muestra estado en el panel |
Modo Cesta (Basket) 8 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| Basket_Enable | true | Activa el sistema de cesta |
| Basket_MinLevels | 2 | Niveles simultáneos mínimos para activar la cesta (2–4) |
| Basket_Buy_TargetMoney | $150 | Target de cierre para cesta de compras (0 = desactivado) |
| Basket_Buy_StopLossMoney | $200 | Stop de cesta de compras |
| Basket_Sell_TargetMoney | $150 | Target de cierre para cesta de ventas |
| Basket_Sell_StopLossMoney | $200 | Stop de cesta de ventas |
| Basket_TelegramAlert | true | Notifica activación y cierre de cesta |
Niveles de compra / venta (×8) 10 parámetros cada uno
| Parámetro | Qué controla |
|---|---|
| BuyN_Enable / SellN_Enable | Activa el nivel N |
| BuyN_RSI / SellN_RSI | Umbral de disparo |
| BuyN_Orders / SellN_Orders | Órdenes en la ráfaga |
| BuyN_Risk / SellN_Risk | % de riesgo del nivel |
| BuyN_TP_Points / SellN_TP_Points | Take profit individual (puntos) |
| BuyN_SL_Points / SellN_SL_Points | Stop loss individual (puntos) |
| BuyN_TS_Enable/Start/Step/Dist | Trailing stop del nivel |
Gestión de riesgo y filtro ATR 10 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| UseRiskCalculation | true | Calcula lote por riesgo % en vez de lote fijo |
| FixedLotSize | 0.01 | Lote usado si el cálculo por riesgo está apagado |
| EnableATRFilter | true | Activa filtro de volatilidad |
| ATRPeriod / ATR_Timeframe | 14 / M15 | Cálculo del ATR de referencia |
| ATR_MinMultiplier / MaxMultiplier | 0.5 / 3.0 | Banda de volatilidad permitida |
| MaxSpreadPoints | 50 | Spread máximo tolerado |
Filtro de horario y noticias 14 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| EnableTimeFilter | true | Activa ventanas horarias bloqueadas |
| BlockWindows | 23:00-01:30; 12:25-13:10 | Rangos bloqueados (rollover, almuerzo NY) |
| EnableNewsFilter | true | Activa el filtro de noticias |
| ForexFactoryURL | nfs.faireconomy.media/… | Fuente del calendario económico |
| NewsMinutesBefore / After | 30 / 30 | Ventana de bloqueo alrededor del evento |
| NewsFilterHighImpact / MediumImpact | true / false | Qué severidad de noticia bloquea |
| NewsFilterCurrencies | USD | Divisas monitoreadas |
Límites diarios y Circuit Breaker 17 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| EnableDailyLimits | true | Activa el control diario |
| DailyLossLimitPercent | 5.0% | Pérdida diaria máxima |
| DailyTargetMoney | $300 | Objetivo diario de ganancia |
| LockTradingAfterTarget | true | Bloquea nuevas entradas tras alcanzar el objetivo |
| EnableCircuitBreaker | true | Activa la protección anti-spike |
| SpikeRangeATRMult | 2.5 | Múltiplo de ATR que define un spike |
| BreakerCooldownMinutes | 30 | Minutos de bloqueo tras un spike |
| MaxTickGapPoints | 800 | Salto de precio entre ticks que activa alerta de gap |
Interfaz gráfica y alarmas 18 parámetros
| Parámetro | Default | Descripción |
|---|---|---|
| ShowPanel | true | Muestra el panel en el gráfico |
| EnableSoundAlerts / PopupAlerts | true / true | Alarmas locales de sonido y popup |
| EnableTelegramAlerts | false | Notificaciones por Telegram |
| Alarm1/2/3_Level | 20 / 10 / 90 | Umbrales de RSI para alarmas informativas (independientes del trading) |
Advertencias y buenas prácticas
Xcripe promedia posiciones contra el precio a medida que este se estira (RSI más extremo → más órdenes y más riesgo por nivel). Esto es estructuralmente similar a una estrategia de grid / martingala parcial: mejora la tasa de acierto en mercados de rango, pero puede acumular exposición considerable durante tendencias fuertes y sostenidas antes de que el Circuit Breaker, el SL de cesta o el límite diario intervengan.
- Probar en demo primero: validar la configuración completa (niveles, cesta, filtros) en cuenta demo o Strategy Tester antes de arriesgar capital real.
- Respetar los límites diarios: desactivarlos o ampliarlos sin criterio elimina el principal freno de emergencia del sistema.
- Vigilar el spread real del bróker: en XAUUSD el spread puede variar mucho entre brokers y sesiones; MaxSpreadPoints debe ajustarse a las condiciones reales de ejecución.
- Rendimiento pasado ≠ resultados futuros: cualquier backtest o resultado en cuenta demo depende del régimen de mercado del período probado y no garantiza comportamiento futuro.
- Whitelist de WebRequest: para que el filtro de noticias y Telegram funcionen, hay que agregar nfs.faireconomy.media (y api.telegram.org si se usa) en Herramientas → Opciones → Expert Advisors de MT5.