Ошибки, баги, вопросы - страница 40

 
Interesting:

> Интересует не способ как обойти этот баг, а исправление самого бага как такового. Чтоб небыло его вообще.

Не сочтите за ГРУБОСТЬ и НАЕЗД, но указав на то что это БАГ Вы меня просто убили...

По сути вопроса (предложения):

Это Вам не MQL4, и Period() не представляет явно количество секунд/минут в ТФ.

Чтобы получить количество секунд в периоде нужно воспользоваться функцией PeriodSeconds.


А если Вы всеж попытаетесь выразить Period в виде числа, то в итоге получите всего-то числовое значение соответствующее идентификатору данного периода в перечислении ENUM_TIMEFRAMES.

Ну, открываем справку по функции Period(). B что мы видим?

Возвращает значение таймфрейма текущего графика.

ENUM_TIMEFRAMES  Period();

 

Возвращаемое значение

Содержимое переменной _Period, в которой хранится значение таймфрейма текущего графика. Значение может быть одним из значений перечисления ENUM_TIMEFRAMES.

 Щёлкаем по ссылке ENUM_TIMEFRAMES - открывается таблица, в которой перечислены периоды.

PERIOD_H1  1 Час

Всё как и в MQL4. Причём тут число 16386?

Метаквотесы в своём репертуаре - справку пишут не для пользователей, а используют как записную книжку для самих себя. Им ясно что к чему, а что возникнет в мозгу пользователя, при прочтении ихнего текста - им до лампочки. Видать нет у них профессионального редактора, который владел бы элементарной стилистикой русского языка (хотя бы на уровне букваря). :(

Устал я просто уже при освоении MQL4 от безграмотности изложения материала метаквотесами. Чувствую в MQL5 снова придётся идти через пень-колоду. 

 
drknn:

Ну, открываем справку по функции Period(). B что мы видим?

 Щёлкаем по ссылке ENUM_TIMEFRAMES - открывается таблица, в которой перечислены периоды.

PERIOD_H1  1 Час

Причём тут число 16386?

Метаквотесы в своём репертуаре - справку пишут не для пользователей, а используют как записную книжку для самих себя. Им ясно что к чему, а что возникнет в мозгу пользователя, при прочтении ихнего текста - им до лампочки. Видать нет у них профессионального редактора, который владел бы элементарной стилистикой русского языка (хотя бы на уровне букваря). :(

А вот при том, что PERIOD_H1 в ENUM_TIMEFRAMES имеет кодовое значение 16385, а раньше в качестве этого значения выступало 60 (по числу минут).

Кализии подобного рода возникают в следствии того, что MQ пока не опубликовали коды для отдельных значений нумераторов (идентификаторов), как было это сделано в справке по MQL4.

Я лично (может и кто другой тоже) просил указывать эти КОДЫ (значения) в справке, чего пока не сделано.

PS

Тут такое дело - Если вы откроете справку по функции Period() в MQL4 и MQL5 то вот что сразу бросится в глаза (по крайней мере должно):

MQL4 - Возвращает значение числа минут периода для текущего графика.

MQL5 - Возвращает значение таймфрейма текущего графика.

Этого достаточно для обычных разработчиков, а для тех кто хочет работать на более низком уровне (к примеру передать информацию в DLL или создать библиотеку для миграции) нужно знать числовой КОД.

В  MQL4 этот код соответствует числу секунд (поскольку возвращается число секунд), а вот в MQL5 совсем другие правила...

Периоды графиков - Документация на MQL4
  • docs.mql4.com
Периоды графиков - Документация на MQL4
 

Сводная таблица по значениям кодов для Period() в MQL4 и MQL5 будет выглядеть примерно так:


Идентификатор
Код MQL 5
Код MQL 4
Описание
  PERIOD_CURRENT / NULL / Ноль  
0
0
  Текущий период 
  PERIOD_M11
1
  1 минута
  PERIOD_M22
Х
  2 минуты
  PERIOD_M33
Х  3 минуты
  PERIOD_M44
Х  4 минуты
  PERIOD_M55
5
  5 минут
  PERIOD_M66
Х  6 минут
  PERIOD_M1010
Х  10 минут
  PERIOD_M1212
Х  12 минут
  PERIOD_M1515
15
  15 минут
  PERIOD_M2020
Х  20 минут
  PERIOD_M3030
30
  30 минут
  PERIOD_H116385
60
  1 час
  PERIOD_H216386Х  2 часа
  PERIOD_H316387Х  2 часа
  PERIOD_H416388240  4 часа
  PERIOD_H616390Х  6 часов
  PERIOD_H816392Х  8 часов
  PERIOD_H1216396Х  12 часов
  PERIOD_D1164081440  1 день
  PERIOD_W132769
10080  1 неделя
  PERIOD_MN1
49153
 43200  1 месяц


PS

Надеюсь, что теперь все будет предельно понятно... :)

Периоды графиков - Документация на MQL4
  • docs.mql4.com
Периоды графиков - Документация на MQL4
 
Interesting:

Сводная таблица по значением кодов для Period() в MQL4 и MQL5 будет выглядеть примерно так:

>

PS

Надеюсь, что теперь все будет предельно понятно... :)

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

А, Вы про это... :)
 
Interesting:

Сводная таблица по значениям кодов для Period() в MQL4 и MQL5 будет выглядеть примерно так:

