Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 839

 
EscalaCHART_SCALE int de 0 a 5 o que significa.
 
koctja:
EscalaCHART_SCALE int de 0 a 5 o que significa.
Seis gradações de escala do gráfico
 

Boa tarde!

Pergunta: é possível com o MT4 Advisor abrir um arquivo csv de 1-5GB de tamanho, e sobrescrever em um novo arquivo csv/txt do mesmo tamanho.

A essência é encontrar barras vazias, mega-barras e espaços vazios no arquivo com aspas de carrapatos. Para corrigi-los e reescrevê-los em um novo arquivo (1 ano é 500-1000mb )

P.S. scripts e outras coisas para trabalhar com citações minúsculas para não oferecer.

Obrigado!

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


O arquivo contém 2019510

Como acrescentar um zero a um mês de uma maneira simples sem usar o "se"?

 
psyman:


O arquivo contém 2019510

Como acrescentar um zero a um mês de uma maneira simples sem usar o "se"?

Qual zero? Onde acrescentar? Posso lhe dar um exemplo?

 
Artyom Trishkin:

Que zero? Onde acrescentar? Você pode me dar um exemplo?

Escrevendo a data atual no arquivo, recebo 2019510 em vez de20190510

Talvez haja um ajuste de formatação, mas a ajuda não o diz.

 
psyman:

Escrevendo a data atual no arquivo, recebo 2019510 em vez de20190510

Talvez haja uma opção de formatação, mas a ajuda não o diz.

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


Estranho que o enchimento não seja feito no TimeToStruct. Olhando naIntegerToString eu não pensei, pois é tudo igual que os dados para escrever no arquivo, obrigado.

 
psyman:


O arquivo contém 2019510

Como adicionar zero a um mês de uma maneira simples sem usar o 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));

Ferro Roni:

Boa tarde!

Pergunta: é possível com o MT4 EA abrir um arquivo csv de 1-5GB de tamanho e sobrescrevê-lo em um novo arquivo csv/txt do mesmo tamanho.

A idéia é encontrar barras vazias, megapips e lacunas no arquivo com aspas de carrapatos. Para corrigi-los e reescrevê-los em um novo arquivo (1 ano é 500-1000mb )

P.S. scripts e outras coisas para trabalhar com citações minúsculas para não oferecer.

Obrigado!

Verificado, você pode:

1. abrir 2 arquivos, um para ler, o segundo para escrever e ler e escrever ao mesmo tempo

2. você pode ler um arquivo em um array, processar os dados, depois escrever o array em um arquivo, mas note que o MT4 é de 32 bits e a memória para tais programas é limitada a 2GB, ou seja, a função ArrayResize() não alocará memória para redimensionar o array,https://docs.mql4.com/ru/array/arrayresize

SZY: Eu não ofereço roteiros ou nada parecido.

 
psyman:


Estranho que o enchimento não seja feito no TimeToStruct. Não pensei em procurá-lo na IntegerToString, já que não importa que dados estejam escritos no arquivo, obrigado.

É muito mais estranho pensar que 05 será escrito a uma int-variable ao invés de 5.

05 já é uma exibição em número na tela - aí você tem que especificar o formato desejado.

E aqui está um exemplo de porque você mesmo deve fazer isso, como citado por Igor:

Fórum sobre Comércio, Sistemas Automatizados de Comércio e Estratégias de Teste

Qualquer dúvida que os novatos tenham sobre MQL4, ajuda e discussão sobre algoritmos e 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 exibirá a data já formatada. Mas não da maneira que você precisa(como você indicou):

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Qualquer pergunta de novatos sobre MQL4, ajuda e discussão sobre algoritmos e códigos

psyman, 2019.05.10 22:14

Escrevendo a data atual no arquivo, recebo 2019510 em vez de20190510

Talvez haja um ajuste de formatação, mas a ajuda não o diz.

Leia o formato da estrutura MqlDateTime para entender:

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