voracidade da memória MT5 RAM, problemas com a leitura/escrita de arquivos grandes - página 4

 
Maxim Dmitrievsky:

tente ler seu arquivo desta maneira

https://www.mql5.com/ru/docs/files/filereadarray

Eu não tenho tempo para abrir o terminal agora, talvez amanhã).

Então diz"de um arquivo binário", onde eu conseguiria um?

Vou esperar pelo "amanhã" :)
 
Aleksey Vyazmikin:

Então diz"de um arquivo binário", onde eu consigo um?

Vou esperar pelo "amanhã" :)

de onde você vem?

 
Maxim Dmitrievsky:

de onde você vem?

Neste caso particular, o arquivo é colado a partir de outros arquivos CSV em Excel. Os arquivos foram originalmente gerados pela MT5, neste caso particular.

 
Aleksey Vyazmikin:

Neste caso particular, o arquivo é colado a partir de outros arquivos CSV em Excel. Foi gerada originalmente pela MT5, neste caso particular.

Então escreva no binário a partir do mt5. É uma matriz? Basta escrever o array no arquivo de uma vez e carregá-lo mais tarde

 

Fórum sobre comércio, sistemas automatizados de comércio e teste de estratégias comerciais

Características da linguagem mql5, sutilezas e truques

fxsaber, 2018.04.06 17:08

Provavelmente não muitas pessoas fazem isso, então aqui
// Заполнение массива строками из файла - классика
int FileToStrings( const string FileName, string &Str[] )
{
  ArrayResize(Str, 0);

  const int handle = FileOpen(FileName, FILE_READ | FILE_ANSI );
  
  if (handle != INVALID_HANDLE)
  {
    while (!FileIsEnding(handle))
      Str[ArrayResize(Str, ArraySize(Str) + 1) - 1] = FileReadString(handle);
    
    FileClose(handle);
  }
  
  return(ArraySize(Str));
}

// Заполнение массива строками из файла - альтернатива
int FileToStrings2( const string FileName, string &Str[] )
{
  uchar Bytes[];
  
  return(FileLoad(FileName, Bytes) ? StringSplit(CharArrayToString(Bytes), '\n', Str) : 0);
}

void OnStart()
{
  const string FileName = "Test.txt";
  
  string Str[];  
  FileToStrings(FileName, Str);

  string Str2[];  
  FileToStrings2(FileName, Str2);
  
  ArrayPrint(Str);
  ArrayPrint(Str2);
}
Eu mesmo utilizo a segunda opção quando preciso raspar algo. Provavelmente, também funciona mais rápido, não o testaram.

Como referência, os indicadores possíveis são

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

Roteiros: ThirdPartyTicks

fxsaber, 2018.04.18 23:10

Parses (ZIP+CSV) a três milhões de ticks por segundo. Isso provavelmente é rápido.

Mais de 3GB ZIP (>> 10GB CSV) Eu processo sem problemas, então definitivamente poderia funcionar bem.

 

A própria análise do CSV deve consistir em cerca de 10 linhas. Uma classe inteira não é de modo algum necessária neste caso.

A tarefa é muito simples, mesmo para um iniciante na programação. O que acontece com os dados após a leitura do arquivo é a próxima tarefa, que só o programador entende.

Alexey, contrate um programador ou inicie um estudo adequado de programação. Caso contrário, você estará desperdiçando dinheiro em aulas que não pode usar. É insensato tentar ganhar sem experiência de programação.

P.S.

Não toque em Renat. Ele não tem nada a ver com este assunto. Ele tem que consertar a otimização.

 
Maxim Dmitrievsky:

Então escreva no binário a partir do mt5. É uma matriz? Basta escrever o array no arquivo de uma vez e carregá-lo depois.

Há muitas colunas, cada coluna é um conjunto separado.

 
fxsaber:

Como referência, os seguintes números são possíveis

Mais de 3GB ZIP (>> 10GB CSV) processo sem nenhum problema, portanto pode definitivamente funcionar muito bem.

Obrigado. É claro como escrever linhas para uma matriz, mas eu quero trabalhar com colunas também. É suposto que depois de ligar para o número da linha da matriz, você precisa fazer uma análise adicional para encontrar as colunas, mas como fazer isso?

 
Aleksey Vyazmikin:

Há muitas colunas, cada coluna é um conjunto separado.

Portanto, é uma matriz bidimensional, uma matriz. Escreva-o

 
Roffild:

A própria análise do CSV deve consistir em cerca de 10 linhas. Uma classe inteira não é de modo algum necessária neste caso.

A tarefa é muito simples, mesmo para um iniciante na programação. O que acontece com os dados após a leitura do arquivo é a próxima tarefa, que só o programador entende.

Alexey, contrate um programador ou inicie um estudo adequado de programação. Caso contrário, você estará desperdiçando dinheiro em aulas que não pode usar. É insensato tentar ganhar sem experiência de programação.

P.S.

Não toque em Renat. Ele não tem nada a ver com este assunto. Ele precisa consertar a Otimização.

Já o uso há cerca de 3 anos, desde o MT4; é útil, mas, caramba, é lento.

É claro que é fácil ler um fio, mas transformar tudo isso em uma estrutura de célula de trabalho é muito mais difícil.

O que você quer dizer com "não posso usar aulas"? E, além disso, o funcionário da metaquota escreveu a classe. E então, eu realmente contratei uma pessoa, paguei e esperava obter um produto acabado, mas me disseram que não há problema em ser lento... Eu acreditei neles, mas agora exagerei na memória.

Razão: