오류, 버그, 질문 - 페이지 2672

 
fxsaber :

opt 파일에 있는 데이터만 있습니다. 형식을 사용할 수 있습니다.

테스터로부터 파일을 읽고 싶지 않습니다. 고유한 파일 이름 - MD5 입력 매개변수, 다음과 같이 원하는 작업을 이미 수행한 것 같습니다.

 string getMD5( const SSaveStruct &inpstr)
{
   const uchar key[ 1 ]= { 0 };
   uchar data[],md5[];
   StructToCharArray (inpstr,data);
   CryptEncode ( CRYPT_HASH_MD5 , data, key, md5);
   string result = "" ;
   for ( int i = 0 ; i < ArraySize (md5); i++)
      result += StringFormat ( "%02x" , md5[i]);
   return (result);
}

void SaveInputParam()
{
   SSaveStruct savestruct;
   FillSaveStruct(savestruct);
   string fname = "EA_TST//" + getMD5(savestruct) + ".bin" ;
   int handle = FileOpen (fname, FILE_WRITE | FILE_COMMON | FILE_BIN );
   FileWriteStruct (handle,savestruct);
}

double OnTester ()
{

   if (!IS_OPTIMIZATION)
   {
      SSaveStruct savestruct;
      FillSaveStruct(savestruct);
       Print ( "fname = " + getMD5(savestruct));
       return ( AccountInfoDouble ( ACCOUNT_BALANCE ));
   }

#define BADTEST() { srand (( int ) TimeCurrent ()); return (-( rand () % 1000 )); }
   if (EA_STOP || TesterStatistics ( STAT_TRADES ) < EA_MIN_TRADEES)  BADTEST();
   SaveInputParam();
   return ( AccountInfoDouble ( ACCOUNT_BALANCE ));
#undef BADTEST
}

파일이 작성되고 단일 패스로 파일 이름이 표시됩니다. fname = 04a19580d36f0a749143211b57efbebc

코드는 약간 반복되지만 테스트가 실패한 경우 최적화 프로그램에서 입력 매개변수로 구조를 채우지 않기 위해 ....하지만 아마도 못생긴 코드를 다시 작성할 것입니다. 그러면 내가 왜 그랬는지 알 수 없을 것입니다. )))
 
Igor Makanu :

테스터 대리인에게 패스 번호를 받을 수 있나요?


추신: 또는 파일 이름을 테스트할 때 각 패스에서 고유한 식별자가 필요합니다. - 테스트할 때 관심 있는 EA 설정을 파일에 저장하고 싶지만 설정과 함께 파일 이름을 형성하려면 최소한 고유한 것이 필요합니다.

패스 번호는 1024비트일 수 있습니다.

이 라인에 이미 매개변수 세트가 있는 경우 패스 번호가 필요한 이유는 무엇입니까?

 
Igor Makanu :

테스터로부터 파일을 읽고 싶지 않습니다. 고유한 파일 이름 - MD5 입력 매개변수, 다음과 같이 원하는 작업을 이미 수행한 것 같습니다.

파일이 작성되고 단일 패스로 파일 이름이 표시됩니다. fname = 04a19580d36f0a749143211b57efbebc

코드는 약간 반복되지만 테스트가 실패한 경우 최적화 프로그램에서 입력 매개변수로 구조를 채우지 않기 위해 ....하지만 아마 다시 쓸 것입니다, 못생긴 코드, 그러면 왜 내가 그것을했다)))

입력 매개변수의 MD5가 이미 계산되었으며 opt 파일의 통과 항목에 있습니다.

 
Slava :

이 라인에 이미 매개변수 세트가 있는 경우 패스 번호가 필요한 이유는 무엇입니까?

옵티마이저의 성공적인 패스를 EA 설정 파일로 직접 재설정하고 EA를 시작할 때 .set 대신 .bin 파일을 자동으로 로드하고 싶습니다. 여러 차량의 동시 작동에 필요합니다.

슬라바 :

입력 매개변수의 MD5가 이미 계산되었으며 opt 파일의 통과 항목에 있습니다.

나는 최적화 속도를 위해 거의 3개월 동안 싸웠고, 나는 이것을 달성했다고 생각합니다. 그래서 반론:

어느 것이 더 빠릅니다:

1. 옵티마이저에서 MD5로 옵트 파일을 읽습니까?

2. 또는 내 MD5 코드로 계산


계산 속도가 빠를수록 코드 내부의 모든 입력 매개변수를 구조의 배열로 사용하면 할수록(약 40개의 매개변수를 최적화합니다)

 
Igor Makanu :

옵티마이저의 성공적인 패스를 EA 설정 파일로 직접 재설정하고 EA를 시작할 때 .set 대신 .bin 파일을 자동으로 로드하고 싶습니다. 여러 차량의 동시 작동에 필요합니다.

나는 최적화 속도를 위해 거의 3개월 동안 싸웠고, 나는 이것을 달성했다고 생각합니다. 그래서 반론:

어느 것이 더 빠릅니다:

1. 옵티마이저에서 MD5로 옵트 파일을 읽습니까?

2. 또는 내 MD5 코드로 계산


계산이 빠를수록 코드 내부의 모든 입력 매개변수를 구조의 배열로 사용하면 할수록(약 40개의 매개변수를 최적화)

MD5가 더 빠릅니다.

앞으로 opt 파일을 사용하지 않으려면 MD5를 읽으십시오.

그것을 사용하려는 경우 계산이 일치하지 않을 수 있으므로 이미 계산된 MD5를 사용하는 것이 좋습니다.

 
Slava :

MD5가 더 빠릅니다.

앞으로 opt 파일을 사용하지 않으려면 MD5를 읽으십시오.

그것을 사용하려는 경우 계산이 일치하지 않을 수 있으므로 이미 계산된 MD5를 사용하는 것이 좋습니다.

고맙습니다!

opt 파일을 사용하지 않을 것입니다

추신: 몇 주 전에 테스터 https://www.mql5.com/ru/forum/1111/page2657#comment_15165819 에서 MathSrand() 초기화 가능성을 찾고 있었습니다.

테스터 에이전트에서 MD5(well 또는 string)와 함께 uchar[]를 수신하는 것은 나쁘지 않을 것입니다. 이것은 고유한 값입니다. MathSrand()를 초기화할 수도 있습니다. 이제 고유한 파일 이름을 원합니다. MD5를 TesterStatistics에 지정하십시오. ()

 
Sergey Dzyublik :
버그 MT5(빌드 2323), 클래스 B<void*>의 개체 뒤에 동일한 템플릿 개체 B<int>가 생성될 수 있지만 이전에 하면 컴파일 오류 가 발생합니다.
아마도 그 이유는 템플릿 클래스 생성기 캐시의 작업 때문일 것입니다.

올려주셔서 감사합니다 수정했습니다

 

매크로는 어떻게 사용하나요?

공포. 컴파일하는 동안 오류가 발생했습니다.

작은 스크립트:

 void OnStart ()
  {
   #define m 1000 ;
   ulong n_yes= 3 *m;  //Тут всё хорошо
   ulong n_no=( 3 *m); //Тут ошибка: ';' - unexpected token	test2.mq5	27	18
  }
빌드 2361, 현재로서는 최신입니다.
 
Aliaksandr Hryshyn :

매크로는 어떻게 사용하나요?

그래서 우리는 사용
 #define m 1000 ;
 
Igor Makanu :
그래서 우리는 사용

브라켓의 유무에 차이가 있습니다.