Grid Double Exponential Moving Average EA
- Asesores Expertos
-
AL MOOSAWI ABDULLAH JAFFER BAQER
To trade successfully we need to go through the proven path that others had gone and reached!
Here are 17 quotes from such successful investors:
1- Limit your size in any position so that fear does not become the prevailing instinct guiding your judgment.
Joe Vidich - Versión: 3.15
- Activaciones: 5
Antes de nada, pruébalo con datos históricos de forma gratuita: abre el EA «Grid Double Exponential Moving Average» en el Probador de estrategias de MetaTrader 5, selecciona el modo visual y observa cómo una vela cerrada cruza la línea DEMA mientras la rejilla permanece inactiva hasta que llega esa barra concreta.
UNA LÍNEA EN EL GRÁFICO, UNA RAZÓN CLARA PARA CADA CICLO.
El EA «Grid Double Exponential Moving Average» utiliza la DEMA de Patrick Mulloy, una media móvil diseñada para seguir el precio con mucho menos retraso que una EMA clásica, para determinar cuándo ha comenzado un nuevo movimiento. A continuación, un completo motor de gestión de la rejilla toma el relevo y va reduciendo la exposición más antigua, cerrando un grupo y una porción parcial cada vez.
La versión resumida
• Un ciclo de COMPRA comienza únicamente cuando una barra cierra por encima de la DEMA después de que la barra anterior cerrara en ella o por debajo; un ciclo de VENTA comienza únicamente con el cruce inverso por debajo de la línea. Solo se tienen en cuenta las barras cerradas, por lo que no hay repintado.
• El nuevo «Cross Depth Guard» comprueba hasta qué punto el cierre se ha situado más allá de la línea, medido en ATR. Un cruce que apenas roza la línea se ignora como ruido, y un cruce que se sitúa muy más allá de ella en una vela violenta se ignora como un pico que a menudo retrocede bruscamente.
• Una regla de pendiente mantiene cada entrada en sintonía con la propia línea: solo se compra mientras la DEMA está subiendo, y solo se vende mientras está bajando.
• El DEMA se traza en el gráfico en tiempo real de la ventana principal, y unas flechas marcan cada vela en la que se ha activado un ciclo, para que puedas ver cada decisión.
• Las ganancias se acumulan por grupos de órdenes más antiguas y más recientes, y una orden antigua de gran volumen se retira en tramos parciales en lugar de esperar a obtener un rendimiento completo.
• Sin stop loss ni cierre forzado de todas las posiciones. Cuando se alcanza un límite, se rechazan los nuevos niveles mientras se sigue gestionando el libro de órdenes existente.
• Funciona en cuentas de cobertura y de compensación, y cada límite es un dato visible.
PRIMEROS PASOS
Empieza con el EURUSD H1 o el XAUUSD D1 con el lote predeterminado de 0,01 y la escalera aditiva. Para la primera sesión, configura RunMode en «Scan only» (Solo escaneo): el panel mostrará entonces todos los planes que el EA elaboraría sin enviar ni una sola orden, y un botón te permitirá cambiarlo a «Armed» (Activo) cuando estés listo. Prueba siempre primero en el Strategy Tester con los datos de tu propio bróker, ya que los spreads, los swaps y las comisiones varían de un bróker a otro. Con un saldo reducido, mantén el lote inicial y deja que el tester te muestre hasta qué punto puede crecer la cartera con tu par de divisas.
¿Por qué una media exponencial doble?
Todas las medias móviles presentan un retraso, ya que se calculan a partir de precios pasados. La DEMA reduce ese retraso combinando un suavizado simple y otro doble del mismo precio, por lo que cambia de dirección antes que una EMA ordinaria de la misma longitud, al tiempo que se mantiene lo suficientemente suave como para ignorar los ticks individuales. Para una estrategia de rejilla, esto es importante: una señal tardía significa que el primer nivel se coloca cuando gran parte del movimiento ya ha pasado. Un cierre que cruza una línea rápida y suave es un evento sencillo y visible, y los filtros adicionales deciden cuáles de esos cruces merecen un ciclo.
Novedades de esta versión
El «Cross Depth Guard» es una mejora propia de este EA. La mayoría de los cruces falsos se dividen en dos grupos: un mercado tranquilo en el que el precio se desvía de la línea en una fracción de pip, y una vela de noticias que salta muy por encima de la línea y retrocede en las barras siguientes. El «guard» mide la distancia entre el precio de cierre y el DEMA en la barra del cruce y la divide por el ATR de esa barra, por lo que el mismo ajuste funciona con divisas, oro e índices. Por debajo de tu mínimo, el cruce se rechaza; por encima de tu máximo, también se rechaza; entre ambos, se acepta. Establece cualquiera de los límites en 0 para desactivar ese lado del filtro. El panel muestra una fila «DEPTH GUARD» con la distancia en tiempo real en ATR, tus dos límites y si el filtro indica «OPEN» o «HOLD». Se incluye la seguridad del marco temporal a nivel de margen, que está desactivada por defecto.
Cómo se ejecuta un ciclo
1. La lectura. En cada barra cerrada, el EA lee el DEMA integrado en MetaTrader 5. Nunca se utiliza la vela que se está formando, por lo que lo que ves en el historial es lo que el EA vio en ese momento.
2. El cruce. Se considera una COMPRA cuando la barra cierra por encima del DEMA después de que la barra anterior haya cerrado en él o por debajo; una VENTA es el caso inverso, por debajo de la línea.
3. La regla de la pendiente. Por defecto, el DEMA debe estar al alza para una orden de COMPRA y a la baja para una orden de VENTA, por lo que se omite cualquier cruce con una línea que aún apunte en la dirección opuesta.
4. El filtro de profundidad del cruce. El cierre debe situarse entre la distancia mínima y máxima respecto a la línea, medida en ATR.
5. El filtro de tendencia opcional. Una EMA lenta puede confirmar la tendencia: opera solo a favor de ella, solo en contra de ella como una operación de «fade», o déjala desactivada.
6. El ritmo. Un intervalo tranquilo de barras entre las señales aceptadas evita que una sesión volátil inicie un ciclo tras otro, y una señal sigue siendo válida durante unas cuantas barras si no se puede establecer un nivel de inmediato.
7. La escalera. Los niveles se espacian por puntos fijos o por ATR, con un mínimo, un máximo y la opción de congelar la distancia durante todo el ciclo. Las rejillas de COMPRA y VENTA pueden funcionar en paralelo o solo en una dirección.
8. La cosecha. El sistema busca grupos de órdenes más antiguas y más recientes y cierra un grupo tan pronto como su resultado combinado, tras deducir el swap y la comisión, supere tu objetivo. Cuando la orden más antigua sigue siendo demasiado pesada, solo se cierra una parte de ella, pagada con los beneficios ya obtenidos.
9. Los controles de seguridad. Un filtro de reapertura bloquea cualquier cierre que reabriría el mismo nivel de inmediato. Cada tramo se compara con el historial de operaciones; los tramos fallidos pasan a una cola de reintentos, y el plan se descarta si el libro de órdenes cambia entre el escaneo y el envío.
10. El ciclo de cobertura opcional. Desactivado por defecto. Cuando se activa, mantiene un par equilibrado en un símbolo que elijas y lo retira en partes iguales, financiadas mediante un pequeño recargo sobre los cierres que la rejilla ya está realizando.
El panel
El panel se sitúa a la izquierda del gráfico y deja libre el lado derecho y la escala de precios. Muestra el símbolo y el número mágico, un indicador de estado (ARMADO, SOLO ESCANEO o EN PAUSA), el modo de rejilla, el paso de lotes, el espaciado, las ganancias acumuladas, el libro de órdenes en lotes con su resultado neto, el plan de cierre para cada lado con su propio botón de cierre y la lista de órdenes. La fila DEMA PULSE muestra el período y el valor en tiempo real de la línea, si el precio está por encima o por debajo de ella, si la línea está subiendo o bajando y cuántas barras atrás se produjo el último cruce. La fila DEPTH GUARD muestra la distancia en tiempo real en ATR, los límites de protección, el estado de protección y el filtro de tendencia. Los botones permiten alternar entre «Armado» y «Solo escaneo», «Pausa» y «Reanudar», así como gestionar las marcas del gráfico y el corte de datos. La tarjeta «Hedge Vault» está acoplada directamente debajo del panel principal y la sigue cuando se arrastra o se minimiza. El panel se adapta al tamaño de la pantalla y no dibuja nada en un backtest no visual, por lo que la optimización sigue siendo rápida.
Protección que tú controlas
Sin stop loss ni cierre forzado de todas las posiciones. Al alcanzarse un límite, se detienen los nuevos niveles; nunca se liquida la cartera en un mal momento.
Antes de cada orden, la comprobación de fondos plantea una pregunta sencilla: ¿hay margen libre suficiente, con un colchón de seguridad, para esta orden?
Los límites en los niveles por cuadrícula, las órdenes por lado y los lotes por orden mantienen la escalera dentro de unos límites, y la escalera de lotes deja de crecer al alcanzar el límite de nivel.
En las cuentas de compensación, el margen de la posición fusionada se limita a un porcentaje del capital.
La seguridad opcional del nivel de margen en el marco temporal traslada la señal y el espaciado a un marco temporal superior cuando el nivel de margen cae a los niveles elegidos, y vuelve a su posición original solo después de que el margen se recupere por encima de un colchón de seguridad. Desactivado por defecto.
Cada copia se aísla por símbolo y números mágicos, por lo que los distintos gráficos nunca interfieren en las órdenes ni en el estado guardado de los demás.
El modo «solo escaneo» muestra todas las decisiones sin enviar ninguna orden.
Para quién es y para quién no es
Es adecuado para operadores que desean una línea visible en el gráfico que justifique cada nuevo ciclo, que prefieren muchos cierres pequeños a un único objetivo lejano y que están dispuestos a ajustar el tamaño del lote para su propia cuenta. No es adecuado para quienes necesitan un stop loss en cada orden, una cifra mensual garantizada o un robot del tipo «configurar y olvidar» que ejecute lotes grandes con un saldo muy reducido.
Respuestas rápidas
¿Se repinta? No. Las señales proceden únicamente de barras cerradas.
¿Puedo hacer que la línea sea más rápida o más lenta? Sí. Un periodo DEMA más corto reacciona antes y ofrece más cruces; uno más largo ofrece menos cruces, pero más tranquilos.
¿Puedo utilizarlo con el oro o con índices? Sí. Funciona con cualquier símbolo y marco temporal; el espaciado ATR y el «depth guard» basado en el ATR se adaptan al símbolo.
¿Puedo ejecutarlo en varios gráficos? Sí. Asigna a cada copia sus propios números mágicos y permanecerán totalmente separadas.
¿Puedo hacer que opere con mayor o menor frecuencia? Sí. Reduce el valor de «SignalBarsDelay» o el mínimo de profundidad para obtener más ciclos; auméntalos, utiliza un DEMA más largo o activa el filtro de tendencia para obtener menos.
Explicación de todos los parámetros
Grid: cómo se abren los niveles
TradeMode: rejilla dual por defecto (COMPRA y VENTA una al lado de la otra) o solo en una dirección.
GridSpacePoints: distancia fija entre niveles en puntos cuando el espaciado ATR está desactivado (25).
GridSpaceMultiplier: 1,0 mantiene los niveles espaciados de manera uniforme; un valor más alto separa más los niveles más profundos.
MaxGridLevels: el número máximo de niveles que puede contener una cuadrícula (1000).
UpDirectionIsBuy: determina a qué lado pertenece un movimiento alcista.
EAMagicNumber: el ID que aparece en las órdenes de rejilla de este EA (9754270).
GridOrderComment: el comentario de cada orden de la rejilla (GDEMA).
OneOrderPerBar: no más de un nuevo nivel por barra.
Escalera de lotes
InitialLotSize: volumen del primer nivel (0,01).
LotSizingMode: aditivo por defecto, o multiplicativo.
LotMultiplier: en modo multiplicativo, cada nivel es el lote anterior multiplicado por este valor (1,25).
LotAddStep: en modo aditivo, el volumen añadido en cada nivel (0,01; 0 significa el lote inicial).
MaxOrderVolume: el lote máximo que puede utilizar una sola orden (1,0).
UseAutoLot: ajusta el lote inicial en función del saldo (desactivado).
AutoLotBaseBalance: el saldo que se corresponde con el lote inicial (1000).
AutoLotAllowDecrease: permite que el lote automático sea inferior al lote inicial (desactivado).
Espaciado ATR
GridSpacingMode: ATR por defecto o puntos fijos.
ATRTimeframe: el marco temporal en el que se mide la volatilidad (gráfico actual).
ATRPeriod: duración del ATR (14).
ATRSpacingFactor: el espaciado es igual al ATR multiplicado por este valor (1,0).
ATRBarShift: si se establece en 1, se utiliza la última barra cerrada.
ATRMinSpacingPts: el espaciado mínimo permitido en puntos (50; 0 significa que no hay espaciado).
ATRMaxSpacingPts: el espaciado máximo permitido en puntos (5000; 0 significa que no hay espaciado).
ATRFreezeOnStart: mantiene un único espaciado durante todo el ciclo (desactivado).
Objetivo de beneficio
DesiredProfitPerClosure: el objetivo base en la divisa de la cuenta (2,0).
ProfitMultiplier: escala el objetivo final entre 1,00 y 2,00.
ProfitTargetMode: escalado por defecto, por lo que un libro de órdenes más amplio y profundo debe generar un resultado mayor.
ProfitVolumePower: indica en qué medida el volumen de cierre eleva el objetivo (1,0; 0 lo desactiva).
ProfitDepthBonus: objetivo adicional por cada nivel abierto adicional (0,10).
ProfitMaxMultiple: el límite máximo del objetivo escalado como múltiplo del objetivo base (50).
ProfitMaxReachFraction: mantiene el objetivo dentro de una fracción de un paso de la cuadrícula para que siga siendo alcanzable (0,50).
Escáner de fragmentos
UseMultiLegScan: comprueba combinaciones de varias órdenes antes que el par simple (activado).
MaxOldestLegs: el número máximo de órdenes más antiguas permitidas en un cierre (3).
MaxNewestLegs: el número máximo de órdenes más recientes permitidas en un cierre (6).
ScanPriority: cómo se clasifican los grupos que cumplen los requisitos; por defecto, primero las órdenes más numerosas.
NeverBankLessThanPair: un grupo también debe superar el objetivo del par simple (activado).
RequireCloseVolumeExceedsTarget: el volumen más reciente debe superar al más antiguo (activado).
MinCloseVolumeRatio: ratio mínimo entre el volumen de cierre y el volumen objetivo (1,5).
División del objetivo: cierres parciales
EnableTargetSlicing: cierra una parte de la orden más antigua cuando aún no se puede liquidar todo el lote (activado).
FragProfitWeightPower: cómo se pondera el beneficio por lote de cierre (1,5).
FragMinSlicePercent: la porción más pequeña expresada como porcentaje de la orden objetivo (20).
FragAllowMultiCloser: permite que varias órdenes más recientes sumen sus beneficios para pagar una porción (activado).
FragPreferFullClosure: un cierre completo tiene prioridad sobre una porción siempre que ambos cumplan los requisitos (activado).
Protección contra reapertura
ReopenGuard: bloquea los cierres que reabrirían inmediatamente un nivel (basado en pasos).
ReopenGuardCushion: la distancia de seguridad como fracción de un paso de la cuadrícula (0,90).
Protección de la cuenta
MinMarginLevelPercent: no se abren nuevas posiciones por debajo de este porcentaje de nivel de margen (0 = desactivado).
MaxAccountRiskPercent: no se establecen nuevos niveles por encima de esta pérdida flotante expresada como porcentaje del saldo (0 = desactivado).
NetMaxMarginPercent: en cuentas de compensación, el margen máximo de la posición neta como porcentaje del capital propio (5,0).
MaxTotalOrders: límite máximo absoluto de órdenes en cuadrícula por lado (1000).
Ejecución y verificación
RunMode: «Armed» (Activo) o «Scan only» (Solo escaneo); «Scan only» es el primer paso más prudente.
CloseSequence: el orden en el que se envían las partes de la operación; por defecto, primero las más antiguas.
MaxSlippagePoints: deslizamiento máximo (30 puntos).
MaxSpreadPoints: la negociación se detiene por encima de este spread (7500 puntos).
MinSecondsBetweenClosures: pausa mínima entre dos cierres en el mismo lado (5 segundos).
CloseAttemptsPerLeg: número de intentos de cierre antes de que un tramo pase a la cola de reintentos (3).
VerifyTimeoutSeconds: tiempo durante el que se sigue comprobando un tramo atascado (90 segundos).
DeferWhenMarketClosed: espera a que comience la sesión en lugar de detenerse cuando el mercado está cerrado (activado).
MarketClosedRetrySeconds: intervalo de reintento mientras el bróker rechaza las órdenes (30 segundos).
AutoResumeAfterSeconds: anula la interrupción automáticamente tras este número de segundos (300; 0 espera a que se pulse el botón del panel).
NoPartialRetryMinutes: vuelve a intentar cierres parciales tras este número de minutos tras un rechazo del bróker (15; 0: nunca).
AbortIfBookChanged: descarta un plan si se produce un cambio en una de las partes de la operación entre el escaneo y el envío (activado).
UseFullCommission: calcula la comisión para ambas partes de una operación (activado).
CommissionPerLot: comisión alternativa cuando el historial no contiene ninguna (0: la lee del historial).
CloseOrderComment: el comentario al cerrar operaciones.
Ciclo de cobertura
EnableHedgeCycle: desactivado por defecto.
HedgeSymbols: lista de símbolos de cobertura separados por comas; repetir uno le da más turnos (XAGUSD).
Rotación de símbolos de cobertura: cómo se elige el símbolo del siguiente ciclo (por ciclo).
HedgeMaxSymbolsInTester: limita la rotación únicamente en el Probador de estrategias (2; 0 significa que no hay límite).
HedgeCycleLots: lotes en cada lado del par equilibrado (0,01).
HedgeSliceLots: lotes retirados de cada lado por porción (0,01).
HedgeFragmentBonus: cantidad adicional que se suma al coste del segmento (100).
HedgeBonusIsPercent: la bonificación es un porcentaje del coste del segmento; si se establece en «false», se convierte en una cantidad fija (activado).
HedgeMaxSurcharge: límite máximo de dinero que se puede aplicar como recargo a un cierre (0 = sin límite).
HedgeMaxSurchargePercent: el porcentaje máximo en que la cobertura puede elevar cualquier objetivo de cierre (50).
HedgeMagicNumber: el ID de las partes de la cobertura; debe ser diferente del de la cuadrícula (9754271).
HedgeReopenOnFinish: abre un nuevo ciclo al finalizar uno (activado).
HedgeStartRequiresTrade: espera a que la cuadrícula abra una posición antes del primer ciclo (activado).
HedgeIntegritySeconds: frecuencia con la que se comprueba que ambas posiciones sean iguales (5 segundos).
HedgeAutoRepair: repara automáticamente una posición aislada (activado).
HedgeNakedAction: qué hacer con una posición aislada; por defecto, se vuelve a cubrir.
HedgeMaxSpreadPoints: no se realizan órdenes de cobertura por encima de este spread (0 = desactivado).
HedgeSlippagePoints: deslizamiento máximo en las órdenes de cobertura (30 puntos).
HedgeAttemptsPerLeg: número de intentos por parte de la operación de cobertura (3).
HedgeVerifyTimeout: tiempo durante el que se sigue comprobando una posición de cobertura bloqueada (90 segundos).
HedgeCommissionPerLot: comisión de cobertura por defecto (0: se lee del historial).
HedgeOrderComment: comentario sobre las operaciones de cobertura.
Día de liquidación semanal
WeeklyCashDay: no hay nuevo ciclo de cobertura ni reparto durante el periodo de retirada (desactivado).
CashDayOfWeek: 0 = domingo, 1 = lunes, y así sucesivamente (1).
CashCutoffHour: hora del servidor a partir de la cual no se activa ninguna nueva distribución (21).
Panel y gráfico
ShowPanel: muestra u oculta el panel.
PanelX y PanelY: desplazamientos del panel respecto a los bordes del gráfico (12 y 15).
PanelFontSize: tamaño de fuente base (9).
ShowArabic: añade una línea en árabe debajo de la línea en inglés del panel (activado).
ShowChartMarks: dibuja planos y niveles en el gráfico (activado).
MaxTableRows: número de filas que se muestran por cuadrícula (13).
PanelCorner: la esquina del gráfico a la que está anclado el panel.
Desencadenante de entrada
EntryTriggerMode: la estrategia DEMA activa el primer nivel de forma predeterminada.
SignalBarShift: 1 significa la última barra cerrada.
SignalBarsDelay: barras que deben transcurrir entre señales aceptadas (30; 0 acepta todas las señales).
SignalValidBars: una señal sigue siendo válida durante este número de barras (3).
SignalAllowBuy y SignalAllowSell: activan o desactivan cada dirección por separado.
SignalReverse: invierte la dirección (desactivado).
Media móvil exponencial doble: la señal
InpDEMAPeriod: la duración de la DEMA (21).
InpDEMAPrice: el precio sobre el que se calcula la DEMA (cierre).
InpDEMASlopeAgree: orden de COMPRA solo mientras la DEMA esté subiendo y orden de VENTA solo mientras esté bajando (activado).
InpDEMADepthMinATR: protección de profundidad del cruce: la distancia mínima entre el cierre y la DEMA en la barra de cruce, en ATR (0,10; 0 = desactivado).
InpDEMADepthMaxATR - Protector de profundidad de cruce: la mayor distancia aceptada en ATR, de modo que se omiten los cruces de picos excesivamente extendidos (2,00; 0 = desactivado).
InpDEMAGuardATR: la longitud del ATR que utiliza el filtro para medir esa distancia (14).
InpDEMATrendFilter: 0 = desactivado; 1 = operar a favor de la EMA; 2 = operar en contra de ella como una estrategia de «fade».
InpDEMATrendMAPeriod: la longitud de la EMA de tendencia (200).
InpShowSignalArrows: flechas en las velas donde se ha activado un ciclo (activado).
InpShowDEMAOnChart: dibuja la línea DEMA en la ventana principal del gráfico en tiempo real (activado; no necesita ninguna subventana adicional, por lo que el panel conserva toda la altura del gráfico).
Depuración
DebugMode: registro detallado del diario (desactivado).
Seguridad del margen en el marco temporal
UseMarginTFSafety: desactivado por defecto.
Level1MarginPct y Level1TF: con un nivel de margen igual o inferior al 6000 por ciento, funcionan en M15.
Level2MarginPct y Level2TF: a un nivel de margen igual o inferior al 5000 por ciento, funcionan en H1.
MarginTFHysteresisPct: distancia a la que el margen debe recuperarse por encima de un nivel antes de retroceder (500).
Expectativas realistas
Una estrategia de rejilla gestiona una posición; no puede predecir el futuro. El EA «Grid Double Exponential Moving Average» es selectivo a la hora de determinar cuándo comienza un ciclo y trabaja de forma constante para mantener cada ciclo corto y reducir progresivamente cada orden anterior; sin embargo, el mercado puede sobrepasar el límite, parecer convincente y luego dar un giro brusco, manteniendo la posición abierta durante mucho tiempo. Elige un lote que tu cuenta pueda soportar en esa situación, pruébalo primero con tu propio bróker y deja que el Strategy Tester te muestre cómo se comporta antes de operar con él en vivo. Funciona con cualquier símbolo y marco temporal y no necesita DLL ni archivos adicionales.
Si la utilizas, una reseña sincera sobre cómo ha funcionado en tu cuenta, ya sea positiva o negativa, ayudará a otros operadores a tomar una decisión.