PS

Надеюсь, что теперь все будет предельно понятно... :)

Я знаю формальную логику и отличия в терминах бросились в глаза сразу. Дело в том, что чтение справки по языку MQL5 ясности во многих вопросах не даёт. Понятно, что метаквотесы выбросили в общий доступ терминал для того, чтоб привлечь на свою сторону группу бетта-тестеров - этот ход экономит им время и деньги. Но вот отдать пользователям спраквку, в которой отсутствует ясность - это большущий промах с их стороны. Ну например, открываем самый главный её раздел "Переход с MQL4":

Предопределенные переменные

В MQL5 нет таких предопределенных переменных как Ask, Bid, Bars. Переменные Digits и Point немного изменились в написании, как показано в таблице.

Таблица не даёт информации по Ask, Bid и Bars. Попытка воспользоваться поиском того же слова Ask приводит к тому, что человек сталкивается с совершенно непонятной ему конструкцией запроса последних цен. Разработчик  не мог предвидеть это ещё тогда, на этапе печатания этого участка справки? Чушь. Почему так могло произойти? Причина одна - отсутствие системности - то есть отсутствие чёткого плана будущего сочинения. Скорее всего, что справку писали вразброс, потом просто склеили отдельные куски и вот вам "справка". Это ни куда не годится. Ни кому не нравится читать чужие черновики!

Ладно, пусть это даже черновик - неужели трудно было ниписать иначе, например, вот так:

Предопределенные переменные

В MQL5 нет таких предопределенных переменных как Ask, Bid, Bars. Получение этих значений в языке MQL5 происходит по другим правилам. Чтобы чётко представлять себе как это делается, необходимо ознакомиться с разделами "111", "2222" и "3333".

Переменные Digits и Point немного изменились в написании, как показано в таблице.

Всё!!! Такой простой ход и ТАКАЯ экономия времени и сил.

Чтение справки по MQL5 больше похоже на блуждание по дремучему лесу без карты местности, без компаса и без возможности залезти на дерево и сориентироваться. Какое возникет желание? Правильно - не входить в такой лес вообще. Разработчик от и до знает этот лес. Его нежелание вручить пользователю путеводитель вызывает по меньшей мере недоумение, по-большей - отвращение.

Когда я читаю ответы разработчиков типа: "У нас сейчас более важные, чем эта, задачи", - так и хочется спросить, мол, какого же лешего вы тогда выложили столь грязносделанную работу? Это же минус к репутации. Ни лучше было бы сначала выверить всё от и до, отладить, отшифовать как следует и не мучить пользователей своими черновиками?

Нет слов. Метатрейдер 4 уже сколько лет используется? Правильно, много. А нормального учебника по языку MQL4 до сих пор нет. Был один активист - попытался сделать такой учебник и потерпел неудачу. Он трудолюбивый человек и только. Его книга не тянет на нормальный учебник. За неимением лучшего сие творение и лежит сейчас на сайте как учебник. Почему на учебник оно не тянет? Да всё просто - читают начинающие эту книжку, потом выходят на форум и такую фигню спрашивают, что диву даёшься. Был бы нормальный учебник, такого бы не происходило - читатель получал бы яснось и видел бы обоснованность использования того или иного рессурса в будущем коде.

Меня долгое время так и подмывало бросить всё и сделать две вещи - нормальный редактор кода для MQL4 и нормальный учебник по этому языку. Но поскольку объём работ колоссальный, а кроме чувства собственного удовлетворения я ни чего не получил бы за такую работу, я не стал браться за осуществление этих идей.

Короче, подожду наверно, пару лет - пусть метаквотесы пошлифуют свои MQ5-творения. Не хочется даже прикасаться к столь ужасно сделанной работе. И без того уже "все руки в ихних занозах". Они бы лучше отладили от и до семейство MQ4, чем в спешке грубо клепать MQ5.

 Я разочарован. 

 
drknn:

Я знаю формальную логику и отличия в терминах бросились в глаза сразу. Дело в том, что чтение справки по языку MQL5 ясности во многих вопросах не даёт. Понятно, что метаквотесы выбросили в общий доступ терминал для того, чтоб привлечь на свою сторону группу бетта-тестеров - этот ход экономит им время и деньги. Но вот отдать пользователям спраквку, в которой отсутствует ясность - это большущий промах с их стороны. Ну например, открываем самый главный её раздел "Переход с MQL4"....

Я разочарован. 

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

Есть там конечно неточности, или как многие предпочитают думать "промахи и косяки", но это вполне объяснимо и постепенно исправляется.

Тема миграции с MQL4 на MQL5 вообщ отдельный пласт, я бы до начала осени (по крайней мере до него) забыл про серьезные изменения в этом разделе, поскольку разработчикам наверно стоит разобраться с самим MQL5, а лишь затем думать о внесении изменения в эту часть.

PS

Тут я имею введу то, что там вполне можно по итогу добавить кучу всего. В том числе перенести некоторые функции из MQL4 в раздел УСТАРЕВШИХ к примеру (как это было сделано в MQL4).

Даже если определенная часть работы по облегчению миграции не будет выполнена это не станет большой проблемой, а тем более не станет КАМНЕМ ПРЕТКНОВЕНИЯ...

 
Interesting:

Вполне приемлемая справка... 

Спасибо за понимание :)
Причина обращения: