Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 839

 
CHART_SCALE Skala int von 0 bis 5, was es bedeutet.
 
koctja:
CHART_SCALE Skala int von 0 bis 5, was es bedeutet.
Sechs Skalenabstufungen der Karte
 

Guten Tag!

Frage: Ist es mit MT4 Advisor möglich , eine csv-Datei mit einer Größe von 1-5 GB zu öffnen und in eine neue csv/txt-Datei mit derselben Größe zu überschreiben.

Im Wesentlichen geht es darum, leere Balken, Mega-Balken und Lücken in der Datei mit Tick-Quotes zu finden. Um sie zu korrigieren und in eine neue Datei zu schreiben (1 Jahr ist 500-1000mb )

P.S. Skripte und andere Dinge, mit denen man arbeiten kann, minutiöse Zitate, die man nicht anbieten muss.

Ich danke Ihnen!

 
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);


Die Datei enthält 2019510

Wie kann ich auf einfache Weise eine Null an einen Monat anhängen, ohne if zu verwenden?

 
psyman:


Die Datei enthält 2019510

Wie kann ich auf einfache Weise eine Null an einen Monat anhängen, ohne if zu verwenden?

Welche Null? Wo soll ich hinzufügen? Darf ich Ihnen ein Beispiel nennen?

 
Artyom Trishkin:

Welche Null? Wo soll ich hinzufügen? Können Sie mir ein Beispiel nennen?

Wenn ich das aktuelle Datum in die Datei schreibe, erhalte ich 2019510 anstelle von20190510

Vielleicht gibt es eine Formatierungseinstellung, aber in der Hilfe ist sie nicht angegeben.

 
psyman:

Wenn ich das aktuelle Datum in die Datei schreibe, erhalte ich 2019510 anstelle von20190510

Vielleicht gibt es eine Formatierungsoption, aber in der Hilfe ist sie nicht angegeben.

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


Seltsam, dass das Ausfüllen nicht in TimeToStruct erfolgt. Mit Blick aufIntegerToString habe ich nicht gedacht, wie es ist alles das gleiche, welche Daten in die Datei zu schreiben, danke.

 
psyman:


Die Datei enthält 2019510

Wie kann man auf einfache Weise eine Null zu einem Monat hinzufügen, ohne if zu verwenden?

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 Eisen:

Guten Tag!

Frage: Ist es mit MT4 EA möglich , eine csv-Datei mit einer Größe von 1-5 GB zu öffnen und sie in eine neue csv/txt-Datei mit der gleichen Größe zu überschreiben.

Die Idee ist, leere Balken, Megapips und Lücken in der Datei mit Tick-Quotes zu finden. Um sie zu korrigieren und in eine neue Datei zu schreiben (1 Jahr sind es 500-1000mb)

P.S. Skripte und andere Dinge, mit denen man arbeiten kann, minutiöse Zitate, die man nicht anbieten muss.

Ich danke Ihnen!

Abgehakt, Sie können:

1. 2 Dateien öffnen, eine zum Lesen, die zweite zum Schreiben und gleichzeitig lesen und schreiben

2) Sie können eine Datei in ein Array einlesen, die Daten verarbeiten und dann das Array in eine Datei schreiben, aber beachten Sie, dass MT4 32-bit ist und der Speicher für solche Programme auf 2GB begrenzt ist, d.h. die Funktion ArrayResize() wird keinen Speicher zur Größenänderung des Arrays zuweisen,https://docs.mql4.com/ru/array/arrayresize

SZY: Ich biete keine Drehbücher oder Ähnliches an.

 
psyman:


Seltsam, dass das Ausfüllen nicht in TimeToStruct erfolgt. Ich habe nicht daran gedacht, in IntegerToString danach zu suchen, da es keine Rolle spielt, welche Daten in die Datei geschrieben werden, danke.

Es ist viel seltsamer zu denken, dass 05 statt 5 in eine int-Variable geschrieben wird.

05 ist bereits eine Display-Int-Nummer auf dem Bildschirm - dort müssen Sie das gewünschte Format angeben.

Und hier ist ein Beispiel dafür, warum Sie es selbst tun sollten, wie von Igor zitiert:

Forum über Handel, automatisierte Handelssysteme und Teststrategien

Alle Fragen, die Neulinge zu MQL4 haben, Hilfe und Diskussion über Algorithmen und Codes

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));

Bei dieser Variante wird das Datum bereits formatiert ausgegeben. Aber nicht so, wie Sie es brauchen(wie Sie angedeutet haben):

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Alle Fragen von Neulingen zu MQL4, Hilfe und Diskussion über Algorithmen und Codes

psyman, 2019.05.10 22:14

Wenn ich das aktuelle Datum in die Datei schreibe, erhalte ich 2019510 statt20190510

Vielleicht gibt es eine Formatierungseinstellung, aber das steht nicht in der Hilfe.

Lesen Sie das Format der MqlDateTime-Struktur, um es zu verstehen:

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