Закрытие позиций за 10 минут до закрытия биржи, как?

 

Приветствую всех!

Необходимо закрывать позиции на пример в 23:50 по МСК, каждый торговый день(чтобы избегать свопов).

Подскажите пожалуйста как в mql5 реализовать определение конца торгового дня или того сколько времени осталось до окончания работы биржи?

 
Нашел как сделать для MT4: 
if (Hour()==23 && Minute()>=50)
{  
  // закрываемся и останавливаем трейдинг
}
а в MT5 как?
 
lih1989:

А иногда торговля прекращается в 22:00. Тогда как?

 
Alexey Viktorov:

А иногда торговля прекращается в 22:00. Тогда как?

На Бирже торговля всегда прекращается в 23:50

 
lih1989:

Приветствую всех!

Необходимо закрывать позиции на пример в 23:50 по МСК, каждый торговый день(чтобы избегать свопов).

Подскажите пожалуйста как в mql5 реализовать определение конца торгового дня или того сколько времени осталось до окончания работы биржи?

//+------------------------------------------------------------------+
//| Expert Check Market Time function                                |
//+------------------------------------------------------------------+
bool CheckMarketTime()
{
  sv_time.year = 0;
  TimeCurrent(sv_time); //Возвращает последнее известное время сервера
  if(sv_time.year > 0)
  {
    MqlDateTime cur_time;
    cur_time.year = 0;
    TimeTradeServer(cur_time); //Возвращает расчетное текущее время торгового сервера.
    if(cur_time.year > 0)
    {
      if((cur_time.day_of_week == int(FirstDay)) ||
         (cur_time.day_of_week == int(SecondDay))) return(false); //Проверка на выходные
      if(cur_time.day_of_week == sv_time.day_of_week)
      {
        ulong tr_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec;
        if(((tr_time >= time_st_mon) && (tr_time < 50370)) ||  //10:00:01 - 13:59:30
           ((tr_time >= time_st_day) && (tr_time < 67470)) ||  //14:05:01 - 19:44:30 
           ((tr_time >= time_st_evn) && (tr_time < 85770)))    //19:05:01 - 23:49:30
        {
          return(true);
        }  
      }   
    }   
  }
  return(false);
} 
Есть раздел "Биржевой трейдинг", чаще смотрите его, там много полезного есть.
 
prostotrader:
Спасибо большое!
 
lih1989:
Спасибо большое!
MqlDateTime sv_time;
input ENUM_DAY_OF_WEEK FirstDay    = SATURDAY;                 //Первый выходной
input ENUM_DAY_OF_WEEK SecondDay   = SUNDAY;                   //Второй выходной
 
prostotrader:

На Бирже торговля всегда прекращается в 23:50

А разве на бирже есть свопы?
 
Alexey Viktorov:
А разве на бирже есть свопы?

Клиринги называются

 

Итак, написал сам, вот что было нужно. Может еще комуто сгодится для "перепрыгивания" свопов.

bool TimeTrade(){
   MqlDateTime DateTime; 
   TimeToStruct(TimeCurrent(), DateTime); 
   
   if (DateTime.hour == 23 && DateTime.min >= 50)
   {  
     return false;
   } else {
     return true;
   }
}

 
lih1989:

Итак, написал сам, вот что было нужно. Может еще комуто сгодится для "перепрыгивания" свопов.


Вы сколько торгуете на бирже?