Скрипты: CloseAllBuySell

 

CloseAllBuySell:

Скрипт закрывает все открытые Buy и Sell в активном окне.

Author: Андрей

 

Скрипт не работает

 
azfaraon писал(а):

Скрипт не работает

Попробуйте так.
//+------------------------------------------------------------------+
//|                                             _CloseAllBuySell.mq4 |
//|                                           "СКРИПТЫ ДЛЯ ЛЕНИВОГО" |
//|         Скрипт закрывает все открытые Buy и Sell в активном окне |
//|                           При CreateGif=true активное окно после |
//|                       закрытия позиций сохраняется как рисунок в |
//|                     ...\<Терминал>\exsperts\files\<FileName>.gif |
//|                           Bookkeeper, 2006, yuzefovich@gmail.com |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property show_confirm // Если есть желание менять экстерны в процессе
extern int  Slippage   = 7;     // Проскальзывание
extern bool CreateGif  = true; // Создать или нет рисунок
int start()
{
bool   Result;
int    i,Pos,Error,Total;
//int    Dgts=MarketInfo(Symbol(),MODE_DIGITS);
string FileName, str;     
//----
  Total=OrdersTotal();
  if(Total>0)
  {
     for(i=Total-1; i>=0; i--) 
     {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true &&
           OrderSymbol()==Symbol()) 
        {
           // Только Buy и Sell по символу
           Pos=OrderType();
           if(Pos==OP_BUY || Pos==OP_SELL) 
           {
              RefreshRates();
              if(Pos==OP_BUY) 
              Result=OrderClose(OrderTicket(),
                                OrderLots(),
                                NormalizeDouble(MarketInfo(Symbol(),MODE_BID),Digits),
                                Slippage,
                                CLR_NONE);
              else
              Result=OrderClose(OrderTicket(),
                                OrderLots(),
                                NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),Digits), 
                                Slippage,
                                CLR_NONE);
              if(Result!=true) 
              { 
                 Error=GetLastError(); 
                 Alert("_CloseAllBuySell LastError = ",Error); 
              }
              else Error=0;
           }
        }
     }
     if(CreateGif==true)
     {
         //    рисуем, если заказано
         datetime curdate=TimeCurrent();
         FileName=Symbol()+"_CloseAll_"+TimeYear(curdate);
         i=TimeMonth(curdate);
         if(i<10)
         {
            str="0"+i;
            FileName=FileName+str;
         }
         else FileName=FileName+i;
         i=TimeSeconds(curdate)+
           100*TimeMinute(curdate)+
           10000*TimeHour(curdate)+
           1000000*TimeDay(curdate);
         if(TimeDay(curdate)<10)
         {
            str="0"+i;
            FileName=FileName+str;
         }
         else FileName=FileName+i;
         FileName=FileName+".gif";
         WindowScreenShot(FileName,400,300); 
     }
  }
  return(0);
}
//+------------------------------------------------------------------+
 
Как сделать подобный скрипт для закрытия всех позиций?
 

Все работает.

А можно сделать так чтоб сначала БОЛЬШИЕ лоты закрывались???

Спасибо!