смещение часового пояса сервера

 

здравствуйте 

прошу поделиться кодом скрипта смещения часового пояса сервера брокера для МТ4 и МТ5

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

нужен исходник, одну из работ нашел в маркете в бесплатном доступе, но нет исходника, не предоставляется,

я пользуюсь только исходниками и предварительно смотрю что внутри кода, поэтому программные файлы типа ex мне не подходят

можно код выложить на форум или отправить через личное сообщение

заранее спасибо, если есть возможность поделиться кодом

 
Aleksandr:

здравствуйте 

прошу поделиться кодом скрипта смещения часового пояса сервера брокера для МТ4 и МТ5

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

нужен исходник, одну из работ нашел в маркете в бесплатном доступе, но нет исходника, не предоставляется,

я пользуюсь только исходниками и предварительно смотрю что внутри кода, поэтому программные файлы типа ex мне не подходят

можно код выложить на форум или отправить через личное сообщение

заранее спасибо, если есть возможность поделиться кодом

   serverOffset=TimeGMT()-TimeCurrent();  // GMT смещение времени сервера
   localOffset=TimeGMT()-TimeLocal();     // GMT смещение локального времени


из https://www.mql5.com/ru/blogs/post/677209 , а там насколько помню, из обсуждений TimeGMT()

Интервальный таймер
Интервальный таймер
  • 2016.07.29
  • Maxim Kuznetsov
  • www.mql5.com
В общее достояние - ОО реализация интервальных таймеров для MT4. Из фич - произвольное кол-во таймеров, привязка к реальному времени, возможность работы в тестере. Набросано по мотивам https://www...
 
Maxim Kuznetsov:
   serverOffset=TimeGMT()-TimeCurrent();  // GMT смещение времени сервера
   localOffset=TimeGMT()-TimeLocal();     // GMT смещение локального времени


из https://www.mql5.com/ru/blogs/post/677209 , а там насколько помню, из обсуждений TimeGMT()

Только уточнить, что вот это:

serverOffset=TimeGMT()-TimeCurrent();  // GMT смещение времени сервера

нужно вставлять в OnTick() и при условии, что OnTick() не вызывается другими функциями кода. Иначе будем получать неправильный результат в выходные, т. к. TimeCurrent() указывает в это время на последний тик пятницы. Есть риск получить serverOffset больше 24-х часов.)))

 

Скрипт, который наглядно выводит значения всех функций, которые работают со временем:

//+------------------------------------------------------------------+
//|                                                     TimeXXXX.mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property description "Скрипт выводит все функции, работающие со временем"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TimeCurrent: ",TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS));
   Print("TimeCurrent - возращает последнее известное время сервера (время прихода последней котировки) в формате datetime"+"\n");

   Print("TimeTradeServer: ",TimeToString(TimeTradeServer(),TIME_DATE|TIME_MINUTES|TIME_SECONDS));
   Print("TimeTradeServer - возвращает расчетное текущее время торгового сервера"+"\n");

   Print("TimeLocal: ",TimeToString(TimeLocal(),TIME_DATE|TIME_MINUTES|TIME_SECONDS));
   Print("TimeLocal - возвращает локальное компьютерное время в формате datetime"+"\n");

   Print("TimeGMT: ",TimeToString(TimeGMT(),TIME_DATE|TIME_MINUTES|TIME_SECONDS));
   Print("TimeGMT - время GMT формате datetime с учетом перехода на зимнее или летнее время по локальному времени компьютера, на котором запущен клиентский терминал"+"\n");

   Print("TimeDaylightSavings: ",IntegerToString(TimeDaylightSavings()));
   Print("TimeDaylightSavings - возвращает поправку на летнее время в секундах, если был произведен переход на летнее время"+"\n");

   Print("TimeGMTOffset: ",IntegerToString(TimeGMTOffset()));
   Print("TimeGMTOffset - возвращает текущую разницу между временем GMT и локальным временем компьютера в секундах с учетом перехода на зимнее или летнее время"+"\n");

  }
//+------------------------------------------------------------------+
Файлы:
TimeXXXX.mq5  5 kb
 

Спасибо, Владимир, Игорь, Максим.... Под МТ5 полагаю подойдет код Владимира.

Владимир, под МТ4 не перепишите выложенный код. В МТ4 удобнее работать. 

 
Aleksandr:

Спасибо, Владимир, Игорь, Максим.... Под МТ5 полагаю подойдет код Владимира.

Владимир, под МТ4 не перепишите выложенный код. В МТ4 удобнее работать. 

Нет. Я не комментирую МТ4. Только МТ5, только лучшее.
 

Владимир, а куда сдвиг в минутах или часах по времени прописывать? В вашем коде не вижу настроек.

Имею часть кода под МТ4, ранее было выложено на одном из форумов

Здесь в коде вижу настройки, которые можно менять. Может восстановить этот скрипт?


}
int start()
{
//-----------------------------------------------------------------------------------------------//
//Variables
datetime time_local  = 0; //Локальное время на компьютере пользователя
datetime time_server = 0; //Время сервера (текушее время на торговом сервере)
datetime time_gmt    = 0; //Время GMT (на основе настроек ПК пользователя)

int time_ds   = 0; //Поправка на летнее время в секундах
int time_gmto = 0; //Разница между GMT и локальным временем в секундах
//-----------------------------------------------------------------------------------------------//
time_local  = TimeLocal();
time_server = TimeCurrent();
time_gmt    = TimeGMT();
time_ds   = TimeDaylightSavings();
time_gmto = TimeGMTOffset();

PrintFormat("Time: Local - %s, Server - %s, GMT - %s",(string)time_local,(string)time_server,(string)time_gmt);
PrintFormat("Offset of time server %i (minutes)",(time_server-time_gmt)/60);

  if(time_gmto>0)
  {
  PrintFormat("Daylight Savings - %i, GMT Offset - %i",time_ds,time_gmto);
  }

//-----------------------------------------------------------------------------------------------//
return(0);
 
Aleksandr:

Владимир, а куда сдвиг в минутах или часах по времени прописывать? В вашем коде не вижу настроек.

Имею часть кода под МТ4, ранее было выложено на одном из форумов

Здесь в коде вижу настройки, которые можно менять. Может восстановить этот скрипт?


Пожалуйста, код вставляйте правильно: Правильно вставляем код на форуме (Ваше сообщение я исправил и вставил код правильно).
 
Спасибо, Владимир
 

Мне необходим скрипт вроде период конвертора МТ4 с настройками

1) - таймфрейм и 2) - настройки сдвига баров по времени при построения на этом ТФ

Не понимаю совершенно выложенный код. Буду ставить МТ5, смотреть.

 

 индикатор

Файлы:
GMToffset.mq4  3 kb
Причина обращения: