Котировки в выходные.

 

Подскажите, кто каким методом решал такой вопрос.

У брокера по выходным иногда проскакивают котировки, также бывают котировки в ночь на пятницу, когда уже рынок закрыт. В этом случае эксперт отправит OrderSend и получит ошибку. Чтобы избежать появления этой ошибки и ее обработки всякий раз, планирую запретить торговлю с 00:00 субботы до 00:00 понедельника, что-то типа:

MqlDateTime pr_CurrentTime; //переменная для получения текущего времени

TimeGMT(pr_CurrentTime); //по GMT

if(pr_CurrentTime.day_of_week!=0 && pr_CurrentTime.day_of_week!=6) //если не суббота и не воскресенье

  {

    //здесь код работы с ордерами

  }


Есть ли другой вариант, например запрос разрешения торговли на каждом тике через MarketInfo или другую функцию? А то у разных брокеров разные часовые пояса и т.п.

Нашел 6 вариантов:

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED),

AccountInfoInteger(ACCOUNT_TRADE_EXPERT),

MQLInfoInteger(MQL_TRADE_ALLOWED),

TerminalInfoInteger(TERMINAL_TRADE_ALLOWED),

IsTradeAllowed(),

MarketInfo(_Symbol,MODE_TRADEALLOWED),

Какой из них наиболее подходящий?

 
if(IsTradeAllowed())
 
derek777:

Подскажите, кто каким методом решал такой вопрос.

У брокера по выходным иногда проскакивают котировки, также бывают котировки в ночь на пятницу, когда уже рынок закрыт. В этом случае эксперт отправит OrderSend и получит ошибку. Чтобы избежать появления этой ошибки и ее обработки всякий раз, планирую запретить торговлю с 00:00 субботы до 00:00 понедельника, что-то типа:


Чаще всего котировки поступают только в понедельник. Так что на реале это никак не отразится, хотя для анализа значение есть.

Актуально для работы советника в тестере и при оптимизации. Необходимо учитывать фактическое время работы брокера.

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