전략 테스터의 최적화 - 페이지 8

 

이제 지정된 예제에서 테스트를 실행하면 모든 데이터(계산 데이터의 권한 부여 및 동기화)를 준비하기 위해 시작 시 약 1.5초의 시스템 오버헤드가 있습니다. 사실 테스트 에이전트는 터미널에서 완전히 독립적이고 분리되어 사용된 모든 데이터의 완전한 전송 및 동기화가 필요합니다.

시스템 오버헤드가 최종 계산 시간에 심각한 영향을 미치기 때문에 몇 초 이내에 초고속 계산을 하는 동안 유전자 옵티마이저나 테스터가 느리다고는 할 수 없습니다. 실행당 20초 이상의 장기 계산에서 시스템 오버헤드의 영향은 무시할 수 있는 값으로 줄어듭니다.

각 빌드에서 에이전트에 직접 대부분의 데이터를 캐싱하여 이 시간을 줄입니다. 나는 우리가 이 문제를 곧 해결할 것이라고 생각합니다.

 
Urain :
joo의 GA는 이미 표준보다 빠르게 작동하며 10번째 스튜디오(멀티코어 프로세서에 맞게 조정됨)에서 코드를 CPP로 전송하면 가속이 6배 더 빨라집니다.

특정 작업에 대한 맞춤 속사 운율을 마련할 수 있는 시장 환경이 없습니다.

그러나 이익/한도 및 보고서의 자동 계산과 함께 주문형 다중 통화 틱 데이터를 제공하는 범용 거래 엔진을 만들려고 하면 속도가 즉시 2-3-4 배 정도 떨어집니다.

 
Renat :

이제 지정된 예제에서 테스트를 실행하면 모든 데이터(계산 데이터의 권한 부여 및 동기화)를 준비하기 위해 시작 시 약 1.5초의 시스템 오버헤드가 있습니다. 사실 테스트 에이전트는 터미널에서 완전히 독립적이고 분리되어 사용된 모든 데이터의 완전한 전송 및 동기화가 필요합니다.

시스템 오버헤드가 최종 계산 시간에 심각한 영향을 미치기 때문에 몇 초 이내에 초고속 계산을 하는 동안 유전자 옵티마이저나 테스터가 느리다고는 할 수 없습니다. 실행당 20초 이상의 장기 계산에서 시스템 오버헤드의 영향은 무시할 수 있는 값으로 줄어듭니다.

각 빌드에서 에이전트에 직접 대부분의 데이터를 캐싱하여 이 시간을 줄입니다. 나는 우리가 이 문제를 곧 해결할 것이라고 생각합니다.

레나트 :

특정 작업에 대한 맞춤 속사 운율을 마련할 수 있는 시장 환경이 없습니다.

그러나 이익/한도 및 보고서의 자동 계산과 함께 주문형 다중 통화 틱 데이터를 제공하는 범용 거래 엔진을 만들려고 하면 속도가 즉시 2-3-4 배 정도 떨어집니다.

Renat, 나는 시장 환경과 다른 불가피한 "브레이크"를 준비하는 데 시간이 걸린다는 사실에 대해 이야기하는 것이 아닙니다. 여기, 이전 페이지에서 썼습니다.

아마도 이러한 엄청난 차이는 테스터가 FF의 직접적인 계산 외에도 로그를 작성하고 화면에 정보를 표시해야 하는 등, 즉 "강제 브레이크"가 있다는 사실 때문일 것입니다.

2010.11.28 17:38:30 코어 1 유전자 패스(424, 98130899813578)가 2059ms에 48.16의 결과를 반환했습니다.
2010.11.28 17:38:30 코어 2 유전자 전달(426, 990006720) 시작
2010.11.28 17:38:30 코어 2 유전자 전달(425, 56291461)은 2012 ms에 26.67의 결과를 반환했습니다.
2010.11.28 17:38:28 코어 2 유전자 전달(425, 56291461) 시작
2010.11.28 17:38:28 코어 2 유전자 전달(423, 1510001908)은 2028ms에서 49.98의 결과를 반환했습니다.
2010.11.28 17:38:28 코어 1 유전자 전달(424, 98130899813578) 시작
2010.11.28 17:38:28 코어 1 유전자 전달(422, 1668020166802)은 2013년 ms에 48.36의 결과를 반환했습니다.
2010.11.28 17:38:26 코어2 유전자 전달(423, 1510001908) 시작
2010.11.28 17:38:26 코어 2 유전자 전달(419, 99260769921339)이 1935ms에 결과 49.22를 반환했습니다.
2010.11.28 17:38:26 코어 1 유전자 전달(422, 1668020166802) 시작
2010.11.28 17:38:26 코어 1 유전자 전달(418, 32073563420604)은 1934ms에 26.13의 결과를 반환했습니다.
2010.11.28 17:38:24 캐시에서 테스터 유전자 패스(421, 730000073)를 찾았고 결과 50.00
2010.11.28 17:38:24 캐시에서 테스터 유전자 패스(420, 2080000208)를 찾았고 결과 50.00
2010.11.28 17:38:24 코어 2 유전자 전달(419, 99260769921339) 시작
2010.11.28 17:38:24 코어 2 유전자 전달(417, 99249619924961)은 2059ms에 결과 49.26을 반환했습니다.
2010.11.28 17:38:24 코어 1 유전자 전달(418, 32073563420604) 시작
2010.11.28 17:38:24 코어 1 유전자 전달(416, 2479846771)은 2309ms 동안 48.49의 결과를 반환했습니다.
2010.11.28 17:38:22 코어 2 유전자 전달(417, 99249619924961) 시작

