CloseOrders

Author: Vladimir Khlistov
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself
Miscellaneous
It opens Message Boxes to the userIt issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
CloseOrders
//+------------------------------------------------------------------+
#property copyright "Vladimir Khlistov"
#property link      "http://cmillion.narod.ru"
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
 
int   Magic  = 0;//777333 ; //çàêðûâàòü òîëüêî ñäåëêè ñ ìàãèêîì, åñëè Magic  = 0 çàêðûâàòü âñå

//+------------------------------------------------------------------+
int start()
{  
   bool error=true;
   int Îøèáêà;
   string txt="Cêðèïò çàêðûòèÿ îðäåðîâ";
   if (Magic!=0)  txt=StringConcatenate(txt," ñ Magic=",Magic);
   Comment("");
   int ret=MessageBox("Çàêðûòü âñå îðäåðà (Äà)   Çàêðûòü òîëüêî ïðîôèòíûå (Íåò)",txt, MB_YESNOCANCEL|MB_TOPMOST);
   if (ret==IDCANCEL) return;
   for (int j = 0; j < OrdersTotal(); j++)
   {
      if (OrderSelect(j, SELECT_BY_POS))
      {
         if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic || Magic == 0))
         {
            if (ret==IDNO && OrderProfit()<0) continue;
            if (OrderType()==OP_BUY ) 
            {
               error=OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
               if (error) Alert("Çàêðûò îðäåð N ",OrderTicket(),"  ïðèáûëü ",OrderProfit(),
                                  "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
            if (OrderType()==OP_SELL) 
            {
               error=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
               if (error) Alert("Çàêðûò îðäåð N ",OrderTicket(),"  ïðèáûëü ",OrderProfit(),
                                  "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
            if (!error) 
            {
               Îøèáêà = GetLastError();
               if (Îøèáêà<2) continue;
               if (Îøèáêà==129) 
               {
                  j--;
                  Sleep(5000);
                  RefreshRates();
                  continue;
               }
               if (Îøèáêà==146) 
               {
                  int ret1=MessageBox("Ïîäñèñòåìà òîðãîâëè çàíÿòà"," ", MB_RETRYCANCEL|MB_TOPMOST|MB_ICONWARNING);
                  if (ret1==IDCANCEL) return;
                  j--;
                  if (IsTradeContextBusy()) Sleep(2000);
                  continue;
               }
               Comment("Îøèáêà ",Îøèáêà," çàêðûòèÿ îðäåðà N ",OrderTicket(),
                       "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
         }
      }
   }
   return(0);
}
//+------------------------------------------------------------------+

Comments