같은 전문가의 완전히 다른 결과

 

나는 메타트레이더의 백테스터로부터 얻은 결과에 대해 매우, 매우 의아해합니다. 나는 다른 누군가가 비슷한 경험을 하고 내 원인이 무엇인지 알 수 있기를 바랍니다.

내가 개발한 전문가는 백테스트와 최적화 및 워크포워드 최적화 실행의 다양한 변형에서 우수한 결과를 얻었습니다. 그러다 갑자기 내가 의식적으로 큰 변화를 일으키지 않은 상태에서 결과는 보통/미미한 것이 되었습니다. 그리고 오늘 다시 갑자기 결과가 다시 훌륭해졌습니다.

나는 이제 똑같은 전문가, 똑같은 날짜, 똑같은 설정 파일, 완전히 다른 결과를 가진 백테스팅 보고서를 가지고 있습니다. 데이터가 동일한지 확인하기 위해 최선을 다했습니다(어제 다운로드한 기록 데이터에서 재구성했지만 오늘과 그때는 여전히 매우 다른 결과를 얻었습니다).

내가 찾은 유일한 차이점은 확산입니다. 내가 알아낼 수 있는 한, MT4는 전체 백테스팅 실행에 걸친 스프레드가 현재 스프레드와 동일할 것이라고 가정합니다. 시스템의 다소 이상한 "기능"이지만 내 관찰에 대한 설명은 아닙니다. 오늘 타이트한 스프레드의 경우 결과는 평범했지만 어제 약간 더 넓은 스프레드의 경우 결과는 믿을 수 없을 정도로 좋았습니다.

이러한 경험 후에 나는 소프트웨어에서 얻은 정보에 의존할 수 있는지 확신이 서지 않으며, 어떤 식으로든 잘못 인도되는 것을 피하기 위해 사용할 수 있는 설명이 절실히 필요합니다. 미래.

다음은 동일한 전문가, 동일한 기간(2011/1/1 ~ 2011/7/26) 및 동일한 설정을 사용한 백테스트에 대한 평범한 결과와 믿을 수 없을 정도로 좋은 결과의 그래프입니다. 거래는 일반적으로 몇 시간 이상 열려 있으며 이익실현 또는 손절매를 사용하지 않습니다(모든 진입 및 퇴출은 지표 상태만을 기반으로 함). 두 번의 런에서 거래 횟수는 211과 173입니다. 두 번째 그래프에서는 손실이 있지만 이익 요소는 매우 높습니다.


 
Elroch :


나는 이제 똑같은 전문가, 똑같은 날짜, 똑같은 설정 파일, 완전히 다른 결과를 가진 백테스팅 보고서를 가지고 있습니다. 데이터가 동일한지 확인하기 위해 최선을 다했습니다(어제 다운로드한 기록 데이터에서 재구성했지만 오늘과 그때는 여전히 매우 다른 결과를 얻었습니다).


데이터를 다시 다운로드하고 터미널 연결을 끊고(잘못된 계정 번호 로 로그온하여 이 작업을 수행합니다) 터미널에 이미 저장된 기록과 데이터를 삭제하고 데이터를 가져옵니다. M1 ? 기간 변환기를 사용하여 필요한 다른 기간을 만들고 가져옵니다. . . 실행하려는 날짜 기간에 필요한 데이터가 있는지 확인하십시오. . . EA를 실행하십시오.
 
감사합니다. 하지만 저는 당신이 제안한 방식으로 10년 동안 다운로드한 1분 데이터의 데이터를 한 번 이상 구축했고, 소프트웨어를 여러 번 다시 시작하고, 정확한 EA와 설정을 저장했지만 나중에 실행했을 때 여전히 완전히 다른 결과를 얻었습니다. 나는 아직도 의아해한다.
 

Elroch :

내가 개발한 전문가는 백테스트와 최적화 및 워크포워드 최적화 실행의 다양한 변형에서 우수한 결과를 얻었습니다.

그러다 갑자기 내가 의식적으로 큰 변화를 일으키지 않은 상태에서 결과는 보통/미미한 것이 되었습니다.

그리고 오늘 다시 갑자기 결과가 다시 훌륭해졌습니다.

테스터는 CURRENT 스프레드를 사용합니다. 당신 EA는 변화에 매우 민감합니다.
 
WHRoeder :
테스터는 CURRENT 스프레드를 사용합니다. 당신 EA는 변화에 매우 민감합니다.

내가 언급했듯이 나는 그것을 발견했지만 오늘 1.2핍의 스프레드로 평범한 결과를 얻었으므로 이것은 설명이 아닙니다.
 

진입 및 퇴출이 실제로 지표 값에만 기초한 경우 적당한 로트 크기를 거래하고 핍/거래에서 좋은 평균을 얻고 있는 경우 남은 옵션이 많지 않습니다.

a) currupt 히스토리 파일

b) 임의성과 같은 것이 포함됨

c) 일부 전역 변수에 종속됨(두 테스트 간에 변경됨)

d) 일부 브로커 설정이 변경되었을 수 있습니다.

모든 틱 모드에서 테스트를 실행하지 않는 이유는 무엇입니까? 이것은 당신에게 데이터의 품질을 보여줄 것입니다-

 

의사 틱 전략 테스터 가 각 테스트 실행에 대해 동일하게 생성하고 EA에서 사용하는 지표를 수행하고 실시간 거래에서와 같이 최신 막대의 각 틱에 대한 값을 생성합니까?

 

흥미로운 지적 감사합니다, zzue.

(a) 손상된 히스토리 파일이 동일한 EA로 백테스팅 결과의 순서를 설명할 수 있는 것은 불가능해 보입니다. 메타 트레이더를 새로 설치하고 다운로드한 고품질 1분 데이터 등의 모든 데이터를 재구성했습니다.

(b) 무작위 효과(나쁜 데이터 포함)로 인한 설명의 문제점은 거래를 지속적으로 엄청나게 개선해야 하는 이유를 알기가 매우 어렵다는 것입니다.

(c) 며칠 동안 내 코드가 실수로 변경되었을 수 있다고 생각했습니다. 하지만 오늘 믿을 수 없을 정도로 좋은 결과를 얻었을 때 즉시 전문가(소스 및 ex4) 사본과 설정 파일을 저장했습니다. 그러나 똑같은 전문가와 설정은 나중에 실행했을 때 평범한 결과를 제공했습니다.

(d) 예, 중개인이 스프레드를 넘어 관련성이 있는지 확신할 수 없습니다. 물론 이들은 모두 실시간 거래가 아닌 백테스트이며, 데이터는 대부분 다운로드된 10년 1분 데이터로 구성되었습니다.

(e) 전문가가 바에서 포지션을 드나들고 스톱이나 이익 목표를 전혀 사용하지 않고(어쨌든 연구 중인 버전에서), 내 이해는 결과에 영향을 미칠 수 있는 유일한 값은 오픈, 하이, 5분 이상 차트의 저가 및 종가(실제로 종가조차도 관련이 없는 경우가 있습니다. 동일한 지표의 여러 변형이 사용되며 이러한 경우 데이터 포인트로 (H+L)/2를 사용합니다. , 진입 및 퇴장은 막대가 열릴 때 발생하므로 열린 데이터와 스프레드도 중요합니다. 거래가 열리거나 닫히는지는 현재 막대가 아닌 이전 막대의 지표 값에 따라 다릅니다.

...하지만 철저함을 위해 "모든 진드기"로 실행했습니다. 결과는 마지막 거래가 마지막 5분 막대가 아닌 마지막 1분 막대에서 마감되었다는 작은 차이를 제외하고는 이전 결과와 거의 동일했습니다.


SDC, 생성된 모든 틱 이 동일한지 확신할 수 없지만 위의 (e)에서 zzueg에 대한 응답으로 작성한 요점을 명심하십시오.
 

모든 틱 모드에서 결과가 변경된다는 의미는 아닙니다. 보고된 불일치 차트 오류의 양에 관심이 있습니다.

지표에 기반한 전략으로는 이러한 차이를 설명할 수 없기 때문에 역사의 격차는 거의 없을 것입니다.

내 터미널이 항상 오프라인이기 때문에 손상된 데이터에만 비슷한 문제가 있었습니다. 더 이상 그런 일은 경험하지 못했습니다.

전역 변수 iment 사용: 코드에 GlobalVariableGet()과 같은 것이 있습니까? 이 변수는 테스트 환경에 국한되지 않습니다.

마지막으로 모두에게 질문했습니다. 로그에 오류가 있습니까?

@SDC, 예 의사 틱은 각 실행에 대해 동일하게 생성됩니다. 90% 정확도의 내 경험 방식이지만 여전히 항상 동일합니다.

 

관찰해 주셔서 다시 한 번 감사드립니다. 저는 이제 두 개의 극도로 다른 결과 세트를 제공하는 두 개의 메타 트레이더 설치가 있는 흥미로운 상황에 있습니다(EA와 설정을 한 곳에서 다른 곳으로 직접 복사하고 두 가지 모두에서 전략 테스터 를 실행하는 경우에도 마찬가지입니다. 이것은 데이터를 가리킬 것입니다. , 하지만 여전히 논의된 이유 때문에 그것을 어떻게 설명할 수 있는지 보기가 매우 어렵습니다. 어떤 차이점이 있는지 확인하는 가장 좋은 방법이 무엇인지 궁금합니다.

방금 별도의 metatrader 설치에서 두 가지 실행에 대한 로그를 확인했으며 둘 중 하나에 오류가 없습니다.

내 코드에는 GlobalVariableGet()과 같은 것이 없습니다. EA는 4개의 다른 시간 프레임에서 단일 사용자 지정 지표의 복사본 5개를 사용하며, 하나는 다른 매개변수와 다른 매개변수를 가지고 있습니다.

 

결정적인 증거를 찾았지만 그 의미를 잘 모르겠습니다.

평범하지 않은 결과를 제공하는 설치에서 나는 실제 돈 브로커 a/c와의 연결에서 로그 아웃하고 동일한 브로커의 연습 a/c에 다시 로그인했습니다. 이 작업을 수행한 후(다른 작업은 수행하지 않음) 전략 테스터 는 다른 메타트레이더 사본(동일한 연습 브로커 a/c에서 실행)에 유사한 놀라운 결과를 제공했습니다. 참고로 브로커는 Oanda입니다.

메타트레이더 클라이언트가 다른 에어컨 간에 전환할 때 기록 데이터를 어떻게 처리하는지 잘 모르겠지만 모든 오래된 데이터는 브로커가 아닌 다운로드한 동일한 1분 데이터에서 가져온다는 사실 때문에 내가 무엇을 이해하기가 매우 어렵습니다. 여기에서 일어나고 있습니다(연초의 거래는 실제 에어컨과 연결되어 있을 때보다 연습 에어컨과 연결된 백테스트 실행에서 훨씬 낫습니다).