Ayuda con el Codigo

 

Hola, estoy intentando escribir unas ordenes de compra/venta cuandos se den "X" condiciones, y cerrar esas operaciones cuando se den  "Y". He conseguido que empiece la operacion en las condiciones que le he dado, pero la condicion para que cierre la operacion incluye un indicador personalizado (si escribo Take Profit y Stop loss si que funciona), y no consigo hacer que cierre la operacion pues lo ignora completamente, y no se si es la parte de la orden de vender o la parte del indicador personalizado la que esta mal. Muchas gracias por adelantado.


input int a=100;
input int e=50;
input int i=0;
input int o=30;
input int u=125; 


void OnTick()
  {
  
    string signal="";
      
    double a = ---------------------------------------
     
    double e = ---------------------------------------
     
    
    
    double customindicator = iCustom(NULL,0,"..\\Indicators\\XXXXXXXXXXXXXX.ex4",i,o,u);   INDICADOR PERSONALIZADO, HE INTENDADO PONERLO DE VARIAS MANERAS PERO NO SE CUAL ES LA CORRECTA
     
     
    if ((-----------------------)&&(--------------------------------)) 
    signal="Sell";
     
     
    if ((--------------------------------)&&(--------------------------------)) 
    signal="Buy"; 
    
    
    if (signal == "Buy" && OrdersTotal() == 0)
    OrderSend (Symbol(), OP_BUY, 0.2, Ask, 3, 0, 0, NULL, 0, 0, Green);
         
    if (signal == "Sell" && OrdersTotal() == 0)
    OrderSend (Symbol(), OP_SELL, 0.2, Bid, 3, 0, 0, NULL, 0, 0, Red);



    HASTA AQUI EN TEORIA FUNCIONA, AHORA QUIERO CERRAR LA OPERACION (SOLO PUEDE HABER UNO AL MISMO TIEMPO) SEA DE COMPRA O DE VENTA QUE SE HAYA ABIERTO
    
    if ((customindicator==a)&&(customindicator>b))
    signal="Stopshort";
    
    if ((customindicator==a)&&(b<customindicator))
    signal="Stoplong";
    
    if(signal == "Stopshort" && OrdersTotal() == 1)
    OrderClose (Symbol(),OP_BUY,Ask,3,Green);
    
    if(signal == "Stoplong" && OrdersTotal() == 1)
    OrderClose (Symbol(),OP_SELL,Bid,3,Red);
    
        
    }
 
    OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,sl,tp,TradeComment,Magic);  // asi mandas la orden 
            customindicator= iCustom(Symbol(),0, "::Indicators\\XXXXXXXXXXXXXX.ex4", x, t, y, u); // el indicador debe ser puesto de esta forma 

   OrderSelect(i,SELECT_BY_POS)  // primero seleecionas tu operacion con order select


   OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Red) //de esta manera cierras tu operación 

Espero sea de utilidad para ti, saludos