Клиринг и обработка торговых операций

 

Приветствую коллеги,

Как обработать ситуацию, чтобы в клиринг, когда торговые операции запрещены не отправлять никаких запросов на модификацию или открытие позиции? 

Есть ли готовые функции для проверки этой ситуации? Или может есть какие флаги по инструменту, чтобы проверить, что в данный момент торговля на инструменте запрещена, клиринг, и как только клиринг закончился, флаг сбросился и торговля по инструменту разрешена?

 
DKeN:

Приветствую коллеги,

Как обработать ситуацию, чтобы в клиринг, когда торговые операции запрещены не отправлять никаких запросов на модификацию или открытие позиции? 

Есть ли готовые функции для проверки этой ситуации? Или может есть какие флаги по инструменту, чтобы проверить, что в данный момент торговля на инструменте запрещена, клиринг, и как только клиринг закончился, флаг сбросился и торговля по инструменту разрешена?

bool TRADEALLOWED = MarketInfo(Symbol(),MODE_TRADEALLOWED);

if(!TRADEALLOWED)//Не Работаем
Это на 4ку.
 
r772ra:
Это на 4ку.
возможно надо добавить проверку - демо/не демо. бывает что на демо кое что не доступно, а на реале доступно и наоборот... Особенно при высокой волотильности...
 
DKeN:

Приветствую коллеги,

Как обработать ситуацию, чтобы в клиринг, когда торговые операции запрещены не отправлять никаких запросов на модификацию или открытие позиции? 

Есть ли готовые функции для проверки этой ситуации? Или может есть какие флаги по инструменту, чтобы проверить, что в данный момент торговля на инструменте запрещена, клиринг, и как только клиринг закончился, флаг сбросился и торговля по инструменту разрешена?

Добрый день!

Я делаю это с помощью таймера и функции:

( StopTrading() - напишите сами) 

//+------------------------------------------------------------------+
//| Expert Check traiding time function                              |
//+------------------------------------------------------------------+
bool CheckTradingTime( MqlDateTime &tick_time )
{
  MqlDateTime local_time;
  TimeLocal( local_time );
  TimeTradeServer( tick_time );
 
  if ( ( local_time.hour != tick_time.hour ) || ( local_time.min != tick_time.min ) )
  {
    StopTrading( "CheckTradingTime: Ошибка синхронизации времени!" );
  }
//---  
  if ( ( tick_time.day_of_week == 0 ) || ( tick_time.day_of_week == 6 ) )
  {
    return( false );
  }
    
  if ( ( tick_time.hour >= 0 ) && ( tick_time.hour < 10 ) ) 
  {
    return( false );
  } 
    
  uint trade_time = tick_time.hour * 3600 + tick_time.min * 60 + tick_time.sec;
    
  if ( ( ( trade_time >= ( 10 * 3600 + 10 ) ) && ( trade_time < ( 13 * 3600 + 59 * 60 + 30 ) ) ) ||
       ( ( trade_time >= ( 14 * 3600 + 3 * 60 + 30 ) ) && ( trade_time < ( 18 * 3600 + 44 * 60 + 30 ) ) ) ||
       ( ( trade_time >= ( 19 * 3600 + 10 * 60 + 10 ) ) && ( trade_time < ( 23 * 3600 + 49 * 60  + 30 ) ) ) )
  {
    return( true );
  }
  return( false );
}
 
DKeN:

Приветствую коллеги,

Как обработать ситуацию, чтобы в клиринг, когда торговые операции запрещены не отправлять никаких запросов на модификацию или открытие позиции? 

Есть ли готовые функции для проверки этой ситуации? Или может есть какие флаги по инструменту, чтобы проверить, что в данный момент торговля на инструменте запрещена, клиринг, и как только клиринг закончился, флаг сбросился и торговля по инструменту разрешена?

В свойствах инструмента, в Торговых сессиях клиринг учтен? Или он как бы во время торговой сессии идет?

 

 
komposter:

В свойствах инструмента, в Торговых сессиях клиринг учтен? Или он как бы во время торговой сессии идет?

 

Как бы во время торговли.
 
Mikalas:
Как бы во время торговли.

Я бы брокера за это ногами бил.

Или у него (клиринга) и рамки плавающие? Что мешает добавить сессии в спецификацию контракта?

 
komposter:

Я бы брокера за это ногами бил.

Или у него (клиринга) и рамки плавающие? Что мешает добавить сессии в спецификацию контракта?

Нет не брокер делает клиринг, а биржа
 
Mikalas:
Нет не брокер делает клиринг, а биржа

А инструменты в МТ настраивает брокер.

Если расписание клиринга жесткое, ничего не мешает вбить его в сервер МТ.

 
komposter:

А инструменты в МТ настраивает брокер.

Если расписание клиринга жесткое, ничего не мешает вбить его в сервер МТ.

Нет, в момент экспирации, время клиринга меняется.
 
Mikalas:
Нет, в момент экспирации, время клиринга меняется.

В момент экспирации инструмента? Ну так это же однажды случается, не так ли? Потом появится следующий инструмент.

Или это что-то другое? 

Причина обращения: