Descargar MetaTrader 5

¿Como puedo hacer que el EA (MQL4) cuente operaciones abiertas solo en la ventana donde está asociado?

Para añadir comentario, por favor Autorícese o regístrese
trader0
9
trader0  

Buenos días. Tal como dice la pregunta, me gustaria poder asociar un EA a diferentes ventanas, y que si no hay ninguna operació abierta en la ventana a la que está asociado el EA, abra una nueva operación. Es decir:

Dentro del código coloco:

   if(OrdersTotal()==0)
      {               
      int ticket1=OrderSend(NULL, OP_BUY, Lotes, Ask, 10, Bid-SL, Bid+TP, NULL, 0, TimeStop, clrNONE);           
      }

Digamos que tengo abierta 3 ventanas del par GBP/USD, y asocio este EA a cada una de estas 3 ventanas. De haber una operación abierta en cualquiera de las ventanas el código no abrirá ninguna operación nueva ya que OrdersTotal() no es igual a "0" sino igual a "1". entonces, ¿qué puedo hacer para que el EA contabilice solamente las órdenes abiertas en la ventana en que está asociado el EA, y no tome en cuenta si se abrió la orden en otra ventana?, es decir, que si yo asocio el anterior EA a las 3 ventanas, y la abre una operación en una de ellas, en las otras dos considere que OrdersTotal() es igual a "0" por no aberse abierto la operación en esa ventana, y por lo tanto abra una nueva operación en estas otras 2 ventanas. ¿Que necesito colocar en el código antes para que lo haga de esta manera?

Muchas gracias de antemano por su ayuda.

Alain Verleyen
Moderador
33780
Alain Verleyen  
Usted tiene que usar un número mágico.
trader0
9
trader0  

¿Hay alguna forma de hacerlo utilziando la función "ChartID()"?

Lo pregunto pensando en que "ChartID()" devuelve el número del gráfico actual, y cada uno tiene su número independientemente de que sea mismo o diferente símbolo, por ser diferente gráfico.

Intente colocando esto:

      if(ChartID()==ChartID())
         {    
         if(OrdersTotal()==0)
            {
            int ticket1=OrderSend(NULL, OP_BUY, Lote, Ask, 10, Bid-Exit, Bid+Exit, NULL, 0, TimeStop, clrNONE);
            Print(GetLastError());  
            }
         }      

Mi intención, con este código, es que abra la operación si no hay ninguna operación abierta en la ventana de precio a la que asocié el EA. Pero no me está funcionando:

¿Cómo debo colocarlo de manera que, colo que vaya a colocar en el código, lo haga solo si se toma en cuenta en la ventana de precio en que está asociado el EA?

Muchas gracias de antemano.


NOTA: estoy pensando hacerlo con ChartID porque me parece que sería mas sencillo para después hacer cosas en el código que por número mágico de órdenes. 

Para añadir comentario, por favor Autorícese o regístrese