Buenos días compañeros, estoy tratando de obtener la suma de lotes abiertos por un EA, pero no sé qué estoy haciendo mal.
Adjunto el fragmento de código, estoy obteniendo el valor del último lote abierto.
Alguien me echa una mano?
Hola Enrique,
El problema está en el segundo y tercer break, ya que te sacan del ciclo for, y tampoco estás acumulando la cantidad de lotes.
Te comparto una solución. No la compilé, por tanto no le hice pruebas pero creo que funciona o te servirá de guía.
Saludos...
//+------------------------------------------------------------------+ //| Suma de lotes.mq4 | //| Copyright 2021, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2021, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict int Magic = 1234; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { double Cantidad_lotes_Buy = 0.0; double Cantidad_lotes_Sell = 0.0; SumLotes(Cantidad_lotes_Buy, Cantidad_lotes_Sell); Comment("Buy: ", Cantidad_lotes_Buy, " Sell: ", Cantidad_lotes_Sell); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SumLotes(double &Cantidad_lotes_Buy, double &Cantidad_lotes_Sell) { for(int total = OrdersTotal() - 1; total >= 0; total--) { if(OrderSelect(total, SELECT_BY_POS, MODE_TRADES) == false) break; if(OrderMagicNumber() == Magic) { if(OrderType() == OP_BUY) Cantidad_lotes_Buy = Cantidad_lotes_Buy + OrderLots(); else if(OrderType() == OP_SELL) Cantidad_lotes_Sell = Cantidad_lotes_Sell + OrderLots(); } } } //+------------------------------------------------------------------+
Hola Enrique,
El problema está en el segundo y tercer break, ya que te sacan del ciclo for, y tampoco estás acumulando la cantidad de lotes.
Te comparto una solución. No la compilé, por tanto no le hice pruebas pero creo que funciona o te servirá de guía.
Saludos...
Hola Antonio! Tienes razón. En fin...no sé en qué estaba pensando, no estaba entendiendo bien la lógica de lo que estaba haciendo
Muchas gracias, me has sido de muchísima ayuda. Espero en otra ocasión poder ayudarte yo a ti. Un abrazo, que termines de pasar un buen fin de semana, muchas gracias de nuevo!
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Buenos días compañeros, estoy tratando de obtener la suma de lotes abiertos por un EA, pero no sé qué estoy haciendo mal.
Adjunto el fragmento de código, estoy obteniendo el valor del último lote abierto.
Alguien me echa una mano?