최적화 알고리즘 챔피언십. - 페이지 75

 
누구든지 텍스트 문제를 시도 했습니까? 결과는 무엇입니까?
 
MetaQuotes 관리에서 7월 11일 이전에 여기에 도착하지 않으면 우승을 위한 FF 생성 절차가 완료되지 않기 때문에 우승이 불가능합니다.
 

이제 풀 타임 테스터가 텍스트 문제에서 무엇을 할 수 있는지 봅시다. 최적화 조건은 제시된 코드와 동일합니다. 텍스트는 변경되지 않았습니다. 즉, 49자입니다.

추신. 내 의견으로는 테스터의 라이브러리와 함께 Expert Advisor의 잘못된 작동을 발견했습니다. 오류 스레드에서 구독을 취소 하겠습니다.

 

2016.06.29 02:15:16 통계 1분 18초 만에 최적화 완료

2016.06.29 02:15:16 시험 장치 패스 23552에서 유전자 최적화가 완료되었습니다.

최적화는 35개의 최상의 결과로 종료되었습니다(최적화 프로그램이 49개 중에서 올바르게 이름을 지정할 수 있었던 문자 수).

표준 테스터에는 FF 통과/시작 횟수를 조정할 수 있는 기능이 없으므로 내 알고리즘과 표준 알고리즘을 비교하려면 동일한 FF 시작 횟수로 자체 알고리즘을 실행해야 합니다.

내 결과:

2016.06.29 02:27:30.817 스크립트 OAC Dik (GBPUSD,H1) 시간: 475397 µs; 0.47539700초

2016.06.29 02:27:30.817 스크립트 OAC Dik (GBPUSD,H1) FF 시작: 23552

2016.06.29 02:27:30.817 스크립트 OAC Dik (GBPUSD,H1) 최대: 42.00000000

테스터는 4개의 코어에서 최적화를 실행하고 내 스크립트는 1번째로 구동했지만 시간이 지나면서 결과를 100배 이상 빠르게 얻었습니다.

다음은 텍스트 문제에서 표준 옵티마이저를 테스트하기 위한 Expert Advisor의 텍스트입니다.

 //+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict

//+------------------------------------------------------------------+
// тестовая фитнес функция чемпионата, не известна участникам
#import "FFtext.ex5"
int     GetParamCount (); 
void    GetParamProperties ( double &min, double &max, double &step); 
double FF ( double &array []); 
int     GetCountRunsFF (); 
void    PrintCodeToFile ( double &param []); 
#import
//+------------------------------------------------------------------+

//--- input parameters
input int       Input1  = 0 ; 
input int       Input2  = 0 ; 
input int       Input3  = 0 ; 
input int       Input4  = 0 ; 
input int       Input5  = 0 ; 
input int       Input6  = 0 ; 
input int       Input7  = 0 ; 
input int       Input8  = 0 ; 
input int       Input9  = 0 ; 
input int       Input10 = 0 ; 
input int       Input11 = 0 ; 
input int       Input12 = 0 ; 
input int       Input13 = 0 ; 
input int       Input14 = 0 ; 
input int       Input15 = 0 ; 
input int       Input16 = 0 ; 
input int       Input17 = 0 ; 
input int       Input18 = 0 ; 
input int       Input19 = 0 ; 
input int       Input20 = 0 ; 
input int       Input21 = 0 ; 
input int       Input22 = 0 ; 
input int       Input23 = 0 ; 
input int       Input24 = 0 ; 
input int       Input25 = 0 ; 
input int       Input26 = 0 ; 
input int       Input27 = 0 ; 
input int       Input28 = 0 ; 
input int       Input29 = 0 ; 
input int       Input30 = 0 ; 
input int       Input31 = 0 ; 
input int       Input32 = 0 ; 
input int       Input33 = 0 ; 
input int       Input34 = 0 ; 
input int       Input35 = 0 ; 
input int       Input36 = 0 ; 
input int       Input37 = 0 ; 
input int       Input38 = 0 ; 
input int       Input39 = 0 ; 
input int       Input40 = 0 ; 
input int       Input41 = 0 ; 
input int       Input42 = 0 ; 
input int       Input43 = 0 ; 
input int       Input44 = 0 ; 
input int       Input45 = 0 ; 
input int       Input46 = 0 ; 
input int       Input47 = 0 ; 
input int       Input48 = 0 ; 
input int       Input49 = 0 ; 

