Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 839

 
CHART_SCALE Escala int de 0 a 5 lo que significa.
 
koctja:
CHART_SCALE Escala int de 0 a 5 lo que significa.
Seis gradaciones de la escala de la carta
 

¡Buenas tardes!

Pregunta: ¿es posible con MT4 Advisor abrir un archivo csv de 1-5GB de tamaño, y sobrescribir en un nuevo archivo csv/txt del mismo tamaño.

La esencia es encontrar barras vacías, megabares y huecos en el archivo con cotizaciones de ticks. Para corregirlos, y reescribir en un nuevo archivo (1 año es 500-1000mb )

P.S. guiones y otras cosas para trabajar con citas de minutos para no ofrecer.

Gracias.

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


El archivo contiene 2019510

¿Cómo puedo añadir un cero a un mes de forma sencilla sin utilizar if?

 
psyman:


El archivo contiene 2019510

¿Cómo puedo añadir un cero a un mes de forma sencilla sin utilizar if?

¿Cuál cero? ¿Dónde añadir? ¿Puedo darle un ejemplo?

 
Artyom Trishkin:

¿Qué cero? ¿Dónde añadir? ¿Puede darme un ejemplo?

Alescribir la fecha actual en el archivo, obtengo 2019510 en lugar de20190510

Tal vez haya un ajuste de formato, pero la ayuda no lo dice.

 
psyman:

Alescribir la fecha actual en el archivo, obtengo 2019510 en lugar de20190510

Tal vez haya una opción de formato, pero la ayuda no lo dice.

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


Es extraño que el relleno no se haga en TimeToStruct. Mirando enIntegerToString no pensé, ya que es todo lo mismo qué datos escribir en el archivo, gracias.

 
psyman:


El archivo contiene 2019510

¿Cómo añadir un cero a un mes de forma sencilla sin utilizar 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:

¡Buenas tardes!

Pregunta: ¿es posible con el EA de MT4 abrir un archivo csv de 1-5GB de tamaño y sobrescribirlo en un nuevo archivo csv/txt del mismo tamaño?

La idea es encontrar barras vacías, megapips y huecos en el archivo con cotizaciones de ticks. Para corregirlos, y reescribir en un nuevo archivo (1 año es 500-1000mb )

P.S. guiones y otras cosas para trabajar con citas de minutos para no ofrecer.

Gracias.

Comprobado, se puede:

1. abrir 2 archivos, uno para leer, el segundo para escribir y leer y escribir al mismo tiempo

2. Puede leer un archivo en un array, procesar los datos y luego escribir el array en un archivo, pero tenga en cuenta que MT4 es de 32 bits y la memoria para este tipo de programas está limitada a 2GB, es decir, la función ArrayResize() no asignará memoria para redimensionar el array,https://docs.mql4.com/ru/array/arrayresize

SZY: No ofrezco guiones ni nada parecido.

 
psyman:


Es extraño que el relleno no se haga en TimeToStruct. No se me ocurrió buscarlo en IntegerToString, ya que no importan los datos que se escriben en el archivo, gracias.

Es mucho más extraño pensar que 05 se escribirá en una variable int en lugar de 5.

05 ya es un número int en la pantalla - allí tiene que especificar el formato que desea.

Y aquí tienes un ejemplo de por qué deberías hacerlo tú mismo, citado por Igor:

Foro sobre comercio, sistemas de comercio automatizados y estrategias de prueba

Cualquier pregunta que los novatos tengan sobre MQL4, ayuda y discusión sobre algoritmos y códigos

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

Esta variante dará salida a la fecha ya formateada. Pero no de la forma en que lo necesitas(como has indicado):

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Cualquier pregunta de los novatos en MQL4, ayuda y discusión sobre algoritmos y códigos

psyman, 2019.05.10 22:14

Alescribir la fecha actual en el archivo, obtengo 2019510 en lugar de20190510

Tal vez haya un ajuste de formato, pero la ayuda no lo dice.

Lea el formato de la estructura MqlDateTime para entenderlo:

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