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

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

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

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

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

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

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

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

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


 

Leo59
348
Leo59  
Vitaly Muzichenko:

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


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

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

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

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

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

Leo59
348
Leo59  
Vitaly Muzichenko:

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

TimeDayOfWeekTimeGMT() )

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

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

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


Код

Константа

Описание


132

ERR_MARKET_CLOSED

Рынок закрыт

Leo59
348
Leo59  
Интересно, а что ещё, кроме OrderSend(),  возвращает ошибку 132 - рынок закрыт ?
Vitaly Muzichenko
12562
Vitaly Muzichenko  
Leo59:
Интересно, а что ещё, кроме OrderSend(),  возвращает ошибку 132 - рынок закрыт ?
ничего, только совершение торговой операции
Leo59
348
Leo59  
Vitaly Muzichenko:
ничего, только совершение торговой операции
)) В принципе, этого вполне достаточно!!!!
СПАСИБО!!!!
Vitaly Muzichenko
12562
Vitaly Muzichenko  
Leo59:
)) В принципе, этого вполне достаточно!!!!
СПАСИБО!!!!
Посмотрите вот здесь, в конце ветки есть примитивное решение.
Leo59
348
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.