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

Tarea técnica

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!


Han respondido

1
Desarrollador 1
Evaluación
(269)
Proyectos
337
29%
Arbitraje
36
28% / 64%
Caducado
10
3%
Trabajando
2
Desarrollador 2
Evaluación
(611)
Proyectos
711
33%
Arbitraje
45
49% / 42%
Caducado
14
2%
Trabaja
3
Desarrollador 3
Evaluación
(10)
Proyectos
12
8%
Arbitraje
2
0% / 100%
Caducado
0
Libre
4
Desarrollador 4
Evaluación
(28)
Proyectos
34
35%
Arbitraje
0
Caducado
2
6%
Libre
5
Desarrollador 5
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
6
Desarrollador 6
Evaluación
(3)
Proyectos
4
0%
Arbitraje
1
100% / 0%
Caducado
1
25%
Libre
7
Desarrollador 7
Evaluación
(60)
Proyectos
74
59%
Arbitraje
4
75% / 25%
Caducado
1
1%
Trabajando
8
Desarrollador 8
Evaluación
(549)
Proyectos
838
61%
Arbitraje
33
27% / 45%
Caducado
24
3%
Libre
Ha publicado: 1 ejemplo
9
Desarrollador 9
Evaluación
(62)
Proyectos
92
16%
Arbitraje
4
0% / 25%
Caducado
2
2%
Libre
10
Desarrollador 10
Evaluación
(1)
Proyectos
1
100%
Arbitraje
0
Caducado
0
Libre
11
Desarrollador 11
Evaluación
(2337)
Proyectos
2940
63%
Arbitraje
124
44% / 26%
Caducado
429
15%
Trabaja
12
Desarrollador 12
Evaluación
(184)
Proyectos
317
24%
Arbitraje
23
35% / 13%
Caducado
23
7%
Libre
Ha publicado: 3 ejemplos
13
Desarrollador 13
Evaluación
(13)
Proyectos
13
38%
Arbitraje
1
0% / 100%
Caducado
1
8%
Libre
14
Desarrollador 14
Evaluación
(2)
Proyectos
2
0%
Arbitraje
0
Caducado
0
Libre
15
Desarrollador 15
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre

Información sobre el proyecto

Presupuesto
30 - 150 USD

Cliente

Encargos realizados1
Número de arbitrajes0