Как правильно выяснить, что рынок закрыт? (mql4) - страница 6

 
Alexey Busygin:
В некоторых случая, ответ должен исходить, от сервера ДЦ! А ДЦ об этом не очень то заботятся. по этому и работает все кое как.

О хорошо. Это решило проблему.

:)))))))) 

 
Vasyl Nosal:

О хорошо. Это решило проблему.

:)))))))) 

Да конечно, зачем пользоваться тем что не работает.
 
Vasyl Nosal:

А сегодня 

 IsTradeAllowed(Symbol(), TimeCurrent())

показывает тру

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

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

 Кстати почему у вас Локальное время? 

Потому что время сервера (TimeCurrent()) на выходных не изменяется.
 
Ihor Herasko:

...

Потому что время сервера (TimeCurrent()) на выходных не изменяется.
Не правда.
 
Правда, не меняется, последнее известное время сервера или тика, нет тиков нет изменения времени.
 
Alexander Bereznyak:
Правда, не меняется, последнее известное время сервера или тика, нет тиков нет изменения времени.
Бл..., тебе что тяжело сейчас в терминал зайти и посмотреть???
 
Vasyl Nosal:
Бл..., тебе что тяжело сейчас в терминал зайти и посмотреть???

Ну зачем же так? Ведь можно и самому убедиться, что оно не изменяется. Кроме того, есть четкая формулировка в документации: https://docs.mql4.com/ru/dateandtime/timecurrent.

Возвращает последнее известное время сервера

 То есть это время последнего пришедшего тика по любому из символов из "Обзора рынка". На выходных это время может изменяться, если брокер предоставляет данные о котировках даже в выходные и праздничные дни. Но у подавляющего большинства брокеров такого нет - в выходные всегда будете получать время последнего тика пятницы.

TimeCurrent - Документация на MQL4
  • docs.mql4.com
TimeCurrent - Документация на MQL4
 
Ihor Herasko:

Ну зачем же так? Ведь можно и самому убедиться, что оно не изменяется. Кроме того, есть четкая формулировка в документации: https://docs.mql4.com/ru/dateandtime/timecurrent.

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

Потому что если зайти на выходны в терминал, то время там обновляется по дате когда ты зашел и не важно есть ли тики.
 
Vasyl Nosal:
Потому что если зайти на выходны в терминал, то время там обновляется по дате когда ты зашел и не важно есть ли тики.

Вы отвергаете очевидное, не приводя своих фактов. Где Вы такое видели? Возможно, в терминалах брокеров, дающих котировки в выходные? Тогда верно - обновление будет, но не по факту запуска терминала, а по факту прихода тиков.

Хотя, скорее всего, Вы имеете в виду какое-то другое время. Например, время в журнале. Но это время невозможно получить программно. Здесь же речь идет именно о TimeCurrent(). 

 
Vasyl Nosal:
Потому что если зайти на выходны в терминал, то время там обновляется по дате когда ты зашел и не важно есть ли тики.

Продемонстрируйте, пожалуйста. И ещё: "Вы ведь говорите о TimeCurrent() - о последнем известном времени сервера?" И, кстати, судя по Вашей логике, достаточно отключиться от интернета (тиков не будет - имитация выходных), подождать минут 5, затем зайти в терминал и в терминале время обновиться?

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