Скачать MetaTrader 5

Как определить разрешена ли торговля?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Зарегистрируйся на MQL5.community, чтобы опубликовать тему на форуме
dimka8
361
dimka8 2016.01.05 19:20 
 есть время открытия биржи , время клиринга и время закрытия биржи . как определить в данный момент разрешена торговля или я попал на клиринг ? если я правильно понял нужно использовать SYMBOL_TRADE_MODE_DISABLED . если можно пример.
Vladislav Andruschenko
91683
Vladislav Andruschenko 2016.01.05 20:27  
dimka8:
 есть время открытия биржи , время клиринга и время закрытия биржи . как определить в данный момент разрешена торговля или я попал на клиринг ? если я правильно понял нужно использовать SYMBOL_TRADE_MODE_DISABLED . если можно пример.
      if(SymbolInfoInteger(Symbol(),SYMBOL_TRADE_MODE)!=SYMBOL_TRADE_MODE_DISABLED)
         bool sender=OrderSend(request,result);
Mikhail Filimonov
5931
Mikhail Filimonov 2016.01.05 20:41  
dimka8:
 есть время открытия биржи , время клиринга и время закрытия биржи . как определить в данный момент разрешена торговля или я попал на клиринг ? если я правильно понял нужно использовать SYMBOL_TRADE_MODE_DISABLED . если можно пример.

Дело в том, что время клирингов часто изменяется.

Поэтому я посоветую вводить время в настройках эксперта.

Я делаю это так:

input string TimeStDay = "14:04:00";         //Время начала дневной сессии
input string TimeStEvn = "19:05:00";         //Время начала вечерней сессии
dimka8
361
dimka8 2016.01.05 20:55  
Vladislav Andruschenko:
спасибо . вроде работает ,посмотрим что будет при закрытии биржы
Mikhail Filimonov
5931
Mikhail Filimonov 2016.01.05 20:58  
dimka8:
спасибо . вроде работает ,посмотрим что будет при закрытии биржы

А ничего не будет.

Потому что SYMBOL_TRADE_MODE_DISABLED - это не время работы биржи.

Это общий признак разрешения торговли по инструменту. 

Время нужно проверять по таймеру, ориентируясь на настройки времени, указанные в начальных настройках советника. 

int OnInit()
{
  //--- Установка таймера
  if ( !EventSetMillisecondTimer( 500) )  //0.5 sec
  {
    MessageBox( "Таймер не установлен!", "Ошибка", MB_OK | MB_ICONHAND );
    return(INIT_FAILED);
  } 
  return(INIT_SUCCEEDED);
}

void OnDeinit( const int reason )
{
//--- удаление таймера
  EventKillTimer();
}

//+------------------------------------------------------------------+
//| Expert timer function                                            |
//+------------------------------------------------------------------+
void OnTimer()
{
  MqlDateTime tick_time;
//---  
  if ( CheckTradingTime( tick_time ) )  //проверка торгового времени
  {
    //Торгуем
  }
}
dimka8
361
dimka8 2016.01.05 21:24  
Михаил:

А ничего не будет.

Потому что SYMBOL_TRADE_MODE_DISABLED - это не время работы биржи.

Это общий признак разрешения торговли по инструменту. 

Время нужно проверять по таймеру, ориентируясь на настройки времени, указанные в начальных настройках советника. 


SYMBOL_TRADE_MODE_DISABLED понятно ,что не время торговли . я пытаюсь исходить из того ,что если биржа не работает ,то значит торговля запрещена из советника ,стакана и любым другим способом .  по сути дела не важно знать время работы биржи  ,а проверять разрешена торговля или нет. возможно я ошибаюсь и SYMBOL_TRADE_MODE_DISABLED это для данного инструмента  !!!!! и необходимо проверять время торгов .
dimka8
361
dimka8 2016.01.05 22:00  
Михаил:

А ничего не будет.

Потому что SYMBOL_TRADE_MODE_DISABLED - это не время работы биржи.

Это общий признак разрешения торговли по инструменту. 

Время нужно проверять по таймеру, ориентируясь на настройки времени, указанные в начальных настройках советника. 


да , согласен ,что SYMBOL_TRADE_MODE_DISABLED не то решение !!!!
Mikhail Filimonov
5931
Mikhail Filimonov 2016.01.10 01:22  
ФОРТС: Учимся писать эксперта для торговли фьючерсами
ФОРТС: Учимся писать эксперта для торговли фьючерсами
  • www.mql5.com
Пример советника с использованием времени торговли, стакана и кнопки Старт-стоп (торговля). - - Категория: биржевой трейдинг
Yurij Izyumov
16746
Yurij Izyumov 2016.01.30 11:20  

я проверял вот так , может пригодится, если не установлено то торговля по инструменту вроде как выключена

MarketInfo(Symbol(),MODE_TRADEALLOWED)==1)
Anatoly Garmatyuk
1672
Anatoly Garmatyuk 2016.02.07 01:33  
есть в mql4 возможность заранее определять время начала торговли в понедельник?
Yurij Izyumov
16746
Yurij Izyumov 2016.02.07 09:34  
а чем тебе метод выше не угодил , проверяешь разрешена ли торговля по инструменту - плюс рекомендую проверить есть ли цена Ask или Bid , если всё это есть то можно торговать, да и по сути если торговли еще нет  - не прийдет ни одного тика для того что бы твой советник стартанул
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий