MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안 - 페이지 59

 
Sergey Chalyshev :

최적화 결과 라인에서 매개변수가 정확하고 테스터 로그의 매개변수와 일치하며 완전히 다른 매개변수로 테스트를 위해 EA가 시작됩니다.

EA 자체에서 입력 매개변수를 인쇄했습니다. 우리는 일치했습니다.

 
fxsaber :

원래 기호의 데이터가 사용자 지정 기호와 완벽하게 일치하기 때문입니다. 그러나 사용자 정의는 오류 없이 통과하지만 원본은 그렇지 않습니다.

분명히 그는 본질을 이해하지 못했습니다. 스크립트는 csv만 씁니다. 테스트는 어떻게 진행되나요?

 
Andrey Khatimlianskii :

분명히 그는 본질을 이해하지 못했습니다. 스크립트는 csv만 씁니다. 테스트는 어떻게 진행되나요?

이 csv의 스크립트 는 사용자 정의 기호 와 원본 기호(서버 측에서 가져옴)를 생성합니다.

저것들. 두 기호는 막대와 틱으로 모두 동일한 인용 기록을 가지고 있습니다.

 
fxsaber :

이 csv의 스크립트는 사용자 정의 기호와 원본 기호를 만듭니다( 서버 측에서 가져옴 ).

저것들. 두 기호는 막대와 틱으로 모두 동일한 인용 기록을 가지고 있습니다.

이것은 언급했어야 했다.

히스토리 작업을 위한 MT5 서버의 메커니즘을 모르겠습니다.

 
프레임 모드의 Expert Advisor가 비정상 종료 작업을 완료한 후 1GB mqd 파일 읽기를 거부했습니다. 터미널을 닫았을 때 mqd가 2GB로 커졌습니다. 저것들. 터미널이 mqd에 대해 FileClose하지 않았습니다.
 

유전학 동안 FrameNext 의 패스 번호는 opt 파일의 패스 번호와 일치하지 않습니다.

예를 들어 FrameNext는 10041014291을 반환하고 opt는 2465를 반환합니다.

차이점의 이유는 무엇입니까? 하나를 다른 것과 어떻게 비교합니까?

GUI 테이블에는 패스 번호 대신 두 개의 숫자가 있습니다. 그러나 패스 번호가 빈 값이 되므로 최적화 후에 옵트 파일을 다시 열 가치가 있습니다.


GA로 설명해주세요.


추신: GA와 싱글 사이의 불일치를 재현하는 방법을 배웠습니다. GA가 프레임을 통과하는 상태를 저장했습니다. 하지만 10,000 패스에서 관심 있는 것을 식별할 수 없습니다. FrameNext의 전달과 opt의 전달은 다른 값이기 때문입니다.

 
fxsaber :

유전학 동안 FrameNext의 패스 번호는 opt 파일의 패스 번호와 일치하지 않습니다.

예를 들어 FrameNext는 10041014291을 반환하고 opt는 2465를 반환합니다.

차이점의 이유는 무엇입니까? 하나를 다른 것과 어떻게 비교합니까?

GUI 테이블에는 패스 번호 대신 두 개의 숫자가 있습니다. 그러나 패스 번호가 빈 값이 되므로 최적화 후에 옵트 파일을 다시 열 가치가 있습니다.


GA로 설명해주세요.


추신: GA와 싱글 사이의 불일치를 재현하는 방법을 배웠습니다. GA가 프레임을 통과하는 상태를 저장했습니다. 하지만 10,000 패스에서 관심 있는 것을 식별할 수 없습니다. FrameNext의 전달과 opt의 전달은 다른 값이기 때문입니다.

2개의 숫자 - 세대 번호, 개인 번호.

비어 있으면 결과가 opt 파일에서 로드됩니다(즉, 이전 유전자 최적화의 결과).

유전에는 두 가지 유형이 있다

1. 매개변수 공간은 64비트 숫자로 제한됩니다. 이 경우 유전자형 번호에 따른 매개변수 구성 계산은 간단한 산술 연산 세트로 축소됩니다.

2. 매개변수 공간은 아래에서 최대 64비트 숫자로 제한되고 위에서부터 1024비트 숫자로 제한됩니다. 유전자형을 매개변수 집합으로 더 복잡한 변환. 프레임에는 통과 번호의 최하위 비트 64개만 포함되기 때문에 이것이 번호 불일치 경우인 것 같습니다.

