________ _________ _______





//+------------------------------------------------------------------+
//|                                                       Revers.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                             http://www.metaquotes.ru/forum/6749/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.ru/forum/6749/"

extern int Slippage = 3;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   int SymbolOrders;         // êîëè÷åñòâî îðäåðîâ ïî äàííîìó ñèìâîëó
   int cnt;                  // ñ÷åò÷èê îðäåðîâ (îáõîä÷èê)
   int buyOrders,sellOrders; // êîëè÷åñòâî îðäåðîâ â ðûíêå (îòëîæåííûå íå ñ÷èòàåì)
   double buyLots,sellLots;  // îáùèé îáúåì îòêðûòûõ îðäåðîâ â ïîêóïêó è ïðîäàæó
   double reversLot;         // îáúåì ðàçâîðîòíîãî îðäåðà
   int intLots;              // âñïîìîãàòåëüíàÿ ïåðåìåííàÿ
   int ticket;               // òèêåò ðàçâîðîòíîãî îðäåðà
//----
   if(!IsDemo()) // çàùèòà îò ñëó÷àéíîãî çàïóñêà íà ðåàëüíîì ñ÷åòå
      {
        Alert("Ðàáîòà íà ðåàëå çàïðåùåíà!!!");
        return; // çàâåðøåíèå ðàáîòû ñêðèïòà
      }
//----
   if(OrdersTotal() == 0)
      {
        Alert("Îðäåðà íå íàéäåíû");
        return; // çàâåðøåíèå ðàáîòû ñêðèïòà
      }
//----
   for(cnt = OrdersTotal() - 1; cnt >= 0; cnt--) // ïðîéäåìñÿ ïî îðäåðàì
     {
       if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) // åñëè îðäåð âûáðàí
          {
            if(OrderSymbol() != Symbol()) 
                continue;  // åñëè âûáðàííûé îðäåð íå ïî íàøåìó ñèìâîëó
            // - ïåðåõîäèì ê ñëåäóþùåìó îðäåðó  
            if(OrderType() == OP_BUY) 
              {
                buyOrders++;                  // óâåëè÷èì ñ÷åò÷èê îðäåðîâ â Buy
                buyLots = buyLots + OrderLots();  // óâåëè÷èì îáúåì îðäåðîâ â Buy
              }
            if(OrderType() == OP_SELL) 
              {
                sellOrders++; // óâåëè÷èì ñ÷åò÷èê îðäåðîâ â Sell
                sellLots = sellLots + OrderLots();  // óâåëè÷èì îáúåì îðäåðîâ â Sell
              }
          }
     }
   // Îðäåðà ñîñ÷èòàíû, òåïåðü íóæíî ïðîâåðèòü - åñòü ëè îðäåðà â ðûíêå.
   if(buyOrders + sellOrders == 0) 
     {
       Alert("Ðûíî÷íûõ îðäåðîâ ïî ñèìâîëó ", Symbol(), " íàéäåíî");
       return; // çàâåðøåíèå ðàáîòû ñêðèïòà
     }      
   // Äîøëè äî ýòîãî ìåñòà - çíà÷èò îðäåðà âñå-òàêè åñòü
   if(buyOrders*sellOrders != 0) // ìû ðàáîòàåì òîëüêî ëèáî ñ îðäåðàìè Buy ëèáî Sell, 
                                 // íî íå ñ îáîèìè
      {
        Alert("Èìååì ïî ñèìâîëó ", Symbol(), " ", buyOrders, " îðäåðîâ â ïîêóïêó è ", 
              sellOrders, "îðäåðîâ â ïðîäàæó. Ðàáîòà ïðåêðàùåíà");
        return; // çàâåðøåíèå ðàáîòû ñêðèïòà
      }
   // Äîøëè äî ýòîãî ìåñòà - çíà÷èò èìååì îðäåðà òîëüêî îäíîãî òèïà  
   if(buyOrders > 0)
     {
       intLots = 2*10*buyOrders;  // öåëîå äâîéíîå êîëè÷åñòâî ëîòîâ      
       reversLot = NormalizeDouble(intLots / 10, 1); // ïîëó÷èëè îáúåì ðàçâîðîòíîãî îðäåðà
       RefreshRates();
       ticket = OrderSend(Symbol(), OP_SELL, reversLot, Bid, Slippage, 0, 0, 
                          "revers order", 0, 0, Red);
       if(ticket < 0)
         {
           Alert("Íå óäàëîñü îòêðûòü îðäåð SELL ", Symbol(), " ", reversLot, " at ", 
                 Bid, "  Îøèáêà ", GetLastError());
         }
     }
//----
   if(sellOrders > 0)
     {
       intLots = 2*10*sellOrders; // öåëîå äâîéíîå êîëè÷åñòâî ëîòîâ      
       reversLot = NormalizeDouble(intLots / 10, 1); // ïîëó÷èëè îáúåì ðàçâîðîòíîãî îðäåðà
       RefreshRates();
       ticket = OrderSend(Symbol(), OP_BUY, reversLot, Ask, Slippage, 0, 0, 
                          "revers order", 0, 0, Blue);
       if(ticket < 0)
         {
           Alert("Íå óäàëîñü îòêðûòü îðäåð SELL ", Symbol(), " ", reversLot, " at ", 
                 Ask, "  Îøèáêà ", GetLastError());
         }
     }
//----
   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


Other Features:

It issuies visual alerts to the screen