Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 839

 
CHART_SCALE Масштаб  int  от 0 до 5 что это означает.
 
koctja:
CHART_SCALE Масштаб  int  от 0 до 5 что это означает.
Шесть градаций масштаба графика
 

Добрый День!

Вопрос: можно ли с помощью Советника МТ4 открывать файл csv размером 1-5 ГБ, и перезаписывать в новый файл csv/txt такого же размера. 

Суть заключается в том что-бы в файле с тиковыми котировками найти пустые бары, мегашпильки и разрывы. Исправить их, и перезаписать в новый файл (1 год это 500-1000мб )

P.S. скрипты и прочее для работы с минутными котировками не предлагать. 

Спасибо!

 
MqlDateTime time1;
datetime date=TimeCurrent();

 int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
   if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
   }
   TimeToStruct(date,time1);
   FileWrite(h,time1.year,time1.mon,time1.day);


В файле записано 2019510

Как добавить ноль месяцу простым способом без использования if?

 
psyman:


В файле записано 2019510

Как добавить ноль месяцу простым способом без использования if?

Какой ноль? Куда добавить? Пример можно?

 
Artyom Trishkin:

Какой ноль? Куда добавить? Пример можно?

Пишу текущую дату в файл, получаю 2019510 вместо 20190510

Возможно есть настройка форматирования, но в справке об этом не написано.

 
psyman:

Пишу текущую дату в файл, получаю 2019510 вместо 20190510

Возможно есть настройка форматирования, но в справке об этом не написано.

FileWrite(h,(string)time1.year,IntegerToString(time1.mon,2,'0'),IntegerToString(time1.day,2,'0'));
Написано:
Документация по MQL5: Преобразование данных / IntegerToString
Документация по MQL5: Преобразование данных / IntegerToString
  • www.mql5.com
[in]  Длина строки. Если длина полученной строки окажется больше указанной, то строка не усекается. Если длина полученной строки окажется меньше, то полученная строка будет дополнена слева символом-заполнителем.
 
Artyom Trishkin:
Написано:


Странно что заполнение не сделано в TimeToStruct. Искать в IntegerToString я не подумал, тк в файл все равно какие данные записывать, спасибо.

 
psyman:


В файле записано 2019510

Как добавить ноль месяцу простым способом без использования if?

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

Roni Iron:

Добрый День!

Вопрос: можно ли с помощью Советника МТ4 открывать файл csv размером 1-5 ГБ, и перезаписывать в новый файл csv/txt такого же размера. 

Суть заключается в том что-бы в файле с тиковыми котировками найти пустые бары, мегашпильки и разрывы. Исправить их, и перезаписать в новый файл (1 год это 500-1000мб )

P.S. скрипты и прочее для работы с минутными котировками не предлагать. 

Спасибо!

проверил, можно:

1. открыть 2 файла , один на чтение, второй на запись и читать и писать одновременно

2. можно прочитать один файл  в массив и обработать данные, затем записать массив в файл, но нужно учитывать, что MT4 32-разрядный и память для таких программ ограничена 2 Гб, т.е. ф-ция ArrayResize() не будет выделять память для изменения размера массива, https://docs.mql4.com/ru/array/arrayresize

ЗЫ: скрипты и прочее не предлагаю

 
psyman:


Странно что заполнение не сделано в TimeToStruct. Искать в IntegerToString я не подумал, тк в файл все равно какие данные записывать, спасибо.

Гораздо страннее думать, что в int-переменную запишется 05 вместо 5.

05 - это уже отображение int-числа на экране - там вы сами должны указать нужный вам формат.

И вот, как пример, почему вы сами должны это делать, привёл Игорь:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам

Igor Makanu, 2019.05.11 06:16

datetime date=TimeCurrent();
int h=FileOpen("test1111111.txt",FILE_WRITE|FILE_ANSI|FILE_TXT);
if(h==INVALID_HANDLE){
      Alert("Ошибка открытия файла");
      return(-1);
}
FileWrite(h,TimeToStr(date,TIME_DATE));

В данном варианте будет выведена уже отформатированная дата. Но не так, как вам нужно (как указали вы):

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Любые вопросы новичков по MQL4, помощь и обсуждение по алгоритмам и кодам

psyman, 2019.05.10 22:14

Пишу текущую дату в файл, получаю 2019510 вместо 20190510

Возможно есть настройка форматирования, но в справке об этом не написано.

Для понимания почитайте формат структуры MqlDateTime:

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Порядковый номер в году day_of_year в високосном году, начиная с марта, будет отличаться от порядкового номера соответствующего дня в невисокосном году.
Причина обращения: