Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 839

 
CHART_SCALE Échelle int de 0 à 5 ce que cela signifie.
 
koctja:
CHART_SCALE Échelle int de 0 à 5 ce que cela signifie.
Six gradations de l'échelle du graphique
 

Bonjour !

Question : est-il possible avec MT4 Advisor d'ouvrir un fichier csv d'une taille de 1-5GB, et de l'écraser dans un nouveau fichier csv/txt de la même taille.

L'essentiel est de trouver les barres vides, les méga-barres et les écarts dans le fichier avec les cotations en tick. Pour les corriger, et les réécrire dans un nouveau fichier (1 an c'est 500-1000mb )

P.S. scripts et autres trucs à travailler avec des citations minute à ne pas offrir.

Merci !

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


Le fichier contient 2019510

Comment ajouter un zéro à un mois de manière simple sans utiliser if ?

 
psyman:


Le fichier contient 2019510

Comment ajouter un zéro à un mois de manière simple sans utiliser if ?

Quel zéro ? Où ajouter ? Je peux vous donner un exemple ?

 
Artyom Trishkin:

Quel zéro ? Où ajouter ? Pouvez-vous me donner un exemple ?

En écrivant la date actuelle dans le fichier, j'obtiens 2019510 au lieu de20190510.

Il existe peut-être un paramètre de formatage, mais l'aide ne le précise pas.

 
psyman:

En écrivant la date actuelle dans le fichier, j'obtiens 2019510 au lieu de20190510.

Il existe peut-être une option de formatage, mais l'aide ne le précise pas.

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


Il est étrange que le remplissage ne soit pas fait dans TimeToStruct. En regardant dansIntegerToString je n'y ai pas pensé, car c'est tout de même les données à écrire dans le fichier, merci.

 
psyman:


Le fichier contient 2019510

Comment ajouter un zéro à un mois de manière simple sans utiliser 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:

Bonjour !

Question : est-il possible avec MT4 EA d'ouvrir un fichier csv d'une taille de 1-5GB et de l'écraser dans un nouveau fichier csv/txt de la même taille.

L'idée est de trouver les barres vides, les mégapips et les écarts dans le fichier avec les cotations en tick. Pour les corriger, et les réécrire dans un nouveau fichier (1 an c'est 500-1000mb )

P.S. scripts et autres trucs à travailler avec des citations minute à ne pas offrir.

Merci !

Vérifié, vous pouvez :

1. ouvrir 2 fichiers, un pour lire, le second pour écrire et lire et écrire en même temps

2. vous pouvez lire un fichier dans un tableau, traiter les données, puis écrire le tableau dans un fichier, mais notez que MT4 est 32 bits et que la mémoire pour de tels programmes est limitée à 2 Go, c'est-à-dire que la fonction ArrayResize() n'allouera pas de mémoire pour redimensionner le tableau,https://docs.mql4.com/ru/array/arrayresize.

SZY : Je ne propose pas de scripts ou autre chose du genre.

 
psyman:


Il est étrange que le remplissage ne soit pas fait dans TimeToStruct. Je n'ai pas pensé à le chercher dans IntegerToString, puisque les données écrites dans le fichier n'ont pas d'importance, merci.

Il est beaucoup plus étrange de penser que 05 sera écrit dans une variable int au lieu de 5.

05 est déjà un affichage du numéro d'int sur l'écran - là vous devez spécifier le format que vous voulez.

Et voici un exemple de la raison pour laquelle vous devriez le faire vous-même, tel que cité par Igor :

Forum sur le trading, les systèmes de trading automatisé et les stratégies de test

Toutes les questions des débutants sur MQL4, aide et discussion sur les algorithmes et les 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));

Cette variante affichera la date déjà formatée. Mais pas de la manière dont vous en avez besoin(comme vous l'avez indiqué) :

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Toutes les questions des débutants sur MQL4, aide et discussion sur les algorithmes et les codes

psyman, 2019.05.10 22:14

En écrivant la date actuelle dans le fichier, j'obtiens 2019510 au lieu de20190510.

Il existe peut-être un paramètre de formatage, mais l'aide ne le précise pas.

Lisez le format de la structure MqlDateTime pour comprendre :

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