Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет @Carl Schreiber,
Вы написали отличную статью, она очень помогает. Просто хочу рассказать вам, что я обнаружил после использования вашего кода.
Я использую брокера eightcap и попытался использовать простой скрипт, чтобы показать фактическое время в соответствующей стране, и обнаружил, что время в Токио отстает от фактического на 1 час. Вот скрипт, который я использую,
код скопирован и вставлен из статьи, и я просто возвращаю значение из него. Я не думаю, что проблема в том, как я использовал код, потому что другая сессия правильная.
Привет @Карл Шрайбер,
Вы написали отличную статью, она очень помогает. Хочу рассказать вам, что я обнаружил после использования вашего кода.
Я использую брокера eightcap и попытался использовать простой скрипт, чтобы показать фактическое время в соответствующей стране, и обнаружил, что время в Токио отстает от фактического на 1 час. Вот скрипт, который я использую,
код скопирован и вставлен из статьи, и я просто возвращаю значение из него. Я не думаю, что проблема в том, как я использовал код, потому что другая сессия правильная.
От GMT (=UTC) разница во времени составляет 0900 часов (от https://www.worldtimeserver.com/current_time_in_JP.aspx?city=Tokyo)
= 9*-3600=32400 секунд:
И это установлено:
От GMT (=UTC) разница во времени составляет 0900 часов (с https://www.worldtimeserver.com/current_time_in_JP.aspx?city=Tokyo).
= 9*-3600=32400 секунд:
И это установлено:
Ошибка, которую я совершил. Это не Токио, а Сидней.
Australian First Sunday of October at 02:00 to First Sunday of April at 02:00
Австралийский ДСТ 2010 начало 2010.10.03 - конец 2010.04.04
Австралийский ДСТ 2011 начало 2011.10.02 - конец 2011.04.03
Австралийский ДСТ 2012 начало 2012.10.07 - конец 2012.04.01
Австралийский ДСТ 2013 начало 2013.10.06 - конец 2013.04.07
Австралийский ДСТ 2014 начало 2014.10.05 - конец 2014.04.06
Австралийский ДСТ 2015 начало 2015.10.04 - конец 2015.04.05
Австралийский ДСТ 2016 начало 2016.10.02 - конец 2016.04.03
Австралийский ДСТ 2017 начало 2017.10.01 - конец 2017.04.02
Австралийский ДСТ 2018 начало 2018.10.07 - конец 2018.04.01
Австралийский ДСТ 2019 начало 2019.10.06 - конец 2019.04.07
ДСТ Австралии 2020 начало 2020.10.04 - конец 2020.04.05
ДСТ Австралии 2021 начало 2021.10.03 - конец 2021.04.04
ДСТ Австралии 2022 начало 2022.10.02 - конец 2022.04.03
ДСТ Австралии 2023 начало 2023.10.01 - конец 2023.04.02
ДСТ Австралии 2024 начало 2024.10.06 - конец 2024.04.07
Австралийский ДСТ 2025 начало 2025.10.05 - конец 2025.04.06
Австралийский ДСТ 2026 начало 2026.10.04 - конец 2026.04.05
Австралийский ДСТ 2027 начало 2027.10.03 - конец 2027.04.04
Австралийский ДСТ 2028 начало 2028.10.01 - конец 2028.04.02
Австралийский ДСТ 2029 начало 2029.10.07 - конец 2029.04.01
Я нашел проблему: я пропустил проверку:
В начале функции void checkTimeOffset(datetime tB) я поставил галочку:
И это я должен был изменить на:
Я обновлю его ...
В начале функции void checkTimeOffset(datetime tB) я поместил проверку:
И это я должен был изменить на:
Я обновлю его ...
Привет, Карл, к сожалению, изменение соответствующего кода не устраняет проблему. Я также обнаружил, что московское время отличается от универсального.
Версия DealingWithTime.mqh v. 1.01 из статьи "Работа со временем (часть 2): Функции" ( https://www.mql5.com/en/articles/9929 ) больше не работает, потому что MQ изменила поведение функции CopyTime() через некоторое время после публикации этой статьи. Теперь эта функция больше не возвращает значения будущего времени, если они больше, чем TimeCurrent(), указанные для параметров start_time и/или stop_time. Вместо этого возвращается время открытия последнего, текущего бара как наибольшее возможное значение.
Поскольку конец FX-сессии определялся таким образом, в частности, для определения смещения времени брокера, это приводит к некорректным значениям!
Этот расчет был изменен в версии 2.03. Эта новая версия теперь доступна в CodeBase здесь: https://www.mql5.com/en/code/45287.
Расчет перехода на другое время также был полностью изменен, так что сложные моменты перехода на другое время из Сиднея (Австралия) в 1970-е годы теперь также охвачены.
Прилагается также таблица DST 1975 - 2030.xlsx в виде zip-файла со всеми изменениями времени с 70-х годов, чтобы каждый мог проверить правильность работы формул, вот пример серии из таблицы:
01.01.1982 - зимнее время в США (DST==0), следующий переход - 25.04.1982, последнее (25-е число месяца) воскресенье апреля (4). Таблица уже отсортирована по географическому часовому поясу (столбец A), затем по часовому поясу года (столбец L, spr=spring, aut=autumn,) и, наконец, по дате запроса (столбец C). Таблица может быть создана автоматически с помощью прилагаемого эксперта (скрипт не может быть запущен в режиме отладки). Test_DST 2.mq5, если вы запустите его в режиме отладки и скопируете строки журнала в отладчике и вставите их в таблицу программы; разделителем ячеек будет символ пробела.
Также появилась новая простая функция SecTillClose(), которая выдает оставшееся время в секундах (валюта времени в MQ) до закрытия рынка Форекс - без CopyTime(). Это интересно для тех, кто хочет закрыть свои позиции до выходных или не хочет открывать новую позицию в определенный период до выходных.
Входящий в комплект индикатор DealingWithTime_TestIndi.mq5 показывает в качестве комментария на графике не только летнее/зимнее время Европы, США и Австралии (Сидней), но и текущее время, а также разницу во времени различных городов. Здесь же вы найдете таблицу с различными значениями местного времени для крупных городов, например, для сравнения с: https://www.timeanddate.com/worldclock/. Таким образом, вы можете проверить значения в любое время. Этот индикатор также показывает, как определяются и используются эти значения (что из чего вычитается или к чему прибавляется), чтобы было проще использовать его самостоятельно - копировать и вставить, самая быстрая форма программирования.
Последние две строки также показывают последнюю секунду текущей FX-сессии и оставшееся время в часах (проще судить) и секундах. Если сессия FX в Нью-Йорке закрывается в 17:00 по местному времени по пятницам, то не существует действительного бара с временем открытия в 17:00 по нью-йоркскому времени. Поэтому в этой функции вычитается 1 секунда, чтобы получить время открытия последнего бара по времени брокера. Однако некоторые брокеры завершают свою FX-сессию на несколько минут раньше, переставая предоставлять цены и принимать торговые ордера.
Версия DealingWithTime.mqh v. 1.01 из статьи Dealing with Time (Part 2): Функции ( https://www.mql5.com/ru/articles/9929 ) перестала работать, потому что MQ изменила поведение функции CopyTime() через некоторое время после публикации этой статьи. Теперь эта функция больше не возвращает значения будущего времени, если они больше, чем TimeCurrent(), указанные для параметров start_time и/или stop_time. Вместо этого возвращается время открытия последнего, текущего бара как наибольшее возможное значение.
Поскольку конец FX-сессии определялся таким образом для определения смещения времени брокера, теперь это приводит к неверным значениям!
Этот расчет был изменен в версии 2.03. Эта версия теперь доступна в CodeBase здесь: https://www.mql5.com/ru/code/45287.
Кроме того, был полностью изменен расчет изменения времени, так что теперь охвачены сложные моменты изменения времени от Сиднея (Австралия) до 70-х годов.
Также прилагается таблица DST 1975 - 2030.xlsx в виде zip-файла со всеми изменениями времени с 70-х годов, чтобы каждый мог проверить правильность работы формул, вот пример серии из таблицы:
1 января 1982 года - стандартное время в США (DST==0), а следующий переход будет 25 апреля 1982 года, в последнее (25-е число месяца) воскресенье апреля (4). Таблица уже отсортирована по географическому часовому поясу (столбец A), затем по часовому поясу года (столбец L, spr=spring, aut=autumn,) и, наконец, по дате запроса (столбец C). Таблица может быть создана автоматически с помощью прилагаемого эксперта (скрипт не может быть запущен в режиме отладки). Test_DST 2.mq5, если вы запустите его в режиме отладки и скопируете строки журнала в отладчике и вставите их в электронную таблицу; разделителем ячеек будет пробел.
Также появилась новая простая функция SecTillClose(), которая выдает оставшееся время в секундах (валюта времени в MQ) до закрытия рынка форекс - без CopyTime(). Это интересно для тех, кто хочет закрыть свои позиции до выходных или не хочет открывать новую позицию в определенный период до выходных.
Входящий в комплект индикатор DealingWithTime_TestIndi.mq5 в виде комментария к графику показывает не только переход на летнее время в Европе, США и Австралии (Сидней), но и текущее время и разницу во времени разных городов. Здесь же вы можете найти таблицу с разным местным временем крупных городов для сравнения: https://www.timeanddate.com/worldclock/. Таким образом, вы можете проверить значения в любое время. Этот индикатор также показывает, как определяются и используются эти значения (что из чего вычитается или прибавляется), что облегчает самостоятельное использование - копирование и вставка, самая быстрая форма программирования.
Последние две строки также показывают последнюю секунду текущей FX-сессии и оставшееся время в часах (что легче оценить) и в секундах. В Нью-Йорке, когда сессия FX закрывается в 17:00 по местному времени в пятницу, нет ни одного действующего бара, открытого в 17:00 по нью-йоркскому времени. Поэтому в этой функции 1 секунда вычитается, чтобы получить время открытия последнего бара по времени брокера. Однако некоторые брокеры завершают свою FX-сессию на несколько минут раньше, переставая предоставлять цены и принимать торговые ордера.
Версия DealingWithTime.mqh v. 1.01 из статьи "Управление расписанием (часть 2): Функции" ( https://www.mql5.com/ru/articles/9929 ) перестала работать, потому что MetaQuotes изменила поведение CopyTime(), и теперь она перестала работать через некоторое время после публикации этой статьи. Теперь эта функция больше не возвращает значения будущего времени, если они больше, чем TimeCurrent(), указанный для параметров start_time и/или stop_time. Вместо этого в качестве наибольшего возможного значения возвращается время открытия последнего текущего бара.
Поскольку конец FX-сессии определялся таким образом для определения временного смещения брокера, теперь это приводит к неверным значениям!
Этот расчет был изменен в версии 2.03. Эта версия теперь доступна на CodeBase здесь: https://www.mql5.com/en/code/45287.
Кроме того, был полностью изменен расчет изменения времени, так что сложное время изменения времени от Сиднея (Австралия) до 1970-х годов теперь покрыто.
Также прилагается таблица DST 1975 - 2030.xlsx в виде zip-файла со всеми изменениями времени с 1970-х годов, чтобы каждый мог проверить правильность работы формул, вот несколько примеров из таблицы:
1 января 1982 года - стандартное время в США (DST==0), а следующее изменение будет 25 апреля 1982 года, в последнее (25-е число месяца) воскресенье апреля (4). Таблица уже отсортирована по географическому часовому поясу (столбец A), затем по часовому поясу года (столбец L, spr=весна, aut=осень) и, наконец, по дате запроса (столбец C). Таблица может быть создана автоматически с помощью прилагаемого эксперта (скрипт не может быть запущен в режиме отладки). Test_DST 2.mq5, если запустить его в режиме отладки, скопировать строки журнала в отладчике и вставить их в электронную таблицу; разделителем ячеек будет пробел.
Кроме того, появилась новая простая функция SecTillClose(), которая выдает время, оставшееся в секундах (валюта времени MetaQuotes) до закрытия рынка Форекс, без CopyTime(). Это интересно для тех, кто хочет закрыть свои позиции до выходных или не хочет открывать новую позицию в определенный период до выходных.
Входящий в комплект индикатор DealingWithTime_TestIndi.mq5 в виде комментария к графику показывает не только переход на летнее время в Европе, США и Австралии (Сидней), но и текущее время, а также разницу во времени разных городов. Здесь же вы можете найти таблицу с разным местным временем основных городов для сравнения: https://www.timeanddate.com/worldclock/. Таким образом, вы можете проверить значения в любое время. Этот индикатор также показывает, как определяются и используются эти значения (что вы вычитаете или прибавляете), что делает его простым в использовании: копируй и вставляй - самый быстрый способ программирования.
Последние две строки также показывают последнюю секунду текущей FX-сессии и оставшееся время в часах (что проще для восприятия) и секундах. В Нью-Йорке, когда сессия FX закрывается в 17:00 по местному времени в пятницу, нет ни одного действующего бара, открытого в 17:00 по нью-йоркскому времени. Поэтому в этой функции 1 секунда вычитается, чтобы получить время открытия последнего бара по времени брокера. Однако некоторые брокеры завершают свою валютную сессию на несколько минут раньше и больше не предоставляют цены и не принимают торговые ордера.