Grid Coppock Curve 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.18
- Activaciones: 5
Pruébalo antes de confiar en él: abre el EA «Grid Coppock Curve» en el Probador de estrategias de MetaTrader 5, activa el modo visual y observa qué giros de la curva sigue y cuáles deja pasar.
COMPRA EN EL MOMENTO DEL AGOTAMIENTO, NO EN EL DEL PÁNICO.
Edwin Coppock creó su curva con un único objetivo: detectar cuándo una caída se ha quedado sin fuerza. La curva suma las tasas de variación al alza y a la baja y las suaviza mediante una media ponderada, de modo que la línea desciende mientras continúan las ventas y luego se curva al alza una vez que el descenso pierde velocidad, normalmente cuando aún se encuentra por debajo de cero. El EA «Grid Coppock Curve» toma ese giro, el «gancho», como el momento para comenzar. Espera a que aparezca el gancho en una barra completada, comprueba que el mercado se mueva lo suficiente como para que sea relevante y que la tendencia general coincida, y solo entonces permite que el motor de la rejilla abra el primer nivel. A partir de ahí, el motor se encarga de la parte paciente: acumula pequeños cierres en grupo y recorta las órdenes antiguas más pesadas poco a poco.
Cinco cosas que debes saber antes
• Entrada: la curva de Coppock forma un gancho por debajo de cero tras caer durante 2 barras (COMPRA), o forma un gancho hacia abajo por encima de cero tras subir (VENTA), según se lee en una barra cerrada. Las señales aceptadas no se repintan.
• La curva se calcula dentro del EA a partir de los cierres: WMA 10 del ROC 14 más el ROC 11. Sin archivo de indicador, sin DLL, sin solicitud web.
• Un «Range Guard» omite los periodos de poca actividad y un filtro EMA 200 mantiene las entradas en el lado de la tendencia principal. Se incluye un modo de cruce de la línea cero como alternativa.
• Novedad de este producto: el «Depth Guard», que puede rechazar ganchos que se produzcan demasiado cerca de cero. Viene desactivado de fábrica, y el motivo de la medición se muestra a continuación.
• Sin stop loss ni cierre forzado de todas las posiciones. Los límites detienen los nuevos niveles; la cartera abierta permanece bajo gestión.
----------
Empieza aquí (5 minutos)
1. Aplícalo al EURUSD H1 y deja todos los parámetros en sus valores por defecto (primer lote de 0,01, escalera aditiva, espaciado ATR).
2. Configura RunMode en «Scan only» para la primera sesión. El panel muestra cada plan; no se envía ninguna orden.
3. Cuando los planes te parezcan adecuados, pulsa «ARMED» en el panel.
4. Repite las ejecuciones del simulador que se indican a continuación con los datos de tu propio bróker antes de operar con dinero real; el spread, el swap y la comisión influyen en el resultado.
5. ¿Tienes más de un gráfico? Asigna a cada copia su propio EAMagicNumber y HedgeMagicNumber.
----------
Reproduce nuestras cifras
Strategy Tester, parámetros predeterminados, OHLC de 1 minuto, apalancamiento 1:100, del 01/01/2025 al 30/09/2026, datos de demostración de un bróker. Con la misma configuración y el mismo periodo, deberías obtener resultados similares a estos:
• EURUSD H1, 10 000 $: resultado neto +704,99, caída máxima del capital 248,61 (2,39 %), 334 operaciones. Sin stop-out, sin denegación de margen.
• EURUSD H1, 1 000 000 $: resultado neto +704,99; caída máxima del capital de 248,61 (0,02 %); 334 operaciones. Sin stop-out ni denegación de margen.
• XAUUSD D1, 10 000 $: resultado neto +19,37, caída máxima del capital de 2,20 (0,02 %), 6 operaciones. Sin stop-out ni denegación de margen.
• XAUUSD D1, 1 000 000 $: resultado neto +19,37; caída máxima del capital: 2,20 (0,00 %); 6 operaciones. Sin stop-out ni denegación de margen.
Considera estos datos como un periodo pasado, no como una previsión. La caída del saldo es la misma en ambos depósitos porque los lotes no aumentan con el saldo, por lo que 248,61 supone aproximadamente el 2,4 % de 10 000 $ y una proporción mayor en una cuenta más pequeña; no se han probado depósitos inferiores a 10 000 $. Seis operaciones con oro en 21 meses son muy pocas para evaluar el comportamiento con este metal. Los niveles de stop se fijaron una sola vez a ojo para este mismo periodo, lo que los favorece. No se verificaron las cuentas de compensación.
----------
El «Depth Guard» y por qué se activa
La idea: un gancho que gira justo por debajo de cero es un movimiento indiferente, no un agotamiento, por lo que podría ser necesaria una orden de COMPRA para girar desde al menos una profundidad establecida por debajo de cero (InpCPKDepthMin). Lo probamos en el EURUSD H1, con 10 000 $; todo lo demás se dejó en los valores por defecto. Con una profundidad de 0,15: resultado neto +668,48, drawdown de 248,61 (2,39 %), 311 operaciones. Desactivado: resultado neto +704,99, drawdown de 248,61 (2,39 %), 334 operaciones. En el XAUUSD D1, ambas ejecuciones fueron idénticas (6 operaciones, +19,37), ya que los «hooks» diarios del oro son profundos de por sí. El filtro eliminó 23 operaciones y 36,51 de beneficio sin reducir en absoluto la caída máxima, por lo que no hizo que el EA fuera más seguro, y se mantiene en 0. Está ahí para ti si quieres entradas menos frecuentes pero más profundas: prueba con 0,15 en el EURUSD y compáralo con tus propios datos. Las unidades son el porcentaje de Coppock, por lo que un valor razonable en el oro o los índices es mayor.
----------
¿Por qué la curva de Coppock?
La mayoría de los osciladores miden dónde se sitúa el precio dentro de un rango. Coppock mide la rapidez con la que cambia el precio, en dos horizontes a la vez, y suaviza el resultado dando mayor peso a las barras más recientes. Eso hace que el giro de la curva, y no su nivel, sea el evento útil: se curva cuando un movimiento se desacelera. Una rejilla que debería activarse una sola vez y luego dejar que su mecanismo funcione se adapta muy bien a esto. El coste también es razonable: la curva se construye a partir de los cierres anteriores, el gancho aparece cuando el precio ya ha cambiado ligeramente de tendencia y, en un mercado lateral, la curva puede oscilar de un lado a otro cerca de cero. El Range Guard, el filtro de tendencia y la brecha de señal de 30 barras están ahí precisamente para eso.
----------
Un ciclo, paso a paso
1. Lectura. Cada nueva barra reconstruye tanto las tasas de variación como la media ponderada a partir de las barras completadas.
2. Gancho. En el modo de gancho predeterminado, la curva debe haber caído durante InpCPKHookBars barras y luego subir, sin salir de cero, para una COMPRA; lo contrario, por encima de cero, para una VENTA. En el modo cero, el evento es el cruce de la línea cero.
3. Depth Guard, opcional. El giro debe producirse a partir de al menos InpCPKDepthMin más allá de cero.
4. Rango de protección. Las últimas 20 barras deben abarcar al menos 5 ATR, de modo que se omiten los rangos muy estrechos.
5. Filtro de tendencia. Por defecto, el cierre debe situarse en el lado correspondiente de la EMA 200. También puede alejarse de ese lado o desactivarse.
6. Sincronización. Las señales aceptadas se mantienen separadas por un intervalo de barras, y una señal puede esperar unas cuantas barras si el nivel no se puede colocar de inmediato.
7. Escalera. Los niveles siguen el ATR o puntos fijos, con un mínimo, un máximo y una congelación opcional. Las rejillas de COMPRA y VENTA pueden ejecutarse juntas o por separado.
8. Gestión de posiciones. Los grupos de órdenes más antiguas y más recientes se cierran cuando su resultado conjunto, tras aplicar el swap y la comisión, alcanza el objetivo. Si la orden más antigua es demasiado voluminosa, se cierra una parte de la misma en su lugar.
9. Comprobaciones de seguridad. Se bloquea cualquier cierre que reabriría un nivel de inmediato; cada tramo se confirma en el historial de operaciones; los tramos fallidos se vuelven a intentar; y se descarta un plan si el libro de órdenes ha cambiado antes del envío.
10. Ciclo de cobertura, opcional. Desactivado por defecto y no se ha utilizado en nuestras pruebas. Cuando está activado, mantiene un par equilibrado en un símbolo elegido y lo retira en partes iguales, pagadas mediante un pequeño recargo sobre los cierres que la red ya realiza.
----------
El panel
El panel se sitúa a la izquierda, de modo que el lado derecho y la escala de precios quedan despejados. Muestra el símbolo, el número mágico, un indicador de estado, el modo de rejilla, el paso de lotes, el espaciado, el resultado acumulado, el libro de órdenes, el plan de cierre de cada lado y la tabla de órdenes. La fila CPK PULSE muestra las longitudes de ROC y WMA, el valor de la curva en la última barra cerrada, si está AL ALZA o A LA BAJA, y las barras transcurridas desde el último enganche. La fila DEPTH GUARD muestra el lado preferido, el modo, la profundidad del giro con OPEN, HOLD o desactivado, la anchura del Range Guard en ATR con su estado y el lado EMA. En el gráfico en tiempo real se marca cada «hook» de las últimas 150 barras: una pequeña flecha cuando se acepta, un punto gris cuando un «guard» lo rechaza. Los botones permiten alternar entre «Armed» / «Scan only», «Pause» / «Resume», marcas en el gráfico y corte de datos. La tarjeta «Hedge Vault» se acopla debajo del panel principal; con la cobertura desactivada, permaneció oculta en nuestras capturas de pantalla, por lo que no se comprobó el acoplamiento en tiempo real. No se dibuja nada en una prueba retrospectiva no visual.
----------
Límites que controlas
Ningún ajuste cierra la posición por ti; los límites solo detienen nuevos niveles.
Cada orden pasa una comprobación de margen libre con un margen de seguridad antes de enviarse.
Los límites máximos de niveles por cuadrícula, órdenes por lado y lotes por orden mantienen la escalera finita. MinMarginLevelPercent y MaxAccountRiskPercent vienen desactivados de fábrica; configúralos según tu propia cuenta.
Una medida de seguridad opcional relacionada con el marco temporal del nivel de margen traslada la señal y el espaciado a un marco temporal superior a medida que desciende el margen. Está desactivada por defecto y no se aplicó en nuestras pruebas.
Las copias se mantienen separadas por símbolo y número mágico.
La función «Scan» solo muestra todas las decisiones sin enviar ni una sola orden.
----------
¿Es adecuado para ti?
Sí, si prefieres entrar después de que un movimiento haya perdido fuerza en lugar de perseguirlo, te conformas con muchas operaciones pequeñas y ajustarás el tamaño de los lotes a tu saldo. No, si necesitas un stop loss en cada orden, esperas una rentabilidad mensual fija o quieres operar con lotes grandes sin supervisión con un depósito reducido.
----------
Preguntas frecuentes
¿Se repintan? Las señales aceptadas, las marcas en el gráfico y ambas filas del panel utilizan únicamente barras cerradas.
¿Es el Coppock clásico? Sí, la fórmula estándar 14/11/10, aplicada al marco temporal del gráfico en lugar de a las barras mensuales. Los valores coinciden con cualquier plataforma que utilice cierres y una media móvil ponderada simple (WMA).
¿En qué mercados se ha probado? EURUSD H1 y XAUUSD D1. El resto lo tendrás que probar tú.
¿Qué debería cambiar primero? InpCPKHookBars (1 da más entradas, 3 menos) y, a continuación, InpCPKRangeMinATR. Cambia un parámetro cada vez y fíjate en la caída máxima junto al resultado neto.
¿Por qué hay tan pocas operaciones con oro? En un gráfico diario, es poco frecuente que el «hook» se sitúe por debajo de cero con la EMA 200 en el mismo lado, y el intervalo de 30 barras lo reduce aún más.
¿Modo «hook» o modo «cero»? El modo «hook» comienza antes, cerca del mínimo del oscilación; el modo «cero» espera a la confirmación y comienza más tarde. Prueba ambos en tu símbolo.
¿Cuentas de compensación? Existe un límite de margen independiente para ellas, pero el comportamiento de la compensación no está verificado.
----------
Todas las entradas
Niveles de la rejilla
TradeMode: dos cuadrículas, COMPRA y VENTA, por defecto, o solo en una dirección.
GridSpacePoints: distancia entre niveles en el modo de espaciado fijo (25).
GridSpaceMultiplier: por encima de 1,0 amplía los niveles más profundos (1,0 = par).
MaxGridLevels: número máximo de niveles en una rejilla (1000).
UpDirectionIsBuy: en qué sentido se activa un movimiento alcista.
EAMagicNumber: número de las órdenes de rejilla (9768840).
GridOrderComment: texto de las órdenes de la rejilla (GCPK).
OneOrderPerBar: como máximo un nuevo nivel por barra.
Lotes
InitialLotSize: volumen del primer nivel (0,01).
LotSizingMode: aditivo por defecto; multiplicativo como alternativa.
LotMultiplier: factor por nivel en modo multiplicativo (1,25).
LotAddStep: incremento por nivel en modo aditivo (0,01; 0 utiliza el lote inicial).
MaxOrderVolume: orden única más grande (1,0).
UseAutoLot: vincula el lote inicial al saldo (desactivado).
AutoLotBaseBalance: saldo que coincide con el lote inicial (1000).
AutoLotAllowDecrease: permite que el lote automático sea inferior al lote inicial (desactivado).
Espaciado ATR
GridSpacingMode: ATR por defecto; puntos fijos como alternativa.
ATRTimeframe: marco temporal del ATR (gráfico actual).
ATRPeriod: duración del ATR (14).
ATRSpacingFactor: espaciado como múltiplo del ATR (1,0).
ATRBarShift: barra ATR; 1 es la última barra completada.
ATRMinSpacingPts: espaciado mínimo en puntos (50; 0 = ninguno).
ATRMaxSpacingPts: espaciado máximo en puntos (5000; 0 = ninguno).
ATRFreezeOnStart: mantiene un único espaciado durante todo el ciclo (desactivado).
Objetivo de beneficios
DesiredProfitPerClosure: objetivo base en la divisa de la cuenta (2,0).
ProfitMultiplier: escala final, de 1,00 a 2,00.
ProfitTargetMode: escalado por defecto: los libros de órdenes más grandes y profundos apuntan a objetivos más altos.
ProfitVolumePower: cómo el volumen de cierre eleva el objetivo (1,0; 0 desactivado).
ProfitDepthBonus: objetivo adicional por cada nivel abierto adicional (0,10).
ProfitMaxMultiple: límite máximo del objetivo escalado en múltiplos de la base (50).
ProfitMaxReachFraction: mantiene el objetivo dentro de esta fracción de un paso de la cuadrícula (0,50).
Escáner de fragmentos
UseMultiLegScan: comprueba los grupos de órdenes múltiples antes que el par simple (activado).
MaxOldestLegs: el número máximo de órdenes antiguas en un cierre (3).
MaxNewestLegs: el número máximo de órdenes más recientes en un cierre (6).
ScanPriority: clasificación de los grupos que cumplen los requisitos; por defecto, el grupo más grande va primero.
NeverBankLessThanPair: un grupo también debe superar el objetivo del par (activado).
RequireCloseVolumeExceedsTarget: el volumen más reciente debe ser superior al más antiguo (activado).
MinCloseVolumeRatio: ratio requerido entre esos volúmenes (1,5).
División del objetivo
EnableTargetSlicing: permite el cierre parcial de la orden más antigua (activado).
FragProfitWeightPower: peso de las ganancias por lote cerrado (1,5).
FragMinSlicePercent: porción mínima, porcentaje de la orden objetivo (20).
FragAllowMultiCloser: varias órdenes nuevas pueden financiar una porción (activado).
FragPreferFullClosure: se da prioridad al cierre completo cuando ambas opciones son posibles (activado).
Protección contra reapertura
ReopenGuard: bloquea los cierres que reabrirían un nivel de una sola vez (basado en pasos).
ReopenGuardCushion: distancia de seguridad como porcentaje de un paso (0,90).
Protección de la cuenta
MinMarginLevelPercent: no se abren nuevos niveles por debajo de este nivel de margen (0, desactivado).
MaxAccountRiskPercent: no se establecen nuevos niveles más allá de esta pérdida flotante, expresada en porcentaje del saldo (0, desactivado).
NetMaxMarginPercent: solo para compensación: límite máximo del margen de la posición neta, porcentaje del capital (5,0).
MaxTotalOrders: límite absoluto de órdenes por lado (1000).
Ejecución y comprobaciones
RunMode: «Armed» (activado) o «Scan» (solo escaneo).
CloseSequence: orden en el que se envían las partes; por defecto, la más antigua primero.
MaxSlippagePoints: deslizamiento permitido (30).
MaxSpreadPoints: no se opera por encima de este spread (7500).
MinSecondsBetweenClosures: pausa entre cierres por cada lado (5).
CloseAttemptsPerLeg: intentos antes de pasar a la cola de reintentos (3).
VerifyTimeoutSeconds: tiempo durante el que se sigue una posición bloqueada (90).
DeferWhenMarketClosed: espera a que comience la sesión en lugar de detenerse (activado).
MarketClosedRetrySeconds: intervalo entre reintentos mientras se rechazan las órdenes (30).
AutoResumeAfterSeconds: una interrupción se restablece automáticamente tras este número de segundos (300; 0 espera a que actúes).
NoPartialRetryMinutes: los cierres parciales se vuelven a intentar tras este número de minutos tras un rechazo del bróker (15; 0: nunca).
AbortIfBookChanged: descarta un plan si cambia una parte de la operación (activado).
UseFullCommission: contabiliza la comisión en ambas partes (activado).
CommissionPerLot: valor por defecto (0: consulta el historial).
CloseOrderComment: texto al cerrar operaciones.
Ciclo de cobertura
EnableHedgeCycle: interruptor principal (desactivado).
Símbolos de cobertura: lista separada por comas; repite un símbolo para más turnos (XAGUSD).
Rotación de símbolos de cobertura: cómo se selecciona el siguiente símbolo (por ciclo).
HedgeMaxSymbolsInTester: límite de rotación solo en el simulador (2; 0 = ninguno).
HedgeCycleLots: lotes en cada lado del par (0,01).
HedgeSliceLots: lotes retirados por cada lado en cada tramo (0,01).
HedgeFragmentBonus: bonificación sobre el coste del segmento (100).
HedgeBonusIsPercent: la bonificación es un porcentaje; «false» significa dinero (activado).
HedgeMaxSurcharge: límite de dinero por cierre (0, ninguno).
HedgeMaxSurchargePercent: aumento máximo de cualquier objetivo de cierre, en porcentaje (50).
HedgeMagicNumber: número de las posiciones de cobertura; debe ser distinto de la cuadrícula (9768841).
HedgeReopenOnFinish: abre un nuevo ciclo cuando finaliza uno (activado).
HedgeStartRequiresTrade: el primer ciclo espera a una orden de la cuadrícula (activado).
HedgeIntegritySeconds: intervalo de comprobación del saldo de las posiciones (5).
HedgeAutoRepair: repara automáticamente una posición aislada (activado).
HedgeNakedAction: qué hacer con una posición aislada; por defecto, volver a cubrirla.
HedgeMaxSpreadPoints: límite del spread de cobertura (0: desactivado).
HedgeSlippagePoints: margen de deslizamiento de la cobertura (30).
HedgeAttemptsPerLeg: intentos por tramo de cobertura (3).
HedgeVerifyTimeout: tiempo de espera para una posición de cobertura bloqueada (90).
HedgeCommissionPerLot: comisión de cobertura por defecto (0: consulta el historial).
HedgeOrderComment: texto en las operaciones de cobertura.
Día de liquidación semanal
WeeklyCashDay: pausa los nuevos ciclos y franjas en torno a las retiradas (desactivado).
CashDayOfWeek: 0 para domingo, 1 para lunes, y así sucesivamente (1).
CashCutoffHour: hora del servidor a partir de la cual no se activan nuevas particiones (21).
Panel y gráfico
ShowPanel: panel activado o desactivado.
PanelX y PanelY: distancia desde el borde del gráfico (12, 15).
PanelFontSize: tamaño base del texto (9).
ShowArabic: línea de segundo idioma (activada).
ShowChartMarks: planos y niveles dibujados en el gráfico (activado).
MaxTableRows: número de filas por cuadrícula (13).
PanelCorner: esquina a la que está anclado el panel.
Desencadenante de entrada
EntryTriggerMode: la estrategia de Coppock por defecto.
SignalBarShift: 1 es la última barra completada.
SignalBarsDelay: barras entre señales aceptadas (30; 0 cada una).
SignalValidBars: barras durante las que una señal sigue siendo válida (3).
SignalAllowBuy y SignalAllowSell: activan o desactivan cada lado.
SignalReverse: invierte la dirección (desactivado).
Curva de Coppock
InpCPKRocLong: tasa de variación al alza en las barras, por encima de la de baja (14).
InpCPKRocShort: tasa de variación bajista en barras (11).
InpCPKWMA: longitud de la media ponderada que transforma los dos valores de ROC en la curva (10).
InpCPKMode: 1 gancho (cambio de tendencia tras una caída por debajo de cero o una subida por encima de cero), 0 cruce de la línea cero (1).
InpCPKHookBars: modo de gancho: número de barras que la curva debe haber caído antes de un giro de COMPRA o subido antes de un giro de VENTA (2).
InpCPKDepthMin: protección de profundidad: distancia mínima más allá de cero en el giro, en porcentaje de Coppock (0 desactivado; prueba con 0,15 en el EURUSD).
InpCPKRangeMinATR - Protector de rango: anchura mínima de la ventana en ATR (5; 0 desactivado).
InpCPKRangeBars - Rango de protección: longitud de la ventana en barras (20).
InpCPKATRPeriod: duración del ATR para el filtro de rango (14).
InpCPKTrendFilter: 1 a favor de la EMA, 2 en contra, 0 desactivado (1).
InpCPKTrendMAPeriod: duración de la EMA de tendencia (200).
InpShowSignalArrows: flecha que indica dónde se ha activado un ciclo (activado).
InpShowCPKOnChart: marca los puntos anteriores en el gráfico en tiempo real, con una flecha o un punto gris (activado).
Depuración
DebugMode: detalles adicionales en el diario (desactivado).
Seguridad del margen en el marco temporal
UseMarginTFSafety: interruptor principal (desactivado).
Level1MarginPct y Level1TF: al alcanzar el 6000 por ciento, el sistema pasa a M15.
Level2MarginPct y Level2TF: al alcanzar el 5000 %, la operación pasa a H1.
MarginTFHysteresisPct: recuperación necesaria antes de retroceder (500).
----------
El riesgo, sin rodeos
El trading en rejilla es arriesgado. Aumenta las posiciones perdedoras, no utiliza stop loss y una tendencia alcista puede mantener la posición abierta durante mucho tiempo o, con lotes demasiado grandes para el saldo, acabar en un stop-out y una pérdida considerable. La curva de Coppock se construye a partir de precios pasados y no puede prever la siguiente barra. No se garantizan beneficios. Elige lotes que puedan sobrevivir a una mala racha, pruébalo con tu propio bróker y arriesga solo el dinero que puedas permitirte perder. No se necesitan DLL ni archivos adicionales.
Si la utilizas, por favor, deja una reseña sincera sobre cómo te ha funcionado, ya sea buena o mala; esto ayudará al siguiente operador a tomar una decisión.
