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

 

MQL4. Нашел, как мне кажется, ошибку (недокументированную особенность) отображения стиля DRAW_HISTOGRAM. Решил поделиться с общественностью. Текст заявки в сервисдеск #1495422

Чтобы отобразить значения на графике нужно два буфера: для верхнего значения гистограммы и для нижнего. При сопоставлении индикаторным буферам массивов, если буферы для стиля будут иметь значения 0 и 1, 2 и 3, 4 и 5 и т.д. все отображается нормально. Однако, если буферам стиля будут присвоены значения начиная с НЕЧЕТНОГО, т.е. 1 и 2, 3 и 4, 5 и 6, на графике линии гистограммы будут отображаться некорректно, хотя значения в окне данных будут корректными.

Добавьте, пожалуйста, упоминание об этой особенности в документацию, либо исправьте, ведь не всегда бывает так, что описание стиля DRAW_HISTOGRAM будет начинаться именно с четного буфера!

 
Alexey Kozitsyn:

MQL4. Нашел, как мне кажется, ошибку (недокументированную особенность) отображения стиля DRAW_HISTOGRAM. Решил поделиться с общественностью. Текст заявки в сервисдеск #1495422

А нулевой куда подевался буфер? Нулевой буфер при этом имеет тип расчётного или дата-буфер?
 
Karputov Vladimir:
А нулевой куда подевался буфер? Нулевой буфер при этом имеет тип расчётного или дата-буфер?
INDICATOR_DATA
 
Странное поведение при чтении даты из CSV файла.

Из справки:

FileReadDatetime

Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MI:SS", "YYYY.MM.DD" или "HH:MI:SS" - и преобразует её в значение типа datetime.

Но формат CSV  формат времени совсем другой "DD.MM.YYYY" и   если его перевести в иной формат в CSV  то там пишет везде число 40101.

Так как считать время из CSV файла ?

Причем в справке написано требование  "YYYY.MM.DD HH:MI:SS", "YYYY.MM.DD" или "HH:MI:SS" а отчеты из терминала в html / CSV сохраняются в формате "DD.MM.YYYY

 


 

 
Vladimir Pastushak:
Странное поведение при чтении даты из CSV файла.

Из справки:

FileReadDatetime

Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MI:SS", "YYYY.MM.DD" или "HH:MI:SS" - и преобразует её в значение типа datetime.

Но формат CSV  формат времени совсем другой "DD.MM.YYYY" и   если его перевести в иной формат в CSV  то там пишет везде число 40101.

Так как считать время из CSV файла ?

Причем в справке написано требование  "YYYY.MM.DD HH:MI:SS", "YYYY.MM.DD" или "HH:MI:SS" а отчеты из терминала в html / CSV сохраняются в формате "DD.MM.YYYY

 


 

Я считываю построчно в массив строк весь файл и затем пропускаю его через парсинг. Но это если знаешь изначально структуру файла. При этом типы datetime преобразуются в обе стороны корректно.
 
coderex:
Я считываю построчно в массив строк весь файл и затем пропускаю его через парсинг. Но это если знаешь изначально структуру файла. При этом типы datetime преобразуются в обе стороны корректно.
Парсить это слишком тяжелый процесс. Мдеее ... Так что никто не в курсе как получить дату из екселя ? Меня удивляет что функция из мкл требует не стандартный формат даты...
 
Vladimir Pastushak:
Парсить это слишком тяжелый процесс. Мдеее ... Так что никто не в курсе как получить дату из екселя ? Меня удивляет что функция из мкл требует не стандартный формат даты...
Насчет тяжести это смотря какая задача стоит :) У вас есть изначальная структура файла? К примеру отчеты в МТ4 без сложностей поддаются парсингу хотя на первый взгляд вроде как и сложно, главное что бы файл был структурирован.
 
coderex:
Насчет тяжести это смотря какая задача стоит :) У вас есть изначальная структура файла? К примеру отчеты в МТ4 без сложностей поддаются парсингу хотя на первый взгляд вроде как и сложно, главное что бы файл был структурирован.

Файл структурирован по типу

дата; текст; текст; текст; текст 

дата; текст; текст; текст; текст

дата; текст; текст; текст; текст

дата; текст; текст; текст; текст  

 

Вот с получением даты проблема... 

Может у Вас есть пример чтения даты ? 

 
Vladimir Pastushak:

Файл структурирован по типу

дата; текст; текст; текст; текст 

дата; текст; текст; текст; текст

дата; текст; текст; текст; текст

дата; текст; текст; текст; текст  

 

Вот с получением даты проблема... 

Может у Вас есть пример чтения даты ? 

Конечно есть, я же выше писал :) а скажите, вы как предполагаете разложить строки? Я бы создал массив структур:

struct SParam
  {
   datetime m_data;
   string m_text[4];
  } param[];

Кстати данный файл также будете сами создавать или нет? Я в личку отправил пример реализации.

 
Vladimir Pastushak:
Парсить это слишком тяжелый процесс. Мдеее ... Так что никто не в курсе как получить дату из екселя ? Меня удивляет что функция из мкл требует не стандартный формат даты...

Вы очень ошибаетесь в отношении парсинга.

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

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