명시
Saludos, aca doy el resumen del robot que quiero automatizar para metatrader 4, basicamente es una cobertura, mas abajo les dejo el detalle desde el punto 1 al punto 7 que considero que debe llevar el proyecto; pero si sugieren algun tipo de mejora que lo haga mas eficiente o sencillo quedo atento, este seria el resumen macro que necesito que el robot me haga:
"El robot es un Expert Advisor (EA) que permite activar y desactivar una estrategia de cobertura basada en un nivel de precio definido por el usuario mediante una línea horizontal, a la cual se le asignará el nombre "Zona4". Una vez que el usuario dibuja esta línea y activa el EA, el robot colocará automáticamente una orden pendiente (Buy Stop o Sell Stop, según la configuración) en ese nivel. Por ejemplo, si se configura para cobertura en ventas y la línea se coloca por debajo del precio actual, se colocará una Sell Stop; de igual forma, para cobertura en compras se usará Buy Stop. Esto garantiza que, cuando el precio alcance ese nivel, la orden se active y abra la posición en la dirección deseada.
Una vez activada la cobertura, el EA debe monitorear la posición abierta y, en cuanto el precio retorne al punto de apertura (o lo más cercano posible, dentro de una tolerancia configurable), la operación se cierre en breakeven (BE) o con mínima pérdida. Inmediatamente después del cierre en BE, el robot debe reactivar la misma orden pendiente (del mismo tipo, Buy Stop o Sell Stop) para que el ciclo se repita de forma automática hasta que el usuario desactive el EA. Es fundamental que a través de los inputs se pueda configurar el lote de la orden, el tipo de orden pendiente (Buy Stop o Sell Stop) y el nombre de la zona (por defecto "Zona4"), garantizando que la cobertura siempre se cierre en BE o de manera casi neutra, evitando pérdidas en la cobertura."
Aca los links a los videos donde explico sobre el grafico lo que necesito:
https://www.loom.com/share/fc9409ee574b4eac95ab018bc889dc32?sid=8d7a4c00-b10e-49b1-83c1-4fa53c49081e
https://www.loom.com/share/e8caf437c80549d99905e3a47c2ad6eb?sid=f0dce6b1-76fb-40df-879a-6049edd24cc6
ACA EL DETALLE DE LO QUE PARA MI DEBE HACER EL ROBOT (Me apoye de chatgtp pero estoy abierto a sugerencias)
1. Introducción
El proyecto consiste en desarrollar un Expert Advisor (EA) para MetaTrader 4 que implemente una estrategia de cobertura en una zona predefinida (Zona 4). Este EA se activará manualmente mediante un botón gráfico y trabajará basándose en una línea horizontal dibujada en el gráfico, cuyo precio determinará el nivel de activación de la cobertura.
2. Objetivos y Funcionalidad Principal
-
Cobertura Automática Repetitiva:
El robot debe colocar una orden pendiente de cobertura en el nivel definido por una línea horizontal (Zona 4). Cuando dicha orden se active y se abra la posición, el EA debe monitorizar el trade y cerrarlo en breakeven (BE) cuando el precio regrese al punto de apertura (dentro de una tolerancia configurable). Una vez cerrada la operación en BE, el robot debe reactivar automáticamente la misma orden pendiente, repitiendo el ciclo hasta que se desactive manualmente. -
Decisión Automática de Orden:
El EA utilizará órdenes pendientes de tipo Buy Stop o Sell Stop según la configuración del usuario, de forma que:-
Para cobertura en compras (por ejemplo, para cubrir posiciones cortas), se use una Buy Stop.
-
Para cobertura en ventas (por ejemplo, para cubrir posiciones largas), se use una Sell Stop.
-
3. Requerimientos Funcionales
3.1 Activación y Desactivación
-
Botón Gráfico:
El EA debe incluir un botón en el gráfico que permita activar o desactivar el robot. El botón debe mostrar “Activar Cobertura” y “Desactivar Cobertura” según el estado actual. -
Activación Manual:
La cobertura solo se activará cuando el usuario pulse el botón. De igual forma, se podrá desactivar con el mismo botón o removiendo el EA del gráfico.
3.2 Configuración de la Zona de Cobertura
-
Línea Horizontal de Zona 4:
El usuario dibujará manualmente una línea horizontal en el gráfico (con un nombre configurable, por ejemplo, “Zona4”).-
El EA debe leer el precio de esta línea y utilizarlo como nivel para colocar la orden pendiente.
-
3.3 Colocación de la Orden Pendiente
-
Tipo de Orden:
El EA debe colocar una orden pendiente según la modalidad de cobertura:-
Buy Stop: Si se configura cobertura en compras (la línea debe estar por encima del precio actual de mercado, Ask).
-
Sell Stop: Si se configura cobertura en ventas (la línea debe estar por debajo del precio actual de mercado, Bid).
-
-
Parámetros Configurables:
-
Lote de Cobertura: Tamaño de la posición a colocar (por ejemplo, 4 lotes).
-
Deslizamiento: Máximo deslizamiento permitido en la ejecución de la orden.
-
Número Mágico: Para identificar las órdenes y operaciones del EA.
-
3.4 Cierre en Breakeven (BE)
-
Condición de Cierre:
Una vez que la orden pendiente se active y se abra la posición:-
Para una posición de compra (activada por Buy Stop), el EA debe cerrar la operación en BE cuando el precio Bid regrese al nivel de apertura (dentro de una tolerancia configurable).
-
Para una posición de venta (activada por Sell Stop), el EA debe cerrar en BE cuando el precio Ask regrese al nivel de apertura (dentro de una tolerancia configurable).
-
-
Tolerancia para BE:
La tolerancia (en puntos) es configurable. Por ejemplo, para el oro se podría iniciar con 8 puntos de tolerancia, permitiendo que el cierre en BE ocurra lo más cerca posible del punto de apertura sin verse afectado por fluctuaciones mínimas o el spread.
3.5 Reactivación de la Orden Pendiente
-
Ciclo Continuo:
Una vez que la posición se cierra en BE, el EA debe reactivar automáticamente la misma orden pendiente (Buy Stop o Sell Stop) en el mismo nivel definido por la línea, o lo más cercano posible. -
Tolerancia para Reactivación:
Se debe configurar un parámetro (en puntos) que determine cuándo el precio se considera “cerca” del nivel de la línea para volver a colocar la orden. Por ejemplo, para oro se podría comenzar con 15 puntos de tolerancia. -
Ciclo Infinito:
Este ciclo (orden pendiente → activación → apertura de posición → cierre en BE → reactivación de la orden) se repetirá continuamente hasta que el usuario desactive el EA.
3.6 Manejo de Errores y Condiciones de Mercado
-
El EA debe incluir manejo básico de errores y mostrar mensajes en el log para detectar problemas (por ejemplo, si el precio de la línea no cumple las condiciones para el tipo de orden configurado).
-
Se debe considerar la diferencia entre Ask y Bid (spread) al evaluar las condiciones de activación, cierre y reactivación.
4. Requerimientos No Funcionales
-
Eficiencia y Robustez:
El código debe estar optimizado para una ejecución rápida y sin errores en MT4. Debe ser capaz de manejar condiciones de alta volatilidad y spread variable. -
Interfaz de Usuario Mínima:
-
Se utilizarán únicamente inputs configurables y un botón gráfico para evitar saturar el gráfico.
5. Parámetros de Entrada Configurables
-
LotesCobertura: Tamaño del lote para la cobertura.
-
ModoCobertura: Selección entre cobertura en compras (Buy Stop) o en ventas (Sell Stop).
-
NombreLineaZona4: Nombre que se le asignará a la línea horizontal que define la zona.
-
Deslizamiento: Valor máximo permitido para el deslizamiento.
-
NumeroMagico: Número único para identificar las órdenes del EA.
-
ToleranciaBreakEvenPts: Tolerancia en puntos para el cierre en BE.
-
ToleranciaReactivacionPts: Tolerancia en puntos para reactivar la orden pendiente.
6. Ejemplo de Flujo de Operación
-
El usuario dibuja una línea horizontal en el gráfico y le asigna el nombre “Zona4”.
-
El usuario configura el EA con los parámetros deseados (por ejemplo, cobertura en ventas, 4 lotes, tolerancia de BE de 8 puntos, reactivación a 15 puntos, etc.) y activa el EA mediante el botón.
-
El EA lee el precio de la línea “Zona4” y coloca una orden pendiente Sell Stop (si se configuró para ventas) en ese nivel.
-
Cuando el precio baja y alcanza la orden Sell Stop, se activa la operación (venta).
-
La operación se mueve a beneficio y, posteriormente, cuando el precio regresa cerca del precio de apertura (dentro de los 8 puntos de tolerancia), el EA cierra la operación en BE.
-
Inmediatamente, el EA verifica que el mercado esté dentro del rango de reactivación (15 puntos desde el nivel de la línea) y vuelve a colocar la misma orden pendiente Sell Stop.
-
El ciclo se repite hasta que el usuario desactive el EA.
7. Consideraciones Adicionales
-
Spread y Volatilidad:
Se debe tener en cuenta que durante períodos de alta volatilidad el spread puede aumentar, afectando la activación y cierre en BE. El EA debe ser lo suficientemente robusto para manejar estas condiciones. -
Backtesting:
Se recomienda realizar pruebas retrospectivas (backtesting) en diferentes condiciones de mercado para ajustar los parámetros de tolerancia de BE y de reactivación, de modo que la estrategia funcione de manera consistente.