Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Увеличивай свой рейтинг. Выполняй заказы в сервисе Фриланс!
zebra
267
zebra 2012.01.16 04:36 
Подскажите, пожалуйста, есть ли в MQL4 функция с помощью которой можно узнать время терминала, например, EET, GMT или какое-то другое?
Vadim Zhunko
5219
Vadim Zhunko 2012.01.16 13:40  
zebra
267
zebra 2012.01.16 15:51  
Спасибо, эти функции мне известны, но мне нужно получить не само значение времени, а часовой пояс к которому привязаны временные данные.
Сергей
728
Сергей 2012.01.16 16:08  
Такой функции в MQL4 нет. Именно поэтому, ночные скальперы делаются с ручным вводом значения параметра GMT.
Андрей
1890
Андрей 2012.01.16 17:07  
Ну, вообще-то, локальное время и его GMT известно,
имея текущее время сервера- вычислить его GMT- тривиально.
IgorM М
4801
IgorM М 2012.01.16 17:08  
может этот топик поможет: https://www.mql5.com/ru/forum/123222
zebra
267
zebra 2012.01.16 18:42  
спасибо, коллеги, буду разбираться.
Nefedov Kirill
2889
Nefedov Kirill 2012.01.16 19:40  
Zebra:
Подскажите, пожалуйста, есть ли в MQL4 функция с помощью которой можно узнать время терминала, например, EET, GMT или какое-то другое?

Zёbra, без WinAPI эту задачу не решить. Вот писал тут сейчас для своего проекта... получите и распишитесь как говорится...

#import "kernel32.dll"
int GetTimeZoneInformation(int& TZInfoArray[]);
#import


int start(){
   int TZInfoArray[43]; int dst = GetTimeZoneInformation(TZInfoArray);
//----
   int TimeZone = TZInfoArray[0];          // часовой пояс на основе локальных данных DLL (разница с GMT)
   int SummerTime = dst-1;                 // переход на зимнее/летнее время: 1 = лето, 0 = зима
 
   datetime Broker = TimeCurrent();        // переменная времени BROKER
   Print("Brokers = ",TimeToStr(Broker,TIME_DATE|TIME_SECONDS));
   datetime Local = TimeLocal();           // переменная времени LOCAL
   Print("Local = ",TimeToStr(Local,TIME_DATE|TIME_SECONDS));
   datetime GMT = Local + (TimeZone * 60);   // переменная времени GMT
   Print("GMT = ",TimeToStr(GMT,TIME_DATE|TIME_SECONDS));
//----
   return(0);
  }

В 2-х словах, если локальное время на компе выбрано не правильно, т.е. не та зона, то естественно работать будет не правильно. Как в винде синхронизировать время, выставить свою тайм зону написано в яшке и гугле.

Вдогонку для экспериментов: http://www.autoforex.ru/articles/timezones/timezones.php

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий