Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 668

 
Leo59:
А как, в моём вопросе, можно применить OnTimer() ?

Ну не мне знать, что вы будете считать до открытия рынка)

К примеру так:

// В Init ставим флаг connection=false;

void OnTimer() {
// Обрабатываем информацию независимо от работы рынка в функции DataProcessing
DataProcessing();

if(TimeCurrent()>starttime) { // если рынок работает
   connection=true; // ставим флаг в положение "true"
   ...             // или сразу обрабатываем весь остальной код, в основном - торгвый
  }
}

void DataProcessing() {
// что-то делаем по таймеру
}

if(connection==true) { // или здесь торговые операции и остальной код, чтоб не в таймере
  ...
}


 

 
Vitaly Muzichenko:

Ну не мне знать, что вы будете считать до открытия рынка)


Спасибо Виталий за искренние попытки помочь!!!!
Видимо, вопрос должен "отстояться". Возможно мне придётся поменять логику архитектуры кода. "Утро вечера мудреней"
Ещё раз ОГРОМНОЕ СПАСИБО !!!!
 
Leo59:
Спасибо Виталий за искренние попытки помочь!!!!
Видимо, вопрос должен "отстояться". Возможно мне придётся поменять логику архитектуры кода. "Утро вечера мудреней"
Ещё раз ОГРОМНОЕ СПАСИБО !!!!

Попробуйте так, сейчас будет "0" - воскресенье

TimeDayOfWeekTimeGMT() )
 
Leo59:
Артём, вопрос был о том, как программно определить выходной день не прибегая к TimeLocal(). ))

Видел, слышал, читал ;)

Но вы же сказали, что вам нужно сначала всё просчитать, а потом "в мир выпустить". И спросили как таймер для этого поможет - вот и предложил именно об этом вашем вопросе, а не об определении выходного дня.

 
Vitaly Muzichenko:

Попробуйте так, сейчас будет "0" - воскресенье

TimeDayOfWeekTimeGMT() )

Точно!!! Возвращает "0". СПАСИБО!!!!

А я искал, что же мне может возвратить

Коды возврата торгового сервера


Код

Константа

Описание


132

ERR_MARKET_CLOSED

Рынок закрыт

 
Интересно, а что ещё, кроме OrderSend(),  возвращает ошибку 132 - рынок закрыт ?
 
Leo59:
Интересно, а что ещё, кроме OrderSend(),  возвращает ошибку 132 - рынок закрыт ?
ничего, только совершение торговой операции
 
Vitaly Muzichenko:
ничего, только совершение торговой операции
)) В принципе, этого вполне достаточно!!!!
СПАСИБО!!!!
 
Leo59:
)) В принципе, этого вполне достаточно!!!!
СПАСИБО!!!!
Посмотрите вот здесь, в конце ветки есть примитивное решение.
 
Vitaly Muzichenko:
Посмотрите вот здесь, в конце ветки есть примитивное решение.
Странно, по-моему разработчики что-то перемудрили. Чем отличаются функции, кроме Имени?


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

bool  SymbolInfoSessionQuote(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );

Если данные для указанных сессии, символа и дня недели получены, то возвращает true, иначе возвращает false.

и

Позволяет получить время начала и время окончания  указанной торговой        сессии для указанных символа и дня недели.

bool  SymbolInfoSessionTrade(
   string            name,                // имя символа
   ENUM_DAY_OF_WEEK  day_of_week,         // день недели
   uint              session_index,       // номер сессии
   datetime&         from,                // время начала сессии
   datetime&         to                   // время окончания сессии
   );

Если данные для указанных сессии, символа и дня недели получены, то возвращает true, иначе возвращает false.

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