유전자 알고리즘과 가능한 응용 - 페이지 4

 
Edgar Akhmadeev :

오래 전에 Expert Advisor에서 프레임을 사용할 때 이에 대해 썼습니다. 나는 본질을 정확히 기억하지 못합니다. 모든 프레임이 나에게 오기 시작한 것은 아닙니다(최상의 결과). 나는 오래된 게시물을 찾아 명확히하려고 노력할 것입니다.

그러나 정확히 기억합니다. 내 Expert Advisor에서 분명히 재현할 수 있었습니다. 검색 수가 특정 수를 초과하고 과학적 형식으로 표시되자마자 내 유전학이 무너졌습니다. 변수에 많은 단계가 있을 뿐만 아니라 변수의 수도 많았다는 것이 중요합니다.

공습 경보 해제.

"큰" 유전학의 틀에 문제가 있습니다.

수정하겠습니다.

 
Slava :

"전혀 작동하지 않습니다"은(는) 무슨 뜻인가요?

어떻게 오류를 재현할 수 있습니까?

https://www.mql5.com/ru/forum/321656/page17#comment_13569022

더 이상 프레임으로 확인하지 않겠습니다. 거부했습니다.

그리고 일반적인 유전학으로 마지막 빌드에서 확인했습니다. 다음은 "비트 오버플로"가 없는 결과입니다.


중단 후:

 2020.03 . 16 20 : 50 : 57.436 Tester  genetic optimization finished on pass 646 (of 160164854439975000 )
2020.03 . 16 20 : 50 : 57.436 Statistics      optimization done in 8 minutes 36 seconds
2020.03 . 16 20 : 50 : 57.436 Statistics      shortest pass 0 : 00 : 00.002 , longest pass 0 : 00 : 23.060 , average pass 0 : 00 : 06.276

"오버플로" 사용:


전문가가 방해하는 몇 번의 통과(입력 변수의 정확성 확인)를 거친 후 유전학은 영원히 멈췄습니다. 중단 후:

 2020.03 . 16 20 : 59 : 08.235 Tester  genetic optimization finished on pass 18
2020.03 . 16 20 : 59 : 08.235 Statistics      optimization done in 6 minutes 10 seconds
2020.03 . 16 20 : 59 : 08.235 Statistics      shortest pass 0 : 00 : 00.003 , longest pass 0 : 00 : 05.978 , average pass 0 : 00 : 01.339

실제 결과가 없습니다.

예를 들어 Advisors/MAPSARSizeOptimized.ex5를 시도했지만 작동합니다. "비트 심도 오버플로" 및 프레임 문제가 내 Expert Advisor에서만 재현된다는 것은 분명하지만 문제를 찾는 방법... OnTradeTransaction 등 모든 것이 매우 복잡합니다. 프레임도 제거했습니다. 코드를 표시할 수 없고 메가바이트 미만의 거대합니다. 그리고 재현 가능한 예제로 줄이는 것은 절망적으로 길다. 시간이 있다면 OnTradeTransaction을 제거하려고 노력할 것입니다. 아마도 다른 종소리와 호루라기일 것입니다.

사실은 패스 수를 초과하지 않으면 모든 것이 잘 작동한다는 것입니다.

그리고 프레임은 2286을 포함하여 빌드할 때까지 (초과 없이) 잘 작동했습니다.

Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы
Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы
  • 2019.10.16
  • www.mql5.com
В настоящий момент тестер стратегий MetaTrader 5 подвергается глубокой переработки командой MQ...
 
Igor Makanu :

...

단 한 가지 문제가 있습니다. 잠시 후 GA는 최적화 매개변수의 작은 그룹으로 수렴되기 시작할 수 있습니다. 제 생각에는 이것이 정상이며 모든 GA가 이러한 방식으로 작동하며 이것이 사용상의 문제입니다.

...

일부 극점으로의 수렴은 모든 최적화 알고리즘에서 완전히 정상적인 현상이며, 이 섹션이 글로벌 또는 로컬이 아니라고 가정하기 위한 전제 조건은 없습니다.

AO가 특정 영역을 짓밟기 시작할 때, 극한값이 적용되는지 여부에 관계없이 돌연변이 비율을 증가시킬 수 있는 메커니즘(또는 검색 이웃의 확장을 증가시킬 수 있는 논리의 다른 등가물)을 가져야 한다는 것은 또 다른 문제입니다. 더 나은 것은 미리 알 수 없지만, 확실히 필요한 다른 곳에서 찾아야 할 때입니다.

AO는 문제가 없습니다. 다른 하나에는 문제가 있습니다. 다차원 공간의 가능한 평면이 가능한 한 적게 교차하는 방식으로 최적화 기준 을 정의하는 것은 연구원의 책임입니다. 예를 들어, 그들은 최대 잔액 기준을 설정합니다. 절대 기준으로 이 기준은 여러 점 또는 여러 점에 해당할 수 있지만 그 중 일부만 실제로 가치가 있습니다. 12번의 거래로 균형에 도달했지만 95%의 손실이 발생했습니다. 어떤 옵션이 더 좋습니까? - 따라서 해당 매개변수 벡터의 평면 교차를 배제하는 방식으로 최적화 기준을 제시하면 글로벌 극한값으로의 수렴을 촉진하고 가속화할 수 있을 뿐만 아니라 거래의 명확한 변형을 얻을 수 있습니다. 시스템 매개변수.

 
Edgar Akhmadeev :

전문가에 의해 중단된 여러 패스(입력 변수의 정확성 확인)를 거친 후 유전학은 영원히 멈췄습니다. 중단 후:

실제 결과가 없습니다.

포럼 어딘가에 이에 대해 글을 썼는지 기억나지 않지만 실제로는 문제이고 MT에서 왜 그렇게 구현되었는지 명확하지 않습니다. 이론적으로 EA 가 오류 코드 "잘못된 매개변수"를 반환한 경우 테스터는 채우기가 완료되도록 대가로 다른 인스턴스를 생성해야 합니다.

 
Stanislav Korotky :

포럼 어딘가에 이에 대해 글을 썼는지 기억나지 않지만 실제로는 문제이고 MT에서 왜 그렇게 구현되었는지 명확하지 않습니다. 이론적으로 EA 가 오류 코드 "잘못된 매개변수"를 반환한 경우 테스터는 채우기가 완료되도록 대가로 다른 인스턴스를 생성해야 합니다.

모든 잘못된 매개변수 조합에 대해 INIT_PARAMETERS_INCORRECT가 반환되는 경우 너무 많은 매개변수가 있고 오류와 함께 생성이 종료됩니다. 따라서 잘못된 특정 매개변수가 범위를 벗어난 경우에만 INIT_PARAMETERS_INCORRECT를 반환합니다. 그리고 조합이 잘못된 경우(한 매개변수가 다른 매개변수를 초과해서는 안 됨) 전달을 중지하고 INIT_SUCCEEDED 및 Custom = -N을 반환합니다. 아마도 유전을 망칠 수 있지만 옵션이 보이지 않습니다. 또는 오히려 잘못된 조합을 제거하는 옵션이 있지만(특정 경우 - 한 매개변수를 다른 매개변수에 대한 델타로 만들기: v1=X, v2=Y+v1) 이것은 너무 강한 돌연변이 유발원입니다. 두 개의 매개변수가 단단히 연결되어 하나가 변경되면 모든 것이 이동합니다. 나는 오류 대신 가짜 결과를 위해 이 옵션을 남겼습니다.

 
Edgar Akhmadeev :

모든 잘못된 매개변수 조합에 대해 INIT_PARAMETERS_INCORRECT가 반환되는 경우 너무 많은 매개변수가 있고 오류와 함께 생성이 종료됩니다. 따라서 잘못된 특정 매개변수가 범위를 벗어난 경우에만 INIT_PARAMETERS_INCORRECT를 반환합니다. 그리고 조합이 잘못된 경우(한 매개변수가 다른 매개변수를 초과해서는 안 됨) 전달을 중지하고 INIT_SUCCEEDED 및 Custom = -N을 반환합니다. 아마도 유전을 망칠 수 있지만 옵션이 보이지 않습니다. 또는 오히려 잘못된 조합을 제거하는 옵션이 있지만(특정 경우 - 한 매개변수를 다른 매개변수에 대한 델타로 만들기: v1=X, v2=Y+v1) 이것은 너무 강한 돌연변이 유발원입니다. 두 개의 매개변수가 단단히 연결되어 하나가 변경되면 모든 것이 이동합니다. 나는 오류 대신 가짜 결과를 위해 이 옵션을 남겼습니다.

반환할 좋은 변형 - 오류 대신 잘못된 변형에서 DBL_MAX .

일반적으로 MT 테스터의 다중 통화 틱별 신뢰성의 모든 매력을 유지하면서 외부 하를 구현하는 동시에 클라우드를 포함한 프로세서 및/또는 네트워크 에이전트의 모든 코어를 사용할 수 있습니다. 요원이 패스를 조기에 완료하거나 인원 부족으로 인해 유휴 상태인 상황을 피하는 동안 ha.

정보가 있습니다. TSSSSS .... 일반 옵티마이저에서는 여러 유형의 AO를 구현하고 매개변수를 사용하는 경우에도 계획되지만 이는 정확하지 않습니다.

 
Andrey Dik :

반환할 좋은 변형 - 오류 대신 잘못된 변형에서 DBL_MAX .

임의의 값을 반환하면 AO가 더 나빠질까요?

 
Igor Makanu :

임의의 값을 반환하면 AO가 더 나빠질까요?

훨씬 나쁜.

우리의 목표가 "모스크" AO를 가루로 만드는 것이라면 가장 좋은 방법은 난수를 반환하는 것입니다.

 
Andrey Dik :

반환할 좋은 변형 - 오류 대신 잘못된 변형에서 DBL_MAX .

이것은 너무 많은 그래프로 유용한 결과를 볼 수 없습니다. 최악의 Custom보다 약간 큰 값을 반환합니다. 가장 중요한 것은 개선을 위한 올바른 방향을 설정하는 것입니다.

이고르 마카누 :

임의의 값을 반환하면 AO가 더 나빠질까요?

의미는 어떻습니까? 가장 중요한 것은 올바른 방향이므로 약한 결과가 아니라 최악의 결과를 보였다는 것을 GA에게 보여줘야합니다.

 
Slava :

"전혀 작동하지 않습니다"은(는) 무슨 뜻인가요?

어떻게 오류를 재현할 수 있습니까?

OnTradeTransaction제거 했는데 도움이 되지 않았습니다. 더 생각하겠습니다.