최적화에 새로운 매개변수가 추가되거나 기존 매개변수의 시작-단계-정지가 변경되는 즉시 전체 넘버링이 변경됩니다. 따라서 통과 번호에 집중할 필요가 없으며 매개 변수의 구성에만 중점을 둡니다.

Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
Документация по MQL5: Основы языка / Операции и выражения / Арифметические операции
  • www.mql5.com
Операция инкремента и декремента применяются только к переменным, к константам не применяются. Префиксныe инкремент (++i) и декремент (--k) применяются к переменной непосредственно перед использованием этой переменной в выражении. Могут возникнуть вычислительные проблемы при переносе вышеуказанного выражения из одной среды программирования в...
 
Slava :

2개의 숫자 - 세대 번호, 개인 번호.

비어 있으면 결과가 opt 파일에서 로드됩니다(즉, 이전 유전자 최적화의 결과).

유전자에는 두 가지 유형이 있다

1. 매개변수 공간은 64비트 숫자로 제한됩니다. 이 경우 유전자형 번호에 따른 매개변수 구성 계산은 간단한 산술 연산 세트로 축소됩니다.

2. 매개변수 공간은 아래에서 최대 64비트 숫자로 제한되고 위에서부터 1024비트 숫자로 제한됩니다. 유전자형을 매개변수 집합으로 더 복잡한 변환. 프레임에는 최대 64비트 패스 번호만 포함되므로 이것이 번호 불일치 경우인 것 같습니다.

최적화에 새로운 매개변수가 추가되거나 기존 매개변수의 시작-단계-정지가 변경되는 즉시 전체 넘버링이 변경됩니다. 따라서 통과 번호에 집중할 필요가 없으며 매개 변수의 구성에만 중점을 둡니다.

고맙습니다. 그렇다면 FrameNext_Pass와 opt-Pass를 비교하는 방법은 무엇입니까?

 
fxsaber :

추신: GA와 싱글 사이의 불일치를 재현하는 방법을 배웠습니다. GA가 프레임을 통과하는 상태를 저장했습니다. 하지만 10,000 패스에서 관심 있는 것을 식별할 수 없습니다. FrameNext의 전달과 opt의 전달은 다른 값이기 때문입니다.

불일치의 원인을 찾았습니다!


GA 최적화 중 프레임을 통해 얻은 상태와 일치합니다. 그리고 싱글 패스 상태.


프레임 상태에서 실행은 기록에 없는 틱으로 진행됩니다. 나는 즉시 초당 정확히 실행되는 많은 거래/주문이 있음을 알아차렸습니다.

예를 들어 기록의 단일 패스에는 2019.06.04 02:00:00에 항목이 있습니다. 206 이고 프레임 패스는 2019.06.04 02:00:00입니다. 000 (현재 틱 기록에는 틱이 없음).


GA 최적화는 단일 패스와 다른 틱 기록에서 작동합니다! 그리고 이 이야기가 항상 다른 것은 아닙니다. 예를 들어 더 작은 간격으로 GA를 수행하면 모든 것이 정상입니다.


ZY 타이머 사용에 대한 의심이 사라집니다. EA에는 타이머가 없습니다.

 
fxsaber :

불일치의 원인을 찾았습니다!


GA 최적화 중 프레임을 통해 얻은 상태와 일치합니다. 그리고 싱글 패스 상태.


프레임 상태에서 실행은 기록에 없는 틱으로 진행됩니다. 나는 즉시 초당 정확히 실행되는 많은 거래/주문이 있음을 알아차렸습니다.

예를 들어 기록의 단일 패스에는 2019.06.04 02:00:00에 항목이 있습니다. 206 이고 프레임 패스는 2019.06.04 02:00:00입니다. 000 (현재 틱 기록에는 틱이 없음).


GA 최적화는 단일 패스와 다른 틱 기록에서 작동합니다! 그리고 이 이야기가 항상 다른 것은 아닙니다. 예를 들어 더 작은 간격으로 GA를 수행하면 모든 것이 정상입니다.


ZY 타이머 사용에 대한 의심이 사라집니다. EA에는 타이머가 없습니다.

실제 틱에 대한 테스트/최적화?

에이전트가 소유하거나 클라우드에서?

사용자 지정 기호 에 대해 테스트하는 경우 클라우드 에이전트가 제거됩니다. 이것은 에이전트가 우리 자신의 에이전트임을 의미하며 로그를 가져올 수 있으며 로그에서 기록이 동기화 된 방법을 볼 수 있습니다.