Introducción
El AE Chart Pattern Helper no es un robot de trading automatizado. No tiene una estrategia de trading implementada. El único propósito de este asesor experto es realizar operaciones vía las órdenes pendientes basadas en líneas de tendencias, líneas horizontales o canales equidistantes. Además de la ejecución directa de las operaciones de breakout, también se puede ejecutar una operación de pull-back con este EA si usted ha perdido el punto de ruptura por alguna razón.
La principal ventaja de Chart Pattern Helper es que puede establecer y ajustar las órdenes pendientes de acuerdo con una serie de objetos gráficos colocados en el chart de Forex, incluyendo objetos con pendiente. Esto permite realizar operaciones con tales patrones populares como triángulos (ascendentes, descendentes y simétricos), canales, banderas, banderines, rectángulos, cabeza-y-hombros, doble techo/suelo, etc.
El breakout de un nivel se define como un simple toque. Chart Pattern Helper no va a esperar por un precio para cerrar la línea dada por encima/debajo. Él colocará órdenes que se ejecutan cuando el precio toca por primera vez los niveles establecidos.
Hay una amplia gama de parámetros de entrada para regular el trabajo de este asesor experto, pero puede comenzar a funcionar inmediatamente después de que lo conecte al gráfico y agregue los objetos gráficos propiamente nombrados. A continuación se puede mover libremente los objetos gráficos. El asesor experto continuará detectando sus posiciones y ajustará los parámetros de órdenes en consecuencia. Por defecto, el EA genera su estado actual al comentario del gráfico.
Ya que todos los objetos gráficos se dibujan en el precio Bid, el EA ajusta los niveles de entrada, stop-loss y take-profit, añadiendo el spread actual en los casos cuando se va a utilizar el precio Ask. Se puede desactivar este comportamiento a través de los parámetros de entrada, reduciendo el número de órdenes de modificación enviadas al servidor de trading.
Chart Pattern Helper puede calcular el tamaño de la posición sobre la base de un conjunto de parámetros de entrada, el nivel de stop-loss y saldo/equidad de la cuenta — como Position Sizer para MetaTrader. Usted puede desactivar esta función y dar un tamaño de la posición fijo al EA.
Proceso de Operación
Este asesor experto pasa por los siguientes puntos después de la iniciación:
- Detectar los objetos según los nombres dados a través de parámetros de entrada.
- El nivel de entrada para la orden de compra es puesto al objeto de entrada + spread (Ask).
- El nivel de entrada para la orden de venta es puesto al objeto de entrada (Bid).
- El stop-loss para la orden de compra se está poniendo al mínimo de la última barra con la mayoría de su longitud por debajo de objeto de frontera.
- El stop-loss para la orden de venta se está poniendo al máximo de la última barra con la mayoría de su longitud por encima de objeto de frontera, el spread se agrega entonces al máximo.
- SiUseDistantSL es true, los dos pasos anteriores se ignoran y se utiliza el punto más lejano de la línea opuesta. Esto funciona solo con líneas de tendencia y horizontales.
- El take-profit para la orden de compra es puesto al objeto de TP (Bid).
- El take-profit para la orden de venta es puesto al objeto de TP + spread (Ask).
- Los valores calculados están en una display constante vía de comentario de un gráfico a menos que el parámetro de entrada Silent sea establecido en true.
- Las órdenes pendientes se colocan de acuerdo con estos valores calculados. Si cualquiera de los objetos de entrada de compra o venta está ausente, entonces sólo una orden se establece. Las órdenes caducan automáticamente cuando la barra gráfica corriente termina. En MT4, la fecha de caducidad mínima es de 11 minutos; en MT5 es de 2 minutos.
- Si el precio actual está por debajo de la entrada de compra y por encima de la entrada de venta, entonces las órdenes pendientes de stop se utilizan. Si el precio actual está por debajo de la entrada de venta y por encima de la entrada de compra, entonces solamente una orden limitada se utiliza.
- Rastrear los valores actuales de objeto y ajustar los niveles de entrada, de SL y de TP.
- Si calculadora del tamaño de la posición se utiliza, entonces el volumen de la orden se actualiza cuando es necesario. En este caso, la orden con el volumen anterior se elimina y la orden con el nuevo se crea. Advertencia: Tenga en cuenta que esto puede provocar un flujo significativo de las órdenes pendientes, que puede estar en contra de los términos de su broker. Para evitarlo debe poner el parámetro de entrada UpdatePendingVolume a false.
- Las órdenes expiradas se recrean con un volumen nuevo (si es necesario) y los niveles de entrada/SL/TP actualizados.
- Cuando se activa una orden limitada, la orden opuesta se elimina (a menos que el parámetro de entrada OneCancelsOther sea establecido en false). Todos los objetos se renombran añadiendo el Magic number de EA a sus nombres iniciales. Esto evita la creación de nuevas órdenes pendientes.
- Si PostEntrySLAdjustment se establece en true, intente actualizar stop-loss cuando una vela nueva se abre después de la ruptura.
- Continuar actualizando el take-profit de la posición de acuerdo con el objeto de TP.
- Cesar la actividad una vez que la posición se cierra.
- Ir al paso número uno si los objetos gráficos de control se cambian los nombres a sus nombres iniciales.
Alternativamente, el asesor experto puede trabajar en un modo de trading de línea tendencia:
- Detecta el objeto gráfico del borde superior/inferior.
- Espera hasta que una vela cierre por encima/debajo de la línea de tendencia con una distancia mínima definida a través del parámetro de entrada ThresholdSpreads. Abre una operación cuando se produce dicho cierre.
- Utiliza un objeto de stop-loss dado como nivel de stop-loss.
- Utiliza una línea de TP superior/inferior correspondiente como nivel de take-profit.
Parámetros de Entrada
Objetos
- UpperBorderLine (por defecto = "UpperBorder") — el nombre del objeto (línea horizontal o línea de tendencia) para definir el borde superior de un patrón de breakout. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- UpperEntryLine (por defecto = "UpperEntry") — el nombre del objeto (línea horizontal o línea de tendencia) que se utiliza para definir la entrada de compra de breakout. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- UpperTPLine (por defecto = "UpperTP") — el nombre del objeto (línea horizontal o línea de tendencia) que se utiliza para definir el take-profit de la orden de compra. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- LowerBorderLine (por defecto = "LowerBorder") — el nombre del objeto (línea horizontal o línea de tendencia) que se utiliza para definir el borde mínimo de un patrón de breakout. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- LowerEntryLine (por defecto = "LowerEntry") — el nombre del objeto (línea horizontal o línea de tendencia) que se utiliza para definir la entrada de venta de patrón de breakout. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- LowerTPLine (por defecto = "LowerTP") — el nombre del objeto (línea horizontal o línea de tendencia) que se utiliza para definir el take-profit de la orden de venta. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- BorderChannel (por defecto = "Border") — el nombre del canal equidistante utilizado para definir los bordes superior e inferior de un patrón de breakout. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- EntryChannel (por defecto = "Entry") — el nombre del canal equidistante utilizado para definir los niveles de la entrada de compra/venta. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
- TPChannel (por defecto = "TP") — el nombre del canal equidistante utilizado para definir los niveles del take-profit de compra y venta. Usted puede nombrar el objeto con el valor de este parámetro o cambiar el parámetro para ajustar el nombre que ha utilizado cuando se creó el objeto gráfico.
Gestión de Órdenes
- OneCancelsOther (por defecto = true) — si es true, entonces una orden pendiente se activa y la orden opuesta se cancela. Si es false, la orden opuesta se mantendrá intacta y puede activarse después de la primera posición alcanza el stop-loss o take-profit.
- UseSpreadAdjustment (por defecto = true) — si es true, el spread será añadido al nivel de compra y al nivel de SL/TP de venta. Compensa la diferencia cuando el precio Ask se usa, mientras que todos los objetos gráficos se dibujan en función del precio Bid. Si se establece en false, entonces reducirá el flujo de peticiones para la modificación de una orden al servidor de trading.
- UseExpiration (por defecto = true) — si es true, las órdenes pendientes expirarán al final de la barra corriente o en 11 minutos (MT4) o 2 minutos (MT5) después de la creación. Si se establece en false puede ser requerido si un broker no soporta la expiración de la orden.
- DisableBuyOrders (por defecto = false) — si es true, no se crearán nuevas órdenes de compra, las órdenes de compra y las posiciones existentes serán ignoradas.
- DisableSellOrders (por defecto = false) — si es true, , no se crearán nuevas órdenes de venta, las órdenes de venta y las posiciones existentes serán ignoradas.
- UseDistantSL (por defecto = false) — si es true, el EA establecerá el stop-loss en el punto más lejano de la línea opuesta. Esta función está pensada para usarse solo con los triángulos y las cuñas.
Trading de líneas de tendencia
- OpenOnCloseAboveBelowTrendline (por defecto = false) — si es true, se abrirá una operación después de que la vela cierre por encima/debajo de la línea de tendencia del borde.
- SLLine (por defecto = "SL") — el nombre del objeto línea de stop-loss para el trading de línea de tendencia.
- ThresholdSpreads (por defecto = 10) — el número de spreads para una distancia mínima por encima/debajo de la línea de tendencia del borde antes de abrir una operación.
Tamaño de la Posición
- CalculatePositionSize (por defecto = true) — si es true, el tamaño de la posición se calcula utilizando tolerancia al riesgo y los datos actuales del mercado, tales como el tamaño de la cuenta (balance o equidad), la moneda y la cotización de un par de divisas. El proceso de cálculo es el mismo que en la Position Sizer. Si es false, un tamaño de posición fijo se utiliza.
- UpdatePendingVolume (por defecto = true) — si es true, el volumen de la orden pendiente se actualiza cada vez que el tamaño de nueva posición se calcula. Esto puede causar cantidad excesivamente alta de órdenes al servidor de trading, ya que no es posible modificar el volumen de la orden; debe ser eliminada y luego creado con un nuevo volumen. Si es false, entonces el volumen de la orden se mantiene constante hasta la expiración y la recreación siguiente. Este parámetro se ignora si CalculatePositionSize = false.
- FixedPositionSize (por defecto = 0.01) — si CalculatePositionSize = false, entonces el asesor experto utilizará el valor de este parámetro como un volumen de órdenes creadas anteriormente.
- Risk (por defecto = 1) — riesgo tolerado en puntos porcentuales del saldo/equidad de la cuenta. Funciona sólo si CalculatePositionSize = true. Este parámetro de entrada se ignora si UseMoneyInsteadOfPercentage se establece en true.
- MoneyRisk (por defecto = 0) — riesgo tolerado en la divisa de la cuenta. Funciona sólo si CalculatePositionSize = true. Requiere UseMoneyInsteadOfPercentage establecido en true.
- UseMoneyInsteadOfPercentage (por defecto = false) — si es true, entonces el tamaño de la posición se calculará en base a la tolerancia al riesgo (MoneyRisk) dada en dinero, no en porcentaje (Risk). Funciona sólo si CalculatePositionSize = true.
- UseEquityInsteadOfBalance (por defecto = false) — si es true, entonces el capital de la cuenta se utiliza en lugar del equilibrio en los cálculos. Funciona sólo si CalculatePositionSize = true.
- FixedBalance (por defecto = 0) — si se establece en el valor distinto de cero, se utiliza en lugar de saldo/equidad de la cuenta para calcular el tamaño de la posición. Funciona sólo si CalculatePositionSize = true.
- PostEntrySLAdjustment (por defecto = false) — si es true, el AE va a tratar de ajustar el stop-loss cuando una vela nueva se abre después de la ruptura. Se comprobará si Máximo/Mínimo de la vela de vuelta todavía califica para SL. Puede potencialmente romper las reglas de tamaño de la posición pero definirá stop-loss más precisamente de acuerdo con las reglas de salida de la estrategia de trading.
Misceláneo
- Magic (por defecto = 20130116) — el número utilizado por el asesor experto para distinguir propias órdenes (MT4 y MT5) y posiciones (MT4). Usted puede necesitar cambiarlo sólo si tiene otros EAs corriendo con el mismo Magic number o si desea agregar dos o más instancias de Chart Pattern Helper a un par de divisas.
- Slippage (por defecto = 30) — el deslizamiento máximo tolerable en pips.
- Silent (por defecto = false) — si es true, la información sobre el estado no se enviará al comentario del gráfico. Esto puede ser útil cuando utiliza unos indicadores o EA que modifican comentario gráfico y quiere darles prioridad.
- ErrorLogging (por defecto = true) — si es true, el EA registrará todos los errores y otras situaciones no estándar en un archivo log. Se nombra como "CPH-Errores-" y se puede encontrarlo en /experts/files/ que se encuentra dentro de la carpeta de instalación de MetaTrader 4 o en /MQL5/Files/ dentro de la carpeta de instalación de MetaTrader 5 (o carpeta de usario utilizada por aplicaciones designada para su MetaTrader 5 si utiliza Vista o una versión más nueva de Windows.)
MiniFAQ
¿Es seguro apagar este EA si las órdenes están puestas?
Sí, pero las órdenes se expirarán si no se disparan. El EA debe ser activo para recrear y actualizar las órdenes.
¿Utiliza algún trailing stop?
No, el stop-loss se fija después de la orden se ejecuta. Pero usted puede aplicar su propio trailing stop, incluso en forma de un asesor experto independiente.
¿Puedo modificar la posición de stop-loss o de take-profit cuando la orden pendiente se dispara?
¡Claro que sí! Puede comenzar a modificar el stop-loss inmediatamente y puede midificar el take-profit una vez que usted ha renombrado/eliminado el objeto del TP o ha desactivado el asesor experto.
Yo uso los canales para dibujar el patrón pero quiero que el EA tradee un solo lado — ya sea largo o corto. ¿Cómo puedo hacerlo?
Puede prevenir el asesor experto de usar las órdenes de compra y venta estableciendo parámetros de entrada de DisableBuyOrders o DisableSellOrders en true.
¿Puede cambiar algo para mí, por favor?
No, lo siento. Hay cientos de métodos para modificar este EA para el trading de manera diferente. No voy a implementar cualquiera de ellos, ya que es prácticamente imposible satisfacer a todos. No obstante, el código fuente es abierto y está bien comentado — puede aplicar sus propios cambios.
Ejemplos
MT4
El siguiente gráfico de ejemplo demuestra el proceso de operativa del Chart Pattern Helper. Este patrón de canal descendente en el GBP/USD semanal está marcado con tres objetos de canal: borde (amarillo), entrada (turquesa) y TP (verde lima). El asesor experto ha detectado todos los objetos y ha calculado los niveles de entrada, stop-loss y take-profit en consecuencia. Los valores calculados se muestran en el comentario del gráfico (la esquina superior izquierda). Se han colocado órdenes stop pendientes y sus niveles TP y SL son visibles también en el gráfico.
MT5
El siguiente gráfico muestra cómo Chart Pattern Helper coloca una orden pendiente buy limit para entrar en una operación que no se pudo ejecutar al romper el patrón gráfico. El gráfico AUD/JPY @ M5 utiliza dos líneas de tendencia para definir el borde (dorado), la entrada (turquesa) y el take-profit (verde lima). Al igual que en el ejemplo anterior, el comentario del gráfico en la esquina superior izquierda de la pantalla muestra los niveles detectados. Como los objetos inferiores están ausentes, solo se calculan los niveles específicos de la compra. Se ha colocado una orden pendiente buy limit porque el precio actual está por encima del nivel de entrada.
Línea de tendencia
Este ejemplo de gráfico muestra cómo Chart Pattern Helper se prepara para una entrada al cierre de la vela por encima del borde superior del banderín alcista. Como se ve en la esquina superior izquierda de la pantalla, no requiere un nivel de entrada superior, pero encontró el nivel de TP.
Este EA es compatible con ECN. Si está operando con un bróker ECN (con ejecución de mercado para las órdenes) no se puede configurar el SL/TP en la apertura de posición. Primero debe abrir una posición sin SL/TP y luego modificarla, agregando el stop-loss y/o el nivel de take-profit. Este EA lo hará automáticamente.
Descargas (ver. 1.14, 2024-03-06)
Descargar Chart Pattern Helper for MT4 Descargar Chart Pattern Helper en zip for MT4 Descargar Chart Pattern Helper for MT5 Descargar Chart Pattern Helper en zip for MT5Discusión
¿Tiene usted sus propios resultados de trading o algunos otros comentarios sobre este asesor experto? ¡Discútalos en el foro!
Registro de cambios
1.14 — 2024-03-06
- Se ha corregido un error que podía provocar una avalancha de solicitudes de modificación de órdenes al servidor de trading sin que realmente se modificara nada.
- Se han corregido todas las comparaciones de números fraccionarios para evitar posibles problemas.
- Se ha corregido un error menor en la versión MT5 del EA que podía provocar un fallo al actualizar una orden pendiente.
1.13 — 2023-05-22
- Se ha corregido otro error con el trading de líneas horizontales.
1.12 — 2023-05-19
- Corregido el funcionamiento del modo de trading de líneas de tendencia con líneas horizontales.
1.11 — 2022-07-09
- Pequeñas mejoras en el cálculo del tamaño de la posición.
1.10 — 2022-04-25
- Se ha añadido la opción de entrada "cierre por encima/debajo de la línea de tendencia".
- Se han actualizado las descripciones de los parámetros de entrada.
- Se han corregido algunos errores potenciales en el cálculo del tamaño de la posición.
1.09 — 2020-12-13
- Se ha corregido el cálculo del tamaño de la posición en las órdenes pendientes cuando la divisa base del par de divisas es la misma que la divisa de la cuenta.
1.08 — 2020-11-30
- Actualización del cálculo del tamaño de la posición.
1.07 — 2020-11-19
- Actualización del cálculo del tamaño de la posición.
1.06 — 2020-06-24
- Nuevas mejoras para el cálculo del coste unitario en MT4.
1.05 — 2020-05-30
- Se arregló un fallo en la versión para MT5 que provocaba un cálculo incorrecto del valor del pip en algunos casos.
1.04 — 2020-05-16
- Se han ajustado los cambios introducidos en la versión 1.03.
1.03 — 2020-05-15
- Se mejoró la precisión del cálculo del tamaño de la posición.
- Se ha solucionado el error potencial Error 131 (Invalid trade volume) en MT4 y código de retorno 10014 (TRADE_RETCODE_INVALID_VOLUME) en MT5 debido a que el tamaño de la posición no respetaba el parámetro de paso de volumen del símbolo.
1.02 — 2020-03-31
- Se añadió un ajuste en la granularidad del tamaño del tick para evitar el error OrderSend Error 130 (Invalid stops) en MT4 y el error 4756 en MT5 cuando el tamaño del tick del instrumento es mayor que 1 punto. Esto es especialmente útil a la hora de operar CFD.
1.01 — 2019-02-11
- Una opción añadida para establecer el stop-loss en el punto más lejano del triángulo/cuña.
- Error reparado que podía causar un cálculo de stop-loss incorrecto en MT4.
1.00 — 2013-03-07
- Publicación inicial.