Modificacion EA Mt5

MQL5 Uzmanlar

Şartname

Tengo un EA ya operativo en MetaTrader 5, y me gustaría que realizaras unas modificaciones específicas. A continuación, te detallo cómo funciona actualmente el EA y luego te explico las instrucciones precisas que deben implementarse para lograr el comportamiento deseado.


1. Funcionamiento actual del EA (base HARD10)

  • El EA abre una operación de compra o venta al iniciarse, dependiendo del parámetro OperarEnVenta (true = venta, false = compra).

  • La operación se abre con un LoteInicial , un SL y TP en pips definidos por parámetros.

  • Si la operación se cierra por Stop Loss (SL):

    • Se multiplica el volumen por el MultiplicadorLotes para la próxima operación.

    • Se incrementa un contador de SLs consecutivos.

    • Si se alcanza el número máximo de SLs consecutivos ( MaximosSLseguidos ), el EA se detiene.

  • Si la operación se cierra por Take Profit (TP):

    • El lote se reinicia al valor inicial.

    • El contador de SLs se reinicia.

    • Si DetenerTrasTP = true , el EA se detiene.

  • Si la operación se cierra de forma manual:

    • El lote se reinicia y se anulan los contadores.

  • El EA usa un MagicNumber para filtrar solo sus operaciones.

  • Todo esto ocurre en cada símbolo donde el EA está conectado, de forma independiente.


2. Modificaciones solicitadas

a) Activación por hora y minuto 

Deseo que el EA permanezca inactivo para abrir nuevas operaciones hasta que llegue una hora y minuto configurables. Sin embargo, sí debe seguir detectando cierres de operaciones previas, incluso antes de esa hora, ya que es necesario para mantener la lógica sincronizada con otros símbolos.

Inputs a añadir:


input bool ActivarHoraDeInicio = true;

input int HoraActivacion = 9;

input int MinutoActivacion = 30;

  • Si ActivarHoraDeInicio = true , el EA debe esperar a la hora indicada para comenzar a abrir operaciones.

  • Durante ese tiempo, debe seguir ejecutando la lógica de detección de cierres, actualización del contador de SLs, y ajuste del lote o SL/TP si corresponde.

  • Si el EA se conecta después de esa hora, debe activarse directamente.

b) Ampliación del SL y TP tras varias pérdidas consecutivas 

Deseo implementar una función que aumente el tamaño del StopLoss y del TakeProfit tras una cadena de operaciones perdedoras consecutivas.

Inputs a añadir:

input bool ActivarSLTPExpandido = true;
input int SLsAntesDeExpandir = 5;
input double FactorSLTPExpandido = 1.5; // Por ejemplo: multiplica SL y TP por 1.5


Lógica esperada:

  • Si ActivarSLTPExpandido = true y se han acumulado SLsAntesDeExpandir pérdidas consecutivas o más, entonces:

    • El próximo trade utilizará un SL y TP multiplicados por FactorSLTPExpandido .

  • Si se alcanza un TP o se cierra manualmente:

    • El lote, SL y TP vuelven a los valores originales.

c) Sincronización de estado entre múltiples gráficos

Actualmente, si el EA está conectado en dos gráficos distintos (por ejemplo, EURUSD y XAUUSD), cada instancia trabaja de forma completamente independiente. Quiero cambiar eso.

Objetivo: que todas las instancias del EA (aunque estén en símbolos distintos) compartan la misma lógica de progresión y multiplicador.

Ejemplo:

  • En el gráfico del EURUSD el EA ha operado y ha tenido 3 SL consecutivos, por lo que el lote se ha multiplicado.

  • En el gráfico del XAUUSD el EA aún no ha sido activado (porque está esperando su hora de inicio).

  • Cuando se active el EA en el XAUUSD, debe heredar esa misma lógica, es decir:

    • Detectar que ya hay una serie de SL anteriores acumulados en otro símbolo.

    • Calcular y aplicar el mismo multiplicador de lotaje y, si corresponde, el SL/TP ampliado.

Requisitos técnicos:

  • Se puede usar un sistema de almacenamiento compartido entre instancias (variables globales, archivos, etc.).

  • Es fundamental que cada instancia del EA pueda saber cuál es el estado de progresión global antes de operar por primera vez.


3. Requisitos generales

  • Código limpio, eficiente, que compile sin errores.

  • Entregar archivo final en formato .mq5 .

  • Si alguna parte no es viable exactamente como la pido, estoy abierto a sugerencias técnicas.


Dosyalar:

MQ5
HARD10.mq5
5.8 Kb

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(3)
Projeler
1
100%
Arabuluculuk
2
0% / 50%
Süresi dolmuş
0
Serbest
2
Geliştirici 2
Derecelendirme
(619)
Projeler
722
33%
Arabuluculuk
46
48% / 41%
Süresi dolmuş
14
2%
Yüklendi
3
Geliştirici 3
Derecelendirme
(134)
Projeler
174
40%
Arabuluculuk
10
40% / 10%
Süresi dolmuş
30
17%
Serbest
4
Geliştirici 4
Derecelendirme
(184)
Projeler
317
24%
Arabuluculuk
23
35% / 13%
Süresi dolmuş
23
7%
Serbest
Yayınlandı: 3 kod
5
Geliştirici 5
Derecelendirme
(45)
Projeler
91
13%
Arabuluculuk
34
26% / 59%
Süresi dolmuş
37
41%
Serbest
6
Geliştirici 6
Derecelendirme
(515)
Projeler
554
53%
Arabuluculuk
13
69% / 15%
Süresi dolmuş
3
1%
Serbest
7
Geliştirici 7
Derecelendirme
Projeler
0
0%
Arabuluculuk
2
0% / 50%
Süresi dolmuş
0
Çalışıyor
8
Geliştirici 8
Derecelendirme
(1)
Projeler
2
0%
Arabuluculuk
1
0% / 100%
Süresi dolmuş
0
Serbest
Yayınlandı: 2 kod

Proje bilgisi

Bütçe
30 - 100 USD