Индикатор торговых сессий на основе базы данных TZ Data.

Техническое задание

(Вопрос для специалиста в языке MQL4, компетентного разобраться в механизме задействования в коде индикатора – базы данных tzdata.)

Предпосылки к разработке кода индикатора.

Точность и корректность работы большинства существующих индикаторов, предназначенных для сигнализации о времени наступления событий, зависит от правильности и корректности их временнЫх настроек. Подавляющее большинство т.н. «mql-инструментов», призванных полноценно решать эту задачу, так щедро разбросанных в форумных топиках, равно как и в Code Base всем известного ресурса, являются не более чем – разрекламированными форумчанами бестолковыми пародиями, в 95% случаев неспособными корректно отобразить даже временной диапазон торговых сессий российских бирж. А что уж говорить о таких площадках, как, например - Bombay Stock Exchange, Bovespa или Tadawul… Если речь идет о коррекции времени наступления событий в рамках одного часового пояса, то в этом случае нет никаких сложностей. Два раза в год (в момент перехода с/на летнего/зимнего времени), в настройки времени индикатора вносятся соответствующие коррективы (как правило, сводящиеся к указанию времени, соответствующего текущему времени сервера брокера/ДЦ), и индикатор продолжает свою исправную и точную работу. Если же речь идет о коррекции времени наступления событий в рамках нескольких (двух, трех и более) часовых поясов, механизм корректировки остается тот же, но добавляется комплекс поисковых, сверочных и коррекционных мероприятий, направленных на установление и сверку точного текущего времени (относительно UTC) в зонах отображаемых событий с временем в котором работает индикатор (серверное время брокера/ДЦ). Помимо этого, для корректной работы индикатора, в настройки необходимо внести еще и соответствующие поправки (DST/offset и т.д.). В противном случае, показания индикатора будут ошибочны. Таким образом, чем больше количество временных зон (поясов), события в которых отображает индикатор, тем более громоздкой и обременительной становится настройка/сверка/изменение параметров времени в индикаторе. Предварительное рассуждение заключено в том, что для сведЕния громоздкой настройки индикатора к простому указанию времени сервера брокера/ДЦ, следует использовать в коде индикатора – базу данных tzdata, которая предназначена для автоматического учета разницы временнЫх зон и смещения времени относительно DST, что и является непосредственным решением задачи.

Задача.

Требуется разработка кода индикатора для MetaTrader 4. Код должен представлять из себя - алгоритм расчета времени согласно данных tzdata, которые будут учитывать унифицированное именование часовых поясов и смещение локального времени в различных регионах относительно универсального времени UTC. Конечное назначение индикатора – сигнализация о времени открытия и закрытия торговых площадок путем нанесения соответствующих линий в подокне графика инструмента в терминале MT4.

Код индикатора должен учитывать:

   - UTC-таймзону сервера брокера,

   - UTC-offset (смещение) таймзон городов бирж,

   - время (разницу во времени) DST.

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

Конечное обслуживание индикатора (пользование) должно заключаться в указании/корректировке во внешних переменных – времени открытия/закрытия бирж и установке временной зоны брокера/ДЦ. 

Описание репозитория tzdata:  http://habrahabr.ru/post/130401/

Страница tzdata на Википедии:  https://ru.wikipedia.org/wiki/Tz_database

Ссылки на базу tzdata (IANA TimeZoneDatabase):  http://www.iana.org/time-zones

Пример задействования базы tzdata:  http://stswoon.blogspot.ru/2014/02/time-zones.html

P.S.: ТЗ написано с детальной проработкой многих нюансов. Но, чтобы не бежать впереди паровоза, на данный момент требуется компетентный ответ специалиста на вопросы:

     1. Возможно ли задействование данных базы tzdata в MQL4-коде индикатора – в принципе?

     2. Данные базы tzdata обновляются несколько раз в год. В крайней степени удобно было бы - подразумевать автоматический импорт обновленных данных из базы tzdata в код индикатора. Насколько это технически возможно и осуществимо – вопрос…

     3. В случае невозможности автоматического импорта, требуется оценка степени сложности задействования данных базы tzdata в коде индикатора – простое копирование, конвертация, включение dll или?…

     4. Как вариант для обсуждения – написание кода приложения *.exe (или?), которое выполняло бы все поставленные задачи. 

Недостатком такого варианта будет отсутствие наглядности (вряд ли, удастся транслировать в подокно графика инструмента в MT4 – данные из стороннего приложения).

Если с точки зрения специалиста, не будут выявлены существенные сложности, как в реализации идеи, так и в дальнейшей работе индикатора – рассматриваем ТЗ детально.

Откликнулись

1
Разработчик 1
Оценка
(34)
Проекты
55
31%
Арбитраж
8
0% / 63%
Просрочено
13
24%
Свободен
Опубликовал: 22 статьи, 1 пример
2
Разработчик 2
Оценка
(71)
Проекты
83
39%
Арбитраж
3
0% / 0%
Просрочено
1
1%
Свободен
Опубликовал: 7 примеров
3
Разработчик 3
Оценка
(40)
Проекты
106
52%
Арбитраж
17
12% / 65%
Просрочено
25
24%
Свободен
4
Разработчик 4
Оценка
Проекты
1
0%
Арбитраж
0
Просрочено
1
100%
Свободен
5
Разработчик 5
Оценка
(807)
Проекты
1127
43%
Арбитраж
47
49% / 23%
Просрочено
84
7%
Свободен
6
Разработчик 6
Оценка
Проекты
3
33%
Арбитраж
3
0% / 100%
Просрочено
1
33%
Свободен
7
Разработчик 7
Оценка
(80)
Проекты
117
67%
Арбитраж
16
25% / 13%
Просрочено
12
10%
Свободен
Опубликовал: 2 примера
8
Разработчик 8
Оценка
(49)
Проекты
134
27%
Арбитраж
62
13% / 53%
Просрочено
58
43%
Свободен
Опубликовал: 351 статью, 1 пример
9
Разработчик 9
Оценка
(15)
Проекты
37
62%
Арбитраж
1
0% / 100%
Просрочено
1
3%
Свободен
Опубликовал: 1 статью, 29 примеров

Информация о проекте

Бюджет
100+ USD
Сроки выполнения
от 7 дн.