즉, 베어 FF를 계산하는 데 2초 이상이 소요되며, 이는 시장 환경에 대한 참조가 전혀 없음에도 불구하고 그렇습니다.

옵티마이저는 f(x1,x2)=x1*x1+x2*x2 와 같은 간단한 문제를 500번째 "패스" 어딘가에 해결하고 1000개 이상의 옵션을 계산해야 한다고 판단했기 때문에 옵션을 계속해서 정렬합니다. .

그리고 알고리즘의 검색 기능에 영향을 줄 수 있는 설정이 없으며, 또한 64개의 최적화된 매개변수에 대한 제한이 우울합니다.

 
Renat :

특정 작업에 대한 맞춤 속사 운율을 마련할 수 있는 시장 환경이 없습니다.

그러나 이익/한도 및 보고서의 자동 계산과 함께 주문형 다중 통화 틱 데이터를 제공하는 범용 거래 엔진을 만들려고 하면 속도가 즉시 2-3-4 배 정도 떨어집니다.

나는 논쟁하지 않지만 알고리즘 제어 매개 변수, 검색 종료에 대한 동일한 설정 및 검색 매개 변수 수를 확장하는 것이 좋을 것입니다.

여기 mql5에서 우리는 3000개의 매개변수를 검색하기 위한 알고리즘을 실행하고 있으며 이것은 물론 이진 인코딩이 아니라 연속 평면에서 한계가 아닙니다.

그리고 당신의 손에는 여전히 SRR이 있습니다.

나는 유전자의 바이너리 인코딩으로 그것을 시도했지만 mql5의 이 버전의 GA는 잃습니다. 연속 탐색은 수렴할 때의 단차를 줄여주기 때문에 좋다. 또한 코딩/디코딩 리소스가 필요하지 않습니다. 글쎄, 일반적으로 우리는 정확한 테스트가 필요합니다. 무언가를 명확하게 말하기에는 너무 이릅니다.

 
우리는 아마도 유전자 최적화 프로그램을 더 맞춤화할 수 있게 만들고 시스템 오버헤드를 최소화할 것입니다.
 
Renat :
우리는 아마도 유전자 최적화 프로그램을 더 맞춤화할 수 있게 만들고 시스템 오버헤드를 최소화할 것입니다.

정말 감사합니다. 이것은 실제로 매우 중요하며 많은 사람들이 생각하는 것보다 더 중요합니다.

그리고 언젠가 우리도 "Threshold 64"에 대해 잊어 버리기를 바랍니다.

 

새로운 366 빌드(월요일 릴리스)에서는 시스템 오버헤드를 최소값으로 줄였습니다.

이제 위의 유전학 전문가는 패스당 2초가 아니라 200~300ms를 소비합니다.

 
joo :

정말 감사합니다. 이것은 실제로 매우 중요하며 많은 사람들이 생각하는 것보다 더 중요합니다.

그리고 언젠가 우리도 "Threshold 64"에 대해 잊어 버리기를 바랍니다.

지금 당장 잊어버리세요. 최대 8자리의 정확도를 가진 4개의 매개변수를 사용하여 테스터는 열거 크기가 long의 길이를 초과했다는 경고를 표시합니다.

따라서 EA 테스트 이외의 필요에 대해서는 사용자 정의 최적화 프로그램을 작성하십시오.

그리고 Expert Advisors의 최적화를 위해서는 64개의 매개변수로 충분합니다.

 

흠, 나는 그러한 조언자 만이 많은 매개 변수로 사용되는 지점을 읽었습니다. :)

 
marker :

흠, 나는 그러한 조언자 만이 많은 매개 변수로 사용되는 지점을 읽었습니다. :)

일부 표준 MT Expert Advisors는 검색 수가 부족합니다.
사유: