ulLOSE_ALLnMAGIK

Author: MVS
Orders Execution
Checks for the total of open ordersIt Closes Orders by itself
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
ulLOSE_ALLnMAGIK
//+------------------------------------------------------------------+
//|                                              ÑLOSE_ALL+MAGIK.mq4 |
//|                                                              MVS |
//|             ICQ  588-948-516    ÏÈØÓ    ÑÎÂÅÒÍÈÊÈ    ÍÀ    ÇÀÊÀÇ |
//+------------------------------------------------------------------+
#property copyright "MVS"
#property link      "ICQ  588-948-516    ÏÈØÓ    ÑÎÂÅÒÍÈÊÈ    ÍÀ    ÇÀÊÀÇ"
extern string  ñlose    ="= 1 -áàëàíñ, 2 -ïóíêòû ,3 -ïðîöåíòû =";
extern int     close    = 2;  //çàêðûâàåò  1 ïî áàëàíñó
                              //           2 ïî ïóíêòàì
                              //           3 ïî ïðîöåíòàì
extern bool    magic    = True;//åñëè True òî ïî ìàãèêó,åñëè False òî âñå îòêðûòûå
extern int     Magic    = 0;  // ñòàâèì íóæíûé Magic åêñïåðòà,åñëè 0 òî îòêðûòûå âðó÷íóþ
extern int     Profit   = 500; // ïðîôèò  ïðè êîòîðîì çàêðûâàåì
extern int     Loss     = 5000; // ëîññ  ïðè êîòîðîì çàêðûâàåì
int         Slippage    = 2;    // ïðîñêàëüçûâàíèå
extern bool Orderdelete = True; // óäàëÿòü îòëîæåííûå îðäåðà True=ÄÀ,False=ÍÅÒ
extern bool comment     = True; // Ïîêàçûâàòü êîììåíòàðèé  True=ÄÀ,False=ÍÅÒ
//---------------------- Ãëîáàëüíûå ïåðåìåííûå ñîâåòíèêà --------------------------------------------------
double price;
int    ordertype,err;
bool   result,first;
#include <stdlib.mqh>
//+--------------------------------------------------------------------------------------------------------
int  init() { 
if (!IsTesting())
Comment(""); }
//+--------------------------------------------------------------------------------------------------------
int deinit() { 
if (!IsTesting()) 
Comment(""); }
//-----------------------------------ïîåõàëè---------------------------------------------------------------
int start() {
 double ask,bid,open,Prc,point,buy_e,sell_e,Equity,_close;
 int Pips,buy_p,sell_p,flag=0;
 string com,mg;   
//-------------------------------ñìîòðèì îòêðûòûå----------------------------------------------------------
if( magic) mg=Magic;if(!magic) mg="ÍÅ ÂÛÁÐÀÍ";
 for(int Q=0;Q<OrdersTotal();Q++) {
  if (OrderSelect(Q,SELECT_BY_POS,MODE_TRADES))
   if(!magic||OrderMagicNumber()==Magic){
    if (OrderType()==OP_SELL) {
     point=MarketInfo(OrderSymbol(),MODE_POINT);
      ask=MathRound(MarketInfo(OrderSymbol(),MODE_ASK)/point);
       open=MathRound(OrderOpenPrice()/point);  
   sell_e+=OrderProfit()+OrderSwap();
   sell_p+=(open-ask); 
 }                                             
  if (OrderType()==OP_BUY) { 
    point=MarketInfo(OrderSymbol(),MODE_POINT);        
    bid=MathRound(MarketInfo(OrderSymbol(),MODE_BID)/point);
    open=MathRound(OrderOpenPrice()/point);                   
   buy_e+=OrderProfit()+OrderSwap(); 
   buy_p+=(bid-open);
 }                                             
//-----------------------------------ñ÷èòàåì--------------------------------------------------------------- 
   Pips=(buy_p+sell_p);
   Equity=(buy_e+sell_e);
   Prc=NormalizeDouble((Equity*100)/AccountBalance(),2);
//----------------------------------âûáèðàåì---------------------------------------------------------------
  switch(close)
  {
  case 1: _close=Equity; com = "áàëàíñó"; break; 
  case 2: _close=Pips; com = "ïóíêòàì"; break;
  case 3: _close=Prc; com = "ïðîöåíòàì"; break; 
  default: com = "ÍÅ ÓÊÀÇÀÍÎ"; break; 
  }
//--------------------Êîììåíòàðèè--------------------------------------------------------------------------- 
 if(comment)
 Comment(
     "\nÇàêðûòèå      ïî            ",com," ",
     "\nMagic     íîìåð  N           ",mg," ",
     "\nÏðèáûëü çàêðûòèÿ          ",Profit," ",
     "\nÓáûòîê  çàêðûòèÿ           ",Loss," ",
     "\nÏðèáûëü BUY ïóíêòîâ    ",buy_p," ï.",
     "\nÏðèáûëü Sell  ïóíêòîâ    ",sell_p," ï.",           
     "\nÎáùèõ      ïóíêòîâ         ",Pips," ï.",
     "\nÏðèáûëü     BUY       $    ",buy_e," $",
     "\nÏðèáûëü     Sell        $    ",sell_e," $",
     "\nÎáùèé     Equity       $    ",Equity," $",
     "\nÏðèáûëü  ïðîöåíò   %    ",Prc," %"
      );
 }}             
//---------------------------óñëîâèÿ äëÿ çàêðûòèÿ--------------------------------------------------------------------- 
 if (_close <=-Loss) { Alert("  ÇÀÊÐÛÂÀÅÌ  ÓÁÛÒÎÊ  O_o");flag=1;}   
 if (_close >=Profit){ Alert("  ÇÀÊÐÛÂÀÅÌ  ÏÐÎÔÈÒ !!!"); flag=1;}                                                                                                                                                    
//-----------------------------âñå ïîçèöèè çàêðûâàåì------------------------------------------------------------------
if(flag>0)                                                 
 for(int i=OrdersTotal()-1;i>=0;i--){                                     
  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
   if(!magic||OrderMagicNumber()==Magic) {
   ordertype=OrderType();
   if(ordertype==OP_BUY || ordertype==OP_SELL){
 while(true){
  if(ordertype==OP_BUY) 
   price=MarketInfo(OrderSymbol(),MODE_BID);
 else 
   price=MarketInfo(OrderSymbol(),MODE_ASK);
    result=OrderClose(OrderTicket(),OrderLots(),price,Slippage,CLR_NONE);
   if(result!=true) {err=GetLastError(); Print("Îøèáêà çàêðûòèÿ  ",err);}
 else err=0;
   if(err==135 || err==138) RefreshRates();
 else break;
 }} 
//---------------------------âñå îðäåðà óäàëÿåì-----------------------------------------------------------------------
if (Orderdelete) {  
 if ( ordertype == OP_BUYSTOP || ordertype == OP_SELLSTOP || ordertype == OP_BUYLIMIT || ordertype == OP_SELLLIMIT )
 OrderDelete(OrderTicket(),CLR_NONE);    
 }     
 else Print( "âîçíèêëà îøèáêà   ",GetLastError());
 }}}             
 return(0); 
  }

Comments