Astra Breakout EA
- Asesores Expertos
- Versión: 1.32
- Activaciones: 20
Este EA utiliza una estrategia de ruptura con órdenes pendientes bidireccionales (colocando simultáneamente órdenes stop de compra y stop de venta) que se ejecuta cada vez que se forma una nueva barra o vela.
-
Colocación de órdenes:
-
Cuando aparece una nueva barra (IsNewBar()), el EA mide una distancia establecida por InpDistancePoints por encima del precio de venta actual para colocar una orden de compra stop.
-
Simultáneamente, el EA coloca una orden Stop de venta a InpDistancePoints por debajo del precio de compra actual.
-
-
Gestión de una sola operación (InpOneTradeOnly = true):
-
Si una de las órdenes pendientes se activa y se convierte en una posición activa (por ejemplo, se ejecuta una orden de compra), el EA detecta la posición mediante la función CountPositions().
-
A continuación, elimina automáticamente la orden pendiente restante (orden de venta stop) para evitar la cobertura o la existencia de dos posiciones opuestas.
-
El EA v1.32 incorpora varias comprobaciones de validación internas antes de enviar las órdenes al servidor del bróker:
-
Filtro de rollover diario / cierre del mercado (IsTradeAllowed):
-
Evita los problemas de [Mercado cerrado] que se producen con frecuencia durante las horas de rollover diario (23:00–00:05).
-
Comprueba el estado del instrumento mediante SYMBOL_TRADE_MODE_FULL. Si el mercado está desactivado o se encuentra en una ventana de renovación, el EA pausa la ejecución hasta que el mercado vuelva a abrir.
-
-
Detección automática del modo de ejecución (SetTradingFillingMode):
-
Adapta dinámicamente el tipo de ejecución de las órdenes (ORDER_FILLING_FOK, ORDER_FILLING_IOC u ORDER_FILLING_RETURN) en función de los requisitos específicos del bróker para evitar fallos de ejecución (tipo de ejecución no válido).
-
-
Validación del nivel de stop del bróker:
-
Garantiza que las distancias entre el precio de compra y el precio de venta cumplan la distancia mínima exigida por el bróker (nivel de stop).
-
-
Limitación de caducidad de las órdenes pendientes:
-
Las órdenes pendientes tienen un período de validez designado definido por InpPendingExpireMin (en minutos). Si el precio no alcanza los niveles de las órdenes pendientes dentro de este período, el bróker las cancela automáticamente.
-
La función ApplyTrailingStop() se ejecuta de forma continua con cada movimiento del precio (tick):
-
Activación del trailing stop (InpTrailStart):
-
El EA supervisa las operaciones activas. Una vez que una operación se mueve en una dirección rentable más allá de los puntos InpTrailStart desde el precio de apertura, se activa el trailing stop.
-
-
Fijación de beneficios por pasos (InpTrailStep):
-
El Stop Loss (SL) se ajusta a «Precio actual - InpTrailStep».
-
La modificación del SL solo se produce si el nuevo valor del SL es superior al SL anterior (para posiciones de compra) o inferior al SL anterior (para posiciones de venta).
-
Con cada nuevo tick de precio, el EA realiza los siguientes pasos:
-
Actualizar el trailing stop: comprueba y ajusta el Stop Loss de las posiciones activas si se cumplen las condiciones de inicio del trailing stop.
-
Comprobación de posiciones activas: si InpOneTradeOnly está establecido en «true» y ya existe una posición activa, elimina todas las órdenes pendientes restantes y detiene el procesamiento posterior en OnTick().
-
Detectar nueva barra: si aún no se ha formado una nueva barra, el EA omite la creación de nuevas órdenes.
-
Ejecuta nuevas órdenes:
-
Comprueba el estado del mercado mediante IsTradeAllowed().
-
Elimina las órdenes pendientes antiguas de la barra anterior mediante DeletePendings().
-
Calcula el tamaño del lote (NormalizeLot), los niveles de SL/TP y coloca nuevas órdenes pendientes de compra stop y venta stop mediante PlaceOrders().
-