double param []; 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit () 
{ 
   ArrayResize (param, GetParamCount ()); 
  
  param [ 0 ] = Input1; 
  param [ 1 ] = Input2; 
  param [ 2 ] = Input3; 
  param [ 3 ] = Input4; 
  param [ 4 ] = Input5; 
  param [ 5 ] = Input6; 
  param [ 6 ] = Input7; 
  param [ 7 ] = Input8; 
  param [ 8 ] = Input9; 
  param [ 9 ] = Input10; 
  param [ 10 ] = Input11; 
  param [ 11 ] = Input12; 
  param [ 12 ] = Input13; 
  param [ 13 ] = Input14; 
  param [ 14 ] = Input15; 
  param [ 15 ] = Input16; 
  param [ 16 ] = Input17; 
  param [ 17 ] = Input18; 
  param [ 18 ] = Input19; 
  param [ 19 ] = Input20; 
  param [ 20 ] = Input21; 
  param [ 21 ] = Input22; 
  param [ 22 ] = Input23; 
  param [ 23 ] = Input24; 
  param [ 24 ] = Input25; 
  param [ 25 ] = Input26; 
  param [ 26 ] = Input27; 
  param [ 27 ] = Input28; 
  param [ 28 ] = Input29; 
  param [ 29 ] = Input30; 
  param [ 30 ] = Input31; 
  param [ 31 ] = Input32; 
  param [ 32 ] = Input33; 
  param [ 33 ] = Input34; 
  param [ 34 ] = Input35; 
  param [ 35 ] = Input36; 
  param [ 36 ] = Input37; 
  param [ 37 ] = Input38; 
  param [ 38 ] = Input39; 
  param [ 39 ] = Input40; 
  param [ 40 ] = Input41; 
  param [ 41 ] = Input42; 
  param [ 42 ] = Input43; 
  param [ 43 ] = Input44; 
  param [ 44 ] = Input45; 
  param [ 45 ] = Input46; 
  param [ 46 ] = Input47; 
  param [ 47 ] = Input48; 
  param [ 48 ] = Input49; 
   //---
   return ( INIT_SUCCEEDED );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason) 
{ 
  PrintCodeToFile (param); 
   //---
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick () 
{ 
   //---
}
//+------------------------------------------------------------------+
//| Tester function                                                  |
//+------------------------------------------------------------------+
double OnTester () 
{ 
   double ret = FF (param); 
  
   //---
   return (ret);
}
//+------------------------------------------------------------------+

물론 결과의 신뢰성을 위해 테스터에서 최적화를 여러 번 실행하면 결과가 더 좋을 것이라고 확신합니다. 하지만 캐시를 백 번 지우고 너무 오래 기다리기에는 솔직히 너무 게으릅니다. 그러나 누군가가 차를 살 시간이 있다면 여러 번 엉망이되어 일반 최적화 프로그램의 평균 안정적인 결과를 얻을 수 있습니다.

추신. 나는 일반 최적화 프로그램의 결과에 솔직히 놀랐습니다. 바이너리 GA를 사용하기 때문에 훨씬 더 나쁜 결과(MQ에 대한 공격 없음)를 볼 것으로 예상했습니다. 제한된 수의 실행을 위해 수많은 옵션 중에서 최상의 옵션을 선택해야 한다는 점을 제외하고는 작업이 매우 어렵다는 것을 상기시켜 드리겠습니다. 그러나 FF는 알고리즘이 포착할 수 없는 이산 표면입니다. 에게.

ZZY:

"reakoznauchnaya 역 zhovatae zhebe mt dvayuipa" - 이것은 일반 테스터가 조립했습니다.

"이 두 가지 유형을 결합한 과학 기사는 거의 없습니다" - 이것이 문제의 텍스트입니다.

쩝쩝. 첨부 파일은 *.set Expert Advisor가 최상의 결과를 제공하는 파일입니다.

파일:
 
에이! 여기 누가 있어요?...
 
나는 읽었다.
 

나는 휴가 중이었다. 첨부된 최종 파일-연결 인터페이스 및 페인트 옵션(1 및 2)이 있는 게시물은 어디에 있으며 가급적이면 연결 옵션 2번이 필요한 이유는 무엇입니까?

왜냐하면 이 옵션의 단점은 제가 이전에 작성했고 응답을 받지 못했습니다

В примере библиотеки участника по 2-му есть импорт FF и в скрипте запуска и в библиотеке участника. Но если я пришлю ex файл, какой путь импорта ff туда зашивать? Как запускать на другой FF? Не продумано.

나는 이 질문이 내가 없을 때 참가자들에 의해 해결될 것이라고 생각했다(

 
젠장, 모두 다투고 도망쳤어
 
Igor Volodin :

나는 휴가 중이었다. 최종 파일 연결 인터페이스와 페인트 옵션(1 및 2)이 첨부된 게시물은 어디에 있으며 연결 옵션 2번이 필요한 이유는 무엇입니까?

왜냐하면 이 옵션의 단점은 제가 이전에 작성했고 응답을 받지 못했습니다

나는 이 질문이 내가 없을 때 참가자들에 의해 해결될 것이라고 생각했다(

두 번째 옵션에 따라 연결 방법을 사용하십시오. 일부 참가자는 첫 번째 옵션에 대한 알고리즘 변경이 많은 인건비와 관련이 있다는 의견을 표명했습니다. 그리고 두 번째 옵션에서는 어떤 알고리즘이든 쉽게 정렬할 수 있습니다. 따라서 이 질문이 해결되었습니다.
두 번째 옵션의 단점은 다르지만 챔피언십의 틀 내에서는 허용됩니다.
라이브러리 "ff.ex5"에 대한 표준 경로 쓰기
 
Igor Volodin :
젠장, 모두 다투고 도망쳤어
여기 있어요. 나는 한숨을 쉬었다.
우리는 MQ의 대표를 기다리고 있습니다. 그들 없이는 챔피언십이 불가능합니다. 왜냐하면 그들만이 FF에 대한 키 생성을 위임할 수 있기 때문입니다.