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
EA opere varios pares a mismo tiempo.
-
- Mensajes: 10
- Registrado: 29 Ago 2022 19:14
Re: EA opere varios pares a mismo tiempo.
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
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
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
-
- Mensajes: 10
- Registrado: 29 Ago 2022 19:14
Re: EA opere varios pares a mismo tiempo.
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;
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;
-
- Mensajes: 10
- Registrado: 29 Ago 2022 19:14
Re: EA opere varios pares a mismo tiempo.
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...
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.
Hola Alanrooc777, ya he visto donde estaba el problema, era en el primer condicional, donde ponías esto:
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
Saludos,
X-Trader
Código: Seleccionar todo
int Ordenes=OrdersTotal();
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
![Wink ;)](./images/smilies/icon_wink.gif)
![Cool 8)](./images/smilies/icon_cool.gif)
Saludos,
X-Trader
- Adjuntos
-
- Clio_fixed.mq4
- (11.22 KiB) Descargado 47 veces
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Si te ha gustado este hilo del Foro, ¡compártelo en redes!