최적화 중 일회성 어레이 계산 - 페이지 3

 
forexman77 :

비용은 더 명확합니다. 표시기 설정 이 변경되지 않고 값이 동일하지만 이미 파일에 기록되어 배열에 덤프되는 두 가지 옵션이 있습니다.

파일이 있는 변형은 Expert Advisor에서 지표를 계산하는 것보다 계산하는 데 훨씬 더 오래 걸립니다.

배열을 한 번 저장하고 최적화의 모든 단계에 사용하여 알고리즘을 오프로드하는 방법이 있을 수 있다고 생각했습니다.

지표 계산보다 긴 배열을 쓰고 읽을 수 있습니까?

 
forexman77 :
이렇게 하면 새 패스로 전환할 때 어레이가 보존됩니까?
네 해야합니다..
 
Dmitry Fedoseev :
네. 어렵지도 비싸지도 않습니다. 바이너리 모드를 사용하십시오. 전체 파일을 읽지 않고 원하는 위치에서 읽을 수 있습니다.
 int init()
  {
   int k;
   string Skip;
   datetime Str_DtTm;
   double L;
   Handle= FileOpen (File_Name, FILE_CSV | FILE_READ | FILE_BIN , "," );
   ResetLastError ();
   if (Handle< 0 ) // Failure when opening a file
     {
       if ( GetLastError ()== 4103 )
         Alert ( "There is no file named " ,File_Name);
       else
         Alert ( "Error when opening a file " ,File_Name);
       PlaySound ( "Bzrrr.wav" );
       return ( 0 );
     }
   ArrayInitialize (T, 0 );
   ArrayInitialize (dn, 0 );
   ArrayResize (T,stroki);
   ArrayResize (dn,stroki);
   for (k=stroki- 1 ;k>= 0 ;k--)
     {
       //--------------------------------------------------------- 5 --
      Str_DtTm= FileReadDatetime (Handle); // строка даты
      L= FileReadDouble (Handle);
      Skip= FileReadString (Handle); //пропускаем
       //--------------------------------------------------------- 6 -- 
      T[k]=Str_DtTm;   
      dn[k]=L;   
       //--------------------------------------------------------- 7 --
       if ( FileIsEnding (Handle)== true ){ Print ( "Конец отсчета=" , TimeToString (T[k])); break ;} //завершили отсчет

     }
   FileClose (Handle);

   return ( 0 );
  }

바이너리 모드는 문자열에서 숫자로의 변환 이 없을 때입니다.

나는 또한 긴 역사에 대한 1분 차트에 최적화를 추가할 것입니다.

 
포함은 컴파일 시 유효합니다. 누가 컴파일 할 것인가? 이 배열이 최적화 매개변수에 따라 달라질 수 있습니까? 각 최적화 전에 배열을 생성하여 컴파일하는 것을 의미합니다. 잘못된 결정입니다.
 
Dmitry Fedoseev :
포함은 컴파일 시 유효합니다. 누가 컴파일 할 것인가? 이 배열이 최적화 매개변수에 따라 달라질 수 있습니까? 각 최적화 전에 배열을 생성하여 컴파일하는 것을 의미합니다. 잘못된 결정입니다.
발명하지 마십시오 - HARDWARE는 어레이가 불변하다고 분명히 말했습니다.
 
forexman77 :
바이너리 모드는 문자열에서 숫자로의 변환 이 없을 때입니다.

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

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

링크와 예제가 있습니다.

 
Maxim Kuznetsov :
발명하지 마십시오 - HARDWARE는 어레이가 불변하다고 분명히 말했습니다.
한 번의 최적화 동안 변경되지 않았습니다. 다른 불변성에 대해서는 아무 것도 없었습니다.
 
물론 배열이 항상 절대적으로 변경되지 않으면 EA 코드를 포함하는 것이 좋습니다. 포함하지 않고 어드바이저 파일로 직접 이동할 수 있습니다.
 
Maxim Kuznetsov :
네 해야합니다..
드미트리 페도세예프 :
물론 배열이 항상 절대적으로 변경되지 않으면 EA 코드를 포함하는 것이 좋습니다. 포함하지 않고 어드바이저 파일로 직접 이동할 수 있습니다.
아직 C 포함을 접하지 못했습니다. 이 작업을 수행하는 방법에 대한 올바른 방향을 알려주세요.
 
forexman77 :
아직 C 포함을 접하지 못했습니다. 이 작업을 수행하는 방법에 대한 올바른 방향을 알려주세요.
포함이 없으면 스크립트로 배열 코드를 생성 하고 파일에 쓴 다음(Alert()에 표시할 수도 있음) 마우스를 사용하여 이를 어드바이저 코드로 전송할 수 있습니다.