CloseOrd





//+------------------------------------------------------------------+
//|                                                     CloseOrd.mq4 |
//|                                                  Íèêîëàé Åôðåìîâ |
//|                                                      eftd@ya.ru  |
//+------------------------------------------------------------------+
#property copyright "Nic E"
#property link      ""
extern int    Slippage    = 3;       // Ïðîñêàëüçûâàíèå öåíû

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
  string Symb=Symbol();                   // Ôèíàíñ. èíñòðóìåíò
  double Dist=1000000.0;                  // Ïðåäóñòàíîâêà
  bool rOrd=true, Resultat=true;
  double Win_Price=WindowPriceOnDropped();//Çäåñü áðîøåí ñêðèïò
//----1
   for(int i=1; i<=OrdersTotal(); i++)    // Öèêë ïåðåáîðà îðäåðîâ
      {
       if (OrderSelect(i-1,SELECT_BY_POS)==true)// Åñëè åñòü ñëåäóþùèé
        {
//----2
        if (OrderSymbol()!= Symb) continue;// Íå íàø ôèí.èíñòðóì
           
//----3
        if (NormalizeDouble(MathAbs(OrderOpenPrice()-Win_Price),Digits)
            <NormalizeDouble(Dist,Digits)) //Âûáèðàåì áëèæàéøèé
            {
             Dist=MathAbs(OrderOpenPrice()-Win_Price);// Íîâîå çíà÷åíèå            
             int    Tip    =OrderType();      // Òèï âûáðàííîãî îðä.
             if (Tip>1)rOrd=false;       // Îòëîæåííûé îðäåð  
             int    Ticket =OrderTicket();    // ¹ âûáðàííîãî îðä. 
             double Lots=OrderLots();
             double Price  =OrderOpenPrice(); // Öåíà âûáðàííîãî îðä.
            }
       } 
      }
//----4
      while(true)           //Öèêë Çàêðûòèå îðäåðà
         {
            if (rOrd==true)  //
              {
                    if(Tip==OP_BUY) 
                      Resultat=OrderClose(Ticket,Lots,Bid,Slippage,CLR_NONE);
                    else
                      Resultat=OrderClose(Ticket,Lots,Ask,Slippage,CLR_NONE);
                   if(Resultat!=true) 
                     { 
                       int Error=GetLastError(); 
                       Alert("Îøèáêà ¹ = ",Error); 
                     }
                       else Error=0;
              }
             else Resultat = OrderDelete( Ticket);// Óäàëåíèå îòëîæåííîãî îðäåðà 
                   if(Resultat!=true) 
                     { 
                       Error=GetLastError(); 
                       Alert("Îøèáêà ¹ = ",Error); 
                     }
                       else Error=0;
          break;                                    // Âûõîä èç öèêëà çàêð          
         }   
//----
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

It Closes Orders by itself

Other Features:

It issuies visual alerts to the screen