Trebuchet Bracket Engine
- Asesores Expertos
-
Syarief Azman Bin Rosli
¡Hola y bienvenido a mi perfil oficial en MQL5!
Soy Syarief Azman Bin Rosli, desarrollador de sistemas de trading algorítmico e ingeniero de software cuantitativo con más de una década de experiencia especializada en la creación de soluciones automatizadas para MetaTrader 5 y MetaTrader 4. - Versión: 1.0
- Activaciones: 5
Trebuchet Bracket Engine es un Expert Advisor para MetaTrader 4 de rupturas por expansión del rango diario. En el ancla (por defecto la apertura del día) mide el rango de los últimos N días, coloca un buy stop encima y un sell stop debajo del ancla a K x rango, pone el stop loss en el ancla y cierra todo en la salida diaria. Como máximo una operación por lado y día; sin grid, martingala, promediado ni posiciones nocturnas (salvo que desactive la salida diaria).
Inicio rápido
- Coloque el EA en un gráfico del símbolo (cualquier marco; la lógica usa barras diarias y el reloj) y active AutoTrading y "Allow live trading".
- Empiece con los valores por defecto: rango Dual Thrust de 4 días, disparadores a 0.50 x rango, stop en el ancla, corte de entradas 21:00 y salida 22:00 hora del servidor, riesgo 1 %.
- Tras el ancla el panel muestra BRACKET ARMED y aparecen dos órdenes pendientes: un buy stop y un sell stop.
- Prueba: una ejecución visual del Probador en XAUUSD M15 durante dos semanas dibuja cada horquilla y operación.
- Avisos push: configure su MetaQuotes ID (Herramientas > Opciones > Notificaciones) y Push Notifications = true.
Cómo opera
Rango: Range Basis Dual Thrust (max of HH-LC, HC-LL) usa los N días completos anteriores a hoy (Range Lookback): HH/LL son su máximo y mínimo, HC/LC el mayor y menor cierre, rango = el mayor de HH-LC y HC-LL. Average daily range = media de máximo-mínimo de esos días; Previous day range = máximo-mínimo de ayer.
Ancla: en Anchor Time se fija el precio del ancla. 00:00 usa la apertura diaria (primer tick del día de servidor). Otra hora usa la apertura de la primera barra a esa hora o después.
Disparadores: compra = ancla + Buy Trigger Distance x rango, venta = ancla - Sell Trigger Distance x rango. Si rango / ATR diario (Daily ATR Period) está por debajo de Minimum Range o por encima de Maximum Range, ese día no hay horquilla (RANGE TOO NARROW / RANGE TOO WIDE).
Entry Orders:
- Pending stop orders: un buy stop y un sell stop se colocan justo tras el ancla. Si un disparador está más cerca que el nivel de stops del bróker, ese lado lo vigila el EA y entra a mercado (VIRTUAL).
- Market order on touch: sin órdenes pendientes; el EA compra cuando Ask llega al disparador de compra y vende cuando Bid llega al de venta (se omite mientras el spread supere Max Spread for Market Entries).
Un lado cuyo disparador ya se superó al fijar la horquilla (por ejemplo tras un reinicio) queda MISSED y nunca se persigue. Cada lado opera como máximo una vez al día y Max Trades per Day limita el total. Cancel the Opposite Order on Fill borra el otro lado cuando uno se ejecuta.
Stop Loss Placement:
- At the anchor: el stop está en el precio del ancla.
- At the opposite trigger (stop and reverse): el stop largo está en el disparador de venta y el corto en el de compra, así una ruptura fallida puede girar al otro lado.
- Range fraction from entry: entrada menos (más en ventas) Stop Distance for Range Fraction x rango.
Los stops se amplían al mínimo del bróker si hace falta.
Salidas: Take Profit fija un objetivo en ese múltiplo R de la distancia del stop (0 = sin objetivo). Breakeven Trigger mueve el stop a la entrada cuando la operación ha ganado esos R. En Entry Cutoff se borran todas las pendientes; en Day Exit Time se cierran todas las posiciones del EA, y una posición de un día de servidor anterior se cierra al instante (vacío = mantener de noche). Cierres, borrados y cambios de stop solo fuera de la zona de congelación y dentro de la sesión; si no, se reintentan.
Lot Sizing: Fixed lots opera Fixed Lots. Risk % of balance: lotes = balance x Risk per Trade / 100 / pérdida por lote al stop, redondeado al paso y limitado por Max Lots. Bajo el mínimo del bróker se usa el lote mínimo, así que cuentas pequeñas, u oro con rangos diarios amplios, pueden arriesgar más del porcentaje fijado. Se verifica el margen libre antes de cada orden (NO MARGIN).
Recomendado: XAUUSD y GBPUSD. Pares de baja volatilidad como EURUSD dieron resultados débiles con los valores por defecto. Las horas son del servidor (diseñado para servidores GMT+2/+3). Conviene optimizar: Range Lookback, ambas distancias de disparo, Stop Loss Placement, Day Exit Time y Maximum Range.
Controles del panel
- [-] / [+]: plegar en una cápsula (TREBUCHET más el estado) o desplegar.
- <>: mover el panel a la siguiente esquina.
- PAUSE / RESUME: PAUSE borra las pendientes y bloquea nuevas entradas (las posiciones abiertas se siguen gestionando); RESUME vuelve a colocar la horquilla de hoy si sigue siendo válida. Se guarda en una variable global y sobrevive a reinicios.
- BRACKET ON / BRACKET OFF: mostrar u ocultar las líneas del gráfico.
- CLOSE ALL: el primer clic muestra CONFIRM?, un segundo clic en 4 segundos cierra todas las posiciones y borra todas las pendientes del EA en el símbolo.
Plegado, esquina y líneas vuelven a los parámetros al recolocar el EA.
Lecturas del panel
- LED de cabecera: verde con la horquilla armada o una operación activa, ámbar en pausa, gris en otro caso.
- DAY STATE: insignia WAITING FOR ANCHOR, BRACKET ARMED, LONG LIVE, SHORT LIVE, PAUSED, DAY QUOTA USED, DAY DONE (tras el corte), BRACKET SPENT (ambos lados usados), RANGE TOO NARROW, RANGE TOO WIDE o NO DAILY HISTORY; fecha; hora y precio de ANCHOR; horas de CUTOFF y EXIT.
- RANGE ENGINE: periodo y base; valor RANGE con ambas K; HH, LL, HC, LC; un medidor de rango / ATR de 0 a 3 con marcas en ambos límites; la razón, los límites y OK o el motivo.
- BRACKET: medidor con el disparador de venta (coral), el ancla (bronce) y el disparador de compra (turquesa); el marcador muestra el Bid y cambia de color al superar un disparador. Debajo: precios SELL, ANCHOR y BUY y la distancia a cada disparador en puntos. A la derecha: STOP AT ANCHOR, STOP+REVERSE o STOP x.xxR, y el objetivo en R.
- Líneas de lado LONG y SHORT: READY, BUY STOP AT / SELL STOP AT precio, WATCHING precio (VIRTUAL), FILLED - IN TRADE, TRADED TODAY, MISSED: PRICE ALREADY BEYOND, SKIPPED: NO MARGIN u ORDER FAILED, CANCELLED: OCO, CUTOFF, QUOTA, PAUSED, MANUAL o NEW DAY, NO BRACKET TODAY.
- POSITION: FLAT, o lado, lotes, entrada y beneficio flotante; SL, TP, R y BE ([x] cuando el stop está en break-even). Sin posición: TODAY operaciones / máximo y DAY P/L, o NEW ENTRIES PAUSED.
- ACTIVITY: los tres últimos eventos con hora: BRACKET, NO BRACKET, BUY STOP / SELL STOP colocado, BUY FILLED / SELL FILLED, STOP CANCELLED, MISSED, SKIPPED, ORDER FAILED, BREAKEVEN, CLOSED (salida diaria, día anterior, manual), CLOSE ALL, PAUSED by user, RESUMED by user.
- Línea inferior: TRADES, porcentaje WIN y NET de beneficio cerrado del EA en el símbolo.
Líneas en el gráfico
Del ancla a la salida diaria: una línea turquesa BUY TRIGGER, una coral SELL TRIGGER y una punteada bronce ANCHOR, rotuladas para hoy; Past Days Drawn on Chart horquillas anteriores en líneas finas (grises si fueron filtradas). Visible en marcos hasta H4.
Alertas
Pop-up Alerts y Push Notifications avisan al fijar la horquilla en el ancla, en cada ejecución y en cada cierre. No en el Probador.
Efectos secundarios
- Variable global TBE_PAUSE_<símbolo>_<magic> = 1 mientras está en pausa.
- Objetos con prefijo TBE_P_ (panel) y TBE_Z_ (líneas), eliminados con el EA. Temporizador de un segundo. Sin archivos ni DLL.
bool paused = GlobalVariableCheck("TBE_PAUSE_XAUUSD_26110901"); Parámetros de entrada
Range Engine
- Range Lookback (4 días), Range Basis (Dual Thrust (max of HH-LC, HC-LL); o Average daily range, Previous day range).
- Buy Trigger Distance (0.50) y Sell Trigger Distance (0.50): x rango.
- Daily ATR Period (14 días), Minimum Range (0.0 x ATR, 0 = desactivado), Maximum Range (2.5 x ATR, 0 = desactivado).
Horario
- Anchor Time (00:00 = apertura del día), Entry Cutoff (21:00), Day Exit Time (22:00, vacío = desactivado): hora del servidor, ancla antes del corte, corte no posterior a la salida.
Órdenes y salidas
- Entry Orders (Pending stop orders; o Market order on touch).
- Stop Loss Placement (At the anchor; At the opposite trigger (stop and reverse); Range fraction from entry), Stop Distance for Range Fraction (0.30 x rango).
- Take Profit (0.0 R = solo salida diaria), Breakeven Trigger (0.0 R = desactivado).
- Max Trades per Day (2), Cancel the Opposite Order on Fill (false).
Gestión monetaria
- Lot Sizing (Risk % of balance; o Fixed lots), Fixed Lots (0.10), Risk per Trade (1.0 %), Max Lots (5.0).
- Max Spread for Market Entries (0 puntos = desactivado).
Ejecución
- Magic Number (26110901, uno por gráfico del mismo símbolo), Max Slippage (30 puntos), Order Comment (Trebuchet).
Visualización y alertas
- Show Panel (true), Draw Bracket Levels (true), Past Days Drawn on Chart (5), Start Collapsed (false), Panel Scale (1.0, 0.5-2.5).
- Pop-up Alerts (true), Push Notifications (false).
Configuraciones típicas
- Horquilla diaria clásica (XAUUSD, GBPUSD): valores por defecto.
- Stop y reversión: Stop Loss Placement = At the opposite trigger (stop and reverse), Max Trades per Day 2.
- Horquilla de Londres: Anchor Time 08:00, Entry Cutoff 16:00, Day Exit Time 21:00, Range Basis = Average daily range, ambas distancias 0.40.
- Objetivo y protección: Take Profit 2.0, Breakeven Trigger 1.0, Cancel the Opposite Order on Fill true.
Notas
- Tras un reinicio la horquilla se reconstruye con barras diarias; las órdenes existentes conservan su lado y un disparador superado nunca se persigue.
- Las órdenes pendientes nunca pasan a un nuevo día.
- Day Exit Time vacío solo se acepta junto con un Take Profit mayor que 0; si no, una operación solo podría cerrar en su stop.
- El Probador usa las mismas reglas; panel y líneas solo en modo visual. Pruebe primero en una cuenta demo.
Aviso de riesgo
Operar forex y CFD con margen conlleva un alto riesgo de pérdida. Los resultados pasados o simulados no garantizan resultados futuros. Este EA no promete beneficios; use solo capital que pueda permitirse perder.
