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

Termos de Referência

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!


Respondido

1
Desenvolvedor 1
Classificação
(269)
Projetos
337
29%
Arbitragem
36
28% / 64%
Expirado
10
3%
Carregado
2
Desenvolvedor 2
Classificação
(611)
Projetos
711
33%
Arbitragem
45
49% / 42%
Expirado
14
2%
Trabalhando
3
Desenvolvedor 3
Classificação
(10)
Projetos
12
8%
Arbitragem
2
0% / 100%
Expirado
0
Livre
4
Desenvolvedor 4
Classificação
(28)
Projetos
34
35%
Arbitragem
0
Expirado
2
6%
Livre
5
Desenvolvedor 5
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
6
Desenvolvedor 6
Classificação
(3)
Projetos
4
0%
Arbitragem
1
100% / 0%
Expirado
1
25%
Livre
7
Desenvolvedor 7
Classificação
(60)
Projetos
74
59%
Arbitragem
4
75% / 25%
Expirado
1
1%
Carregado
8
Desenvolvedor 8
Classificação
(549)
Projetos
838
61%
Arbitragem
33
27% / 45%
Expirado
24
3%
Livre
Publicou: 1 código
9
Desenvolvedor 9
Classificação
(62)
Projetos
92
16%
Arbitragem
4
0% / 25%
Expirado
2
2%
Livre
10
Desenvolvedor 10
Classificação
(1)
Projetos
1
100%
Arbitragem
0
Expirado
0
Livre
11
Desenvolvedor 11
Classificação
(2337)
Projetos
2940
63%
Arbitragem
124
44% / 26%
Expirado
429
15%
Trabalhando
12
Desenvolvedor 12
Classificação
(184)
Projetos
317
24%
Arbitragem
23
35% / 13%
Expirado
23
7%
Livre
Publicou: 3 códigos
13
Desenvolvedor 13
Classificação
(13)
Projetos
13
38%
Arbitragem
1
0% / 100%
Expirado
1
8%
Livre
14
Desenvolvedor 14
Classificação
(2)
Projetos
2
0%
Arbitragem
0
Expirado
0
Livre
15
Desenvolvedor 15
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre

Informações sobre o projeto

Orçamento
30 - 150 USD

Cliente

Pedidos postados1
Número de arbitragens0