MT5 RAM의 메모리 폭식, 대용량 파일 읽기/쓰기 문제 - 페이지 4

 
Maxim Dmitrievsky :

다음과 같이 파일을 읽어보십시오.

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

당장 터미널 열어야지 내일 mb)

그래서 " 바이너리 파일에서 "라고 읽습니다. 어디서 구할 수 있습니까?

내일이 기다려집니다 :)
 
Aleksey Vyazmikin :

그래서 " 바이너리 파일에서 "라고 읽습니다. 어디서 구할 수 있습니까?

내일이 기다려집니다 :)

어디서 얻나요?

 
Maxim Dmitrievsky :

어디서 얻나요?

이 특정 경우에 대해 이야기하면 파일이 Excel의 다른 CSV 파일에서 병합됩니다. 이 특별한 경우에 파일은 원래 MT5에 의해 생성되었습니다.

 
Aleksey Vyazmikin :

이 특정 경우에 대해 이야기하면 파일이 Excel의 다른 CSV 파일에서 병합됩니다. 이 특별한 경우에는 원래 MT5에 의해 생성되었습니다.

글쎄, MT5에서 바이너리에 씁니다. 배열이 있습니까? 배열을 파일에 즉시 쓰고 나중에 로드하기만 하면 됩니다.

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2018.04.06 17:08

아마 그렇게 하는 사람은 많지 않을 것 같으니 여기서
 // Заполнение массива строками из файла - классика
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);
}
나는 무언가를 구문 분석해야 할 때 두 번째 옵션을 사용합니다. 아마도 더 빨리 작동하고 확인하지 않았을 것입니다.

가이드로 이러한 지표가 가능합니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

스크립트: ThirdPartyTicks

fxsaber , 2018.04.18 23:10

초당 300만 틱을 구문 분석(ZIP+CSV)합니다. 아마 빠를 겁니다.

3GB 이상 ZIP(>> 10GB CSV) 문제 없이 처리하므로 모든 것이 확실히 잘 작동합니다.

 

CSV 구문 분석 자체는 약 10줄로 구성되어야 합니다. 이 경우 전체 클래스가 전혀 필요하지 않습니다.

이 작업은 프로그래밍 초보자 에게도 매우 간단합니다. 파일에서 읽은 후 데이터에 일어나는 일은 토픽캐스터만이 이해할 수 있는 다음 작업입니다.

Alexey, 프로그래머를 고용하거나 정상적으로 프로그래밍 학습을 시작하십시오. 그렇지 않으면 사용할 수 없는 수업에 돈을 낭비하게 됩니다. 프로그래밍 경험이 없으면 돈을 벌려고 하는 것은 무의미합니다.

추신

레나타를 만지지 마세요. 그는 이 주제와 아무 관련이 없습니다. 최적화를 수정해야 합니다.

 
Maxim Dmitrievsky :

글쎄, MT5에서 바이너리에 씁니다. 배열이 있습니까? 배열을 파일에 즉시 쓰고 나중에 로드하기만 하면 됩니다.

많은 열이 있으며 각 열은 별도의 배열입니다.

 
fxsaber :

가이드로 이러한 지표가 가능합니다.

3GB 이상 ZIP(>> 10GB CSV) 문제 없이 처리하므로 모든 것이 확실히 잘 작동합니다.

고맙습니다. 행을 배열에 쓰는 방법은 분명하지만 열로도 작업하고 싶습니다. 배열에서 행 번호로 호출한 후 열을 찾기 위해 추가 구문 분석을 수행해야 한다고 가정하지만 이를 수행하는 방법은 무엇입니까?

 
Aleksey Vyazmikin :

많은 열이 있으며 각 열은 별도의 배열입니다.

음, 그것은 2차원 배열, 행렬입니다. 받아 적어

 
Roffild :

CSV 구문 분석 자체의 길이는 약 10줄이어야 합니다. 이 경우 전체 클래스가 전혀 필요하지 않습니다.

이 작업은 프로그래밍 초보자 에게도 매우 간단합니다. 파일에서 읽은 후 데이터에 일어나는 일은 토픽캐스터만이 이해할 수 있는 다음 작업입니다.

Alexey, 프로그래머를 고용하거나 정상적으로 프로그래밍 학습을 시작하십시오. 그렇지 않으면 사용할 수 없는 수업에 돈을 낭비하게 됩니다. 프로그래밍 경험이 없으면 돈을 벌려고 하는 것은 무의미합니다.

추신

레나타를 만지지 마세요. 그는 이 주제와 아무 관련이 없습니다. 최적화를 수정해야 합니다.

클래스를 사용하는 것이 편리합니다. MT4로도 이미 3년 동안 사용하고 있습니다. 편리하지만 젠장, 느리게 작동합니다.

물론 한 줄을 읽는 것은 간단하지만 작동하는 세포 구조로 바꾸는 것은 훨씬 더 어렵습니다.

수업을 사용할 수 없다는 것은 무엇을 의미합니까? 게다가 직원이 이 클래스를 작성한 메타 인용문을 사용합니다. 그런 다음 실제로 사람을 고용하고 완제품을받을 것으로 예상하고 지불했지만 브레이크는 정상이라고 말했습니다 ... 나는 믿었지만 지금은 너무 많은 기억이 있습니다. 분노합니다.