Desarrollo de EA en MQL5 para MT5 - Estrategia Breakout e Input de Riesgo (Prop Firm Ready)

Specification

Hola,

Busco un programador experimentado en MQL5 para desarrollar un Expert Advisor (EA) personalizado para MetaTrader 5, diseñado específicamente para operar Petróleo (WTI/Brent) bajo las estrictas reglas de gestión de riesgo de las empresas de fondeo (Prop Firms).

El nombre oficial del proyecto y del archivo debe ser: El Vasco OIL.

A continuación, detallo las especificaciones lógicas y las variables de entrada requeridas:


1. Variables de Entrada (input variables) Obligatorias:

El EA debe exponer el siguiente panel de control en MT5:

mql5

 

//+------------------------------------------------------------------+

//|                                                 El Vasco OIL.mq5 |

//|                                      Copyright 2026, CARLOS GASTON LAVAYEN   |

//|                                             https://mql5.com |

//+------------------------------------------------------------------+

#property copyright   "Carlos Gaston Lavayen"

#property version     "1.00"

#property description "Expert Advisor Profesional para Cuentas de Fondeo"

#property description "Estrategia: Ruptura de Rango e Inyección de Liquidez"


//+------------------------------------------------------------------+

//|                      VARIABLES DE CONFIGURACIÓN GENERAL          |

//+------------------------------------------------------------------+

input string               Inp_MagicGroup     = "--- CONFIGURACIÓN GENERAL ---"; // Identificador

input int                  Inp_MagicNumber    = 88250;          // Número Mágico (Identificador único del EA)

input string               Inp_TradeComment   = "Oil_Breakout_Prop"; // Comentario de la orden

 

//+------------------------------------------------------------------+

//|                      GESTIÓN DE RIESGO AVANZADA                  |

//+------------------------------------------------------------------+

input string               Inp_RiskGroup      = "--- GESTIÓN DE RIESGO (PROP FIRM) ---";

input double               Inp_RiskPercent    = 0.5;            // % de Riesgo por Operación (Ej: 0.5% o 1.0%)

input double               Inp_MaxDailyLoss   = 4.0;            // % de Pérdida Máxima Diaria (Cierre de emergencia total)

input int                  Inp_StopLossPoints = 300;            // Stop Loss fijo en Puntos (Si no se usa el estructural)

input int                  Inp_TakeProfitPoints= 600;           // Take Profit fijo en Puntos (Relación 1:2)

input bool                 Inp_UseBreakeven   = true;           // ¿Activar Breakeven automático?

input int                  Inp_BreakevenTrigger= 300;           // Puntos en positivo para activar Breakeven

input int                  Inp_MaxSpreadAllowed= 40;            // Spread máximo permitido para abrir órdenes (Puntos)

 

//+------------------------------------------------------------------+

//|                      FILTROS DE TIEMPO Y SESIONES                |

//+------------------------------------------------------------------+

input string               Inp_TimeGroup      = "--- CONFIGURACIÓN DE HORARIOS ---";

input string               Inp_AsiaStart      = "01:00";        // Inicio de la Sesión Asiática (Hora Broker)

input string               Inp_AsiaEnd        = "07:00";        // Fin de la Sesión Asiática y cálculo de rango

input string               Inp_ExecutionStart = "08:00";        // Hora para colocar las órdenes pendientes

input string               Inp_ExecutionEnd   = "16:00";        // Hora límite para activar órdenes (Cancelación OCO)

input bool                 Inp_FridayClose    = true;           // ¿Cierre forzado los viernes? (Evitar Gaps)

input string               Inp_FridayCloseTime= "15:30";        // Hora de cierre los viernes (EST / Broker)

 

//+------------------------------------------------------------------+

//|                      FILTRO DE NOTICIAS DE ALTO IMPACTO          |

//+------------------------------------------------------------------+

input string               Inp_NewsGroup      = "--- FILTRO DE NOTICIAS (EIA / USD) ---";

input bool                 Inp_AvoidNews      = true;           // ¿Evitar noticias de alto impacto?

input int                  Inp_MinutesBefore  = 30;             // Minutos antes de la noticia para pausar el EA

input int                  Inp_MinutesAfter   = 30;             // Minutos después de la noticia para reactivar el EA


2. Lógica Operativa (Estrategia Breakout):

  1. Cálculo de Rango: El EA debe identificar el precio Máximo y Mínimo del activo entre Inp_AsiaStart e Inp_AsiaEnd (Hora del Servidor).
  2. Órdenes Pendientes: A la hora indicada en Inp_ExecutionStart, el EA debe colocar una orden Buy Stop (unos puntos por encima del Máximo) y una orden Sell Stop (unos puntos por debajo del Mínimo).
  3. Cancelación OCO / Tiempo: Si una orden se activa, la opuesta debe cancelarse automáticamente. Si llega la hora de Inp_ExecutionEnd y ninguna orden se ha ejecutado, el EA debe borrar ambas órdenes pendientes del mercado.

3. Gestión de Riesgo Especial (Requisito Crítico):

  • Cálculo Automatizado de Lotes: El tamaño del lote debe calcularse dinámicamente en base al balance actual de la cuenta, el porcentaje asignado en Inp_RiskPercent y la distancia del Stop Loss.
  • Filtro de Equidad Diaria (Inp_MaxDailyLoss): El EA debe monitorear constantemente la equidad flotante del día. Si las pérdidas acumuladas (cerradas + flotantes) alcanzan el porcentaje configurado, el EA debe cerrar inmediatamente todas las posiciones abiertas, borrar órdenes pendientes y pausar su operativa hasta el día siguiente. Esto es vital para proteger el drawdown diario de la Prop Firm.
  • Filtro de Spread: No permitir la apertura de ninguna orden si el spread actual es mayor que Inp_MaxSpreadAllowed.
  • Cierre Forzado de Viernes: Si Inp_FridayClose está activo, el EA debe cerrar de manera obligatoria cualquier posición flotante a la hora exacta definida en Inp_FridayCloseTime para evitar Gaps de fin de semana.

Entregables requeridos:

  • Código fuente abierto (.mq5) debidamente comentado.
  • Archivo ejecutable (.ex5) compilado sin errores ni advertencias.

Por favor, indícame tu presupuesto, tiempo estimado de entrega y si tienes alguna duda técnica sobre el planteamiento.

Quedo atento. ¡Muchas gracias!


Responded

1
Developer 1
Rating
(269)
Projects
337
29%
Arbitration
36
28% / 64%
Overdue
10
3%
Loaded
2
Developer 2
Rating
(611)
Projects
711
33%
Arbitration
45
49% / 42%
Overdue
14
2%
Working
3
Developer 3
Rating
(10)
Projects
12
8%
Arbitration
2
0% / 100%
Overdue
0
Free
4
Developer 4
Rating
(28)
Projects
34
35%
Arbitration
0
Overdue
2
6%
Free
5
Developer 5
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free
6
Developer 6
Rating
(3)
Projects
4
0%
Arbitration
1
100% / 0%
Overdue
1
25%
Free
7
Developer 7
Rating
(60)
Projects
74
59%
Arbitration
4
75% / 25%
Overdue
1
1%
Loaded
8
Developer 8
Rating
(549)
Projects
838
61%
Arbitration
33
27% / 45%
Overdue
24
3%
Free
Published: 1 code
9
Developer 9
Rating
(62)
Projects
92
16%
Arbitration
4
0% / 25%
Overdue
2
2%
Free
10
Developer 10
Rating
(1)
Projects
1
100%
Arbitration
0
Overdue
0
Free
11
Developer 11
Rating
(2337)
Projects
2940
63%
Arbitration
124
44% / 26%
Overdue
429
15%
Working
12
Developer 12
Rating
(184)
Projects
317
24%
Arbitration
23
35% / 13%
Overdue
23
7%
Free
Published: 3 codes
13
Developer 13
Rating
(13)
Projects
13
38%
Arbitration
1
0% / 100%
Overdue
1
8%
Free
14
Developer 14
Rating
(2)
Projects
2
0%
Arbitration
0
Overdue
0
Free
15
Developer 15
Rating
Projects
0
0%
Arbitration
0
Overdue
0
Free

Project information

Budget
30 - 150 USD

Customer

Placed orders1
Arbitrage count0