Página 1 de 1

EA opere varios pares a mismo tiempo.

Publicado: 05 Sep 2022 04:24
por Alanrooc777
Buen día a todos... de pronto alguna idea para que un bot opere en varios pares de divisas?
Programé el mio y solo apera en un par por vez... les agradezco una posible ayuda...

Adjunto está el código... gracias

Re: EA opere varios pares a mismo tiempo.

Publicado: 05 Sep 2022 12:52
por X-Trader
Hola Alanrooc777, en realidad es sencillo: no tienes más que insertar el EA en el gráfico de cada par que quieras operar modificando los valores del Magic Number. Es decir, si quieres operar por ejemplo EURUSD y USDJPY:

1. Insertas el EA en EURUSD poniendo en los parámetros del Magic algo como MagicNumber_Buy = 100 y MagicNumber_Sell = 101

2. Seguidamente insertas el EA en USDJPY y cambias los Magic por ejemplo a MagicNumber_Buy = 102 y MagicNumber_Sell = 103. El tema es que los números que pongas a aquí sean distintos a los del otro par, porque el EA usa estos Magic Numbers para gestionar de forma individual las órdenes que ha ejecutado.

Con esto no deberías tener problema para ejecutar en varios pares tu estrategia, pudiendo además adaptar los parámetros.

Saludos,
X-Trader

Re: EA opere varios pares a mismo tiempo.

Publicado: 05 Sep 2022 20:31
por Alanrooc777
Hola X-Trader, gracias por responder...
Mirá que intenté tu consejo, pero sigue igual, yo lo instalo en un par y funciona ahí, pero lo instalo en otro par con los Magic Number diferente y no arranca... Le faltará algo al texto del código?? Le puse variable extern al magig number para elegir los numero al momento de intalar...

extern int MagicNumber_Buy=100;
extern int MagicNumber_Sell=200;

Re: EA opere varios pares a mismo tiempo.

Publicado: 06 Sep 2022 17:48
por Alanrooc777
Hola X-trader, creo que encontré la falla, estaría en el inicio...
void OnTick()

int Ordenes=OrdersTotal();
if (Ordenes<1)
{ OrderSend(NULL,OP_BUY,LTJ,Ask,3,0,Ask+TP*Point,"PrototipoA1",MagicNumber_Buy,0,clrBlue);
OrderSend(NULL,OP_SELL,LTJ,Bid,3,0,Bid-TP*Point,"PrototipoA1",MagicNumber_Sell,0,clrRed
);}
El if le indica al bot que solo abra operaciones si no hay ordenes abiertas, osea que al momento de instalar el bot, abre ordenes en el primer par, pero como ya hay ordenes, cuando el bot se instala en otro par, no abre nada porque espera el momento en que no existan ordenes abiertas. Debo especificar mas al bot los parámetros de entradas, creo que identificando el nombre del simbolo con la variable SymbolName.
Voy a intentar o si tienes alguna estructura de código que pueda usar, te lo agradecería... aún me falta mucho por aprender, mil gracias...

Re: EA opere varios pares a mismo tiempo.

Publicado: 07 Sep 2022 11:24
por X-Trader
Hola Alanrooc777, ya he visto donde estaba el problema, era en el primer condicional, donde ponías esto:

Código: Seleccionar todo

int Ordenes=OrdersTotal();
Al condicionar a que OrdersTotal() fuera menor que 1 para iniciar la ejecución, compruebas todas las órdenes abiertas en MetaTrader, no solo las del gráfico. Para resolverlo tienes que hacer un recuento de las órdenes presentes solo en un determinado par y con un determinado Magic Number.

Te paso el EA arreglado, ahora debería funcionar correctamente. No obstante, revisa cómo afecta el cambio a la ejecución del resto de sentencias porque veo que usas OrdersTotal() en muchos apartados, seguramente tengas que reemplazarlo por el código de recuento que te he incluido al principio.

Ya me dices si te funciona ;) 8)


Saludos,
X-Trader