TimeTradeServer аналог для МТ4 - страница 6

 
fxsaber:

Проверочный код

Результат на машине, у которой тот же GMT, что и в Альпари.

Проверил 

Все правильно показывает.

Проверка проведена неправильно. И вот почему:

  1. Вы использовали не тот сервер, который я Вам дал (зачем вообще Вы просили эти данные, если не использовали?)
  2. В коде фигурирует значение 2. Это как раз и есть то число, которое мы ищем. Поэтому все и сходится. Уберите это число и получите смещение 0. То есть функция, по сути, ничего не делает, всегда возвращая 0.
Попробуйте этот код (с двойкой) запустить на сервере, у которого смещение не равно GMT+2. Все сломается.
 
Ihor Herasko:

Проверка проведена неправильно. И вот почему:

  1. Вы использовали не тот сервер, который я Вам дал (зачем вообще Вы просили эти данные, если не использовали?)
  2. В коде фигурирует значение 2. Это как раз и есть то число, которое мы ищем. Поэтому все и сходится. Уберите это число и получите смещение 0. То есть функция, по сути, ничего не делает, всегда возвращая 0.
Попробуйте этот код (с двойкой) запустить на сервере, у которого смещение не равно GMT+2. Все сломается.

Если в предыдущем посте меня можно трактовать иначе, чем я имел в виду, то извиняюсь.

Результат был получен на Вашем инвесторском счете в Альпари. Так же был проверен AMP-сервер, где смещение другое.

 
fxsaber:

Если в предыдущем посте меня можно трактовать иначе, чем я имел в виду, то извиняюсь.

Результат был получен на Вашем инвесторском счете в Альпари. Так же был проверен AMP-сервер, где смещение другое.

Действительно, не понял, проверяли ли Вы на Альпари. Если проверили, то пункт 1 снимается.

Вернемся к пункту 2. Для чего значение 2 в коде? Для чего оно, как не для подстраивания к текущему смещению, которое и равно именно 2-ум часам? Ведь все, что до нее, всегда и везде будет давать 0. То есть никакого смысла в выражении:

MathRound((double)MathMin(Sunday - DAY - GetBarTime(Sunday), Sunday + DAY - GetBarTime(Sunday, true)) / HOUR)

нет.

 

Удалось найти сервер, который имеет другое смещение GMT (Нью-Йорк).

На нем скрипт окончательно сходит с ума:

0       22:32:27.349    Test EURUSD,M1: TimeGMT() = 2019.12.03 20:32:27
0       22:32:27.349    Test EURUSD,M1: TimeServerGMT() = 2019.12.01 08:32:27

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

Кому интересно проверить, вот данные счета:

Имя сервера: BMFN-DemoCFD

Логин: 33425755

Пароль: Invest111

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Dmitry Fedoseev:

панятна

Ну, вы, мужики, даете. 

 
Alexandr Gavrilin:

я открою страшную тайну, не каждый день может закончиться в 23:59 :-) , а во сколько он закончиться мы можем заранее и не знать. Например в предпраздничные дни и в пятницу.

закрой для себя страшные тайны, а то как-бы чего в ночи не вышло :-)

и читайте внимательно то что написано - золото открывается по амстердаму. Нашёл открытие золота - получил привязку по времени.

то-же самое с любыми не-круглосуточными активами - у них есть заранее известное расписание/привязка к месту и времени. Можешь к чикагским индексам привязаться, на вкус и цвет

 
Ihor Herasko:

Удалось найти сервер, который имеет другое смещение GMT (Нью-Йорк).

На нем скрипт окончательно сходит с ума:

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

Кому интересно проверить, вот данные счета:

Имя сервера: BMFN-DemoCFD

Логин: 33425755

Пароль: Invest111

Проверил на этом счете. Все идеально показывает.

 
Maxim Kuznetsov:

закрой для себя страшные тайны, а то как-бы чего в ночи не вышло :-)

и читайте внимательно то что написано - золото открывается по амстердаму. Нашёл открытие золота - получил привязку по времени.

то-же самое с любыми не-круглосуточными активами - у них есть заранее известное расписание/привязка к месту и времени. Можешь к чикагским индексам привязаться, на вкус и цвет

Хорошо, задам глупый вопрос.

Каким образом узнать, что наступила суббота на сервере брокера? :-) не пятница, ни воскресенье, а именно суббота. При этом торговля идет по всем доступным инструментам и всякие костыли ввиде давайте запомним время и сравним его чуть позже не годится, время не тикает когда наступает у брокера суббота. При этом в воскресенье рынок у него может открыться раньше, и никакие настройки торговых сессии у брокера не помогут определить, потому что время не тикает.


Если есть толковые решение будет интересно. 

Время брокера не всегда может совпадать с временем gmt :-)

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

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexandr Gavrilin:

Если есть толковые решение будет интересно.

Решение было в ветке.

 
Vitaly Muzichenko:

Работает, проверил на 3-х разных. Проверял в мт5

Это возможно не то, что нужно ТС, но может что и возьмёт с неё 

проверю вашу функцию в субботу.

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