Подскажите блок закрытия ордеров

 
//+------------------------------------------------------------------+
//|                                                         Exp.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
 
extern double TakeProfit = 150;            
extern double StopLoss = 100;              
extern double lev= 100;  
extern double TR= 20;
extern double Lots = 0.1;                       
extern double HouerOpen = 8;       
extern double MinutesOpen = 9;
extern double SecondsOpen = 35;
 
bool  UseCurrSymbol = False;        // Использовать только один инструмент
int   Slippage      = 5;            // Проскальзывание цены
color clCloseBuy    = Blue;         // Цвет закрытия покупки
color clCloseSell   = Red;          // Цвет закрытия продажи
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
double pBid, pAsk;
double Vcp1, MyInd, MySL;
int Os, total, OI, ticket, ho, mo, OP, cnt, sred, so ;  
mo=Minute(); 
so=Seconds(); 
ho=Hour(); 
//--------------------------------------------------------------------------------------------------   
//                      Блок выставления ордеров
//
//--------------------------------------------------------------------------------------------------   
  if(mo==MinutesOpen && so>=SecondsOpen )
   {
   if(ho==HouerOpen )
     {
   //----   
     if(OrderTotal(OP_BUYSTOP)==0)
       {
       OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask+lev*Point,3,(Ask+lev*Point)-StopLoss*Point,Ask+(TakeProfit+lev)*Point,"Покупка",111,0,Green);
       }
   //----
     if(OrderTotal(OP_SELLSTOP)==0)
       {
       OrderSend(Symbol(),OP_SELLSTOP,Lots,Bid-lev*Point,3,(Bid-lev*Point)+StopLoss*Point,Bid-(TakeProfit+lev)*Point,"Продажа",111,0,Green);
       }
   //----
     }
   }   
//----
   return(0);
  }
//+------------------------------------------------------------------+ 
int OrderTotal(int type)
  {
  int order=0;
  for(int pos=OrdersTotal()-1; pos>=0; pos--)
    {
    if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
      {
      if(OrderSymbol()==Symbol() && OrderType()==type)
        {
        order++;             
        }
      }
    else
      Print("Ошибка ", GetLastError());
    }
  return(order);
  }

Посодействуте, уважаемые программисты ,если не затруднит. Нужно дописать блок закрытия ордеров, открытых и отложенных ордеров(удаление) в заданное время до секунды

 

Если это будет работать, как эксперт, то закрыть в заданное время с точностью до секунды не получиться. Эксперты исполняются потиково и нет гарантии прихода котировки в заданную секунду.

 
RickD:

Если это будет работать, как эксперт, то закрыть в заданное время с точностью до секунды не получиться. Эксперты исполняются потиково и нет гарантии прихода котировки в заданную секунду.


Ничего страшного...можно сделать период с - до секунд. Типа этого if(mo==MinutesOpen && so>=SecondsOpen )
Причина обращения: