MetaTrader 5 전략 테스터: 오류, 버그, 개선 제안

 

현재 MetaTrader 5 전략 테스터는 MQ 팀에서 심층 수정을 진행하고 있습니다. MetaQuotes 팀 덕분에 지난 2년 동안 많은 작업이 수행되었음에도 불구하고 이 테스터는 많은 질문을 제기합니다. 불행히도 최신 변경 사항은 테스터의 시각적 디자인에 더 중점을 두고 있으므로 초보자가 작업하기가 더 쉬우며 작업 역학은 경험 많은 사용자에게 여전히 질문을 유발합니다.

저는 이 스레드를 MetaTrader 5 테스터에 대한 건설적인 비판에 할애하고 직접 개발자에게 다가갈 수 있는 곳으로 만들 것을 제안합니다.

모든 진술/토론/비판/비판은 명확한 주장과 재현 가능한 결과와 함께 제출되어야 합니다. 토론의 편견, 나는 당신이 실행 및 가격 책정 메커니즘에 대해 요청합니다 . 프릴, 아이콘 및 진공 상태의 구형 말(모든 코어가 로드되기를 원함, 단일 실행으로 멀티스레딩을 원함 등)에 대한 소원은 금지되지는 않지만 환영하지 않습니다.

가자.


MetaTrader 5 테스터가 지정가 주문 실행을 건너뜁니다.

1. 사용자 지정 틱은 이진 파일(메시지에 첨부됨)에 배열 MqlTick으로 제공됩니다.

2. 사용자 정의 데이터는 특수 스크립트에 의해 처리되고 기기의 히스토리에 로드됩니다. 스크립트도 게시물에 첨부됩니다.

3. 결과 차트에서 전문가 고문이 시작되어 논리에 따라 거래가 이루어집니다. Expert Advisor는 실제 틱 모드에서 작동합니다.

4. 00:11:05:085에 지정가 주문이 10422.5의 가격으로 설정되었습니다. 현재 설정시 가격은 10422.0 입니다.

5. 00:11:06.179에 마지막 가격이 10424.0에 발생했습니다. 거래소 가격 책정 규칙에 따르면 SellLimit 지정가 주문은 10422.5의 가격으로 실행되어야 하는데, 그렇지 않습니다. 지정가 주문이 허공에 매달려 있는 것처럼 보이며 완전한 초현실주의를 보여줍니다. 우리보다 더 나쁜 가격을 제시하는 다른 사람과 거래가 이루어지고 있습니다!

6. 그러나 기적은 계속되기 시작합니다. 가격이 반전되어 1024.0에서 10419로 떨어집니다. 즉. 판매 제한 수준은 위에서 아래로 관통됩니다. 그러나 지정가 주문도 대기 중입니다.

불행히도 무슨 일이 일어나고 있는지 보여주는 로그를 찾지 못했습니다. 테스터 로그가 멍청하게 꺼져있는 것 같고 printf가 작동하지 않습니다. 테스터 로그에 대한 출력이 비활성화되었습니다.

요컨대 이것은 이전에는 없었던 또 다른 문제인 것 같습니다.

이와 관련하여 나는 무슨 일이 일어나고 있는지 명확하게 볼 수있는 비디오를 녹화했습니다 (가장 흥미로운 것은 약 30 초에서 시작합니다. 화면 상단에는 밀리 초의 정확도로 현재 시간이 있습니다).



영상은 바의 범위가 지정가 주문 수준을 뚫고 있지만 실행이 되지 않는 것을 분명히 보여주고 있다.

테스터에 대한 다른 질문이 있습니다. 하지만 일단은 정리가 필요하다고 생각합니다.

파일:
 

MetaTrader 5 테스터가 막대를 올바르게 빌드하지 않습니다.

이전 게시물의 사용자 지정 기호가 제공됩니다(데이터는 동일함). 막대는 기호 설정 에 지정된 대로 최종 가격으로 제작됩니다 .

왼쪽은 테스터에 내장된 바의 모습입니다. 오른쪽은 원래 막대입니다.

그래프가 완전히 일치하지 않음을 알 수 있습니다. 왼쪽에 헛소리가 있습니다.

추신 Bid에 의해 구축 된 줄 알았는데 거래 테이프를 보니 그런 가격은 입찰에도 없었고 마지막에도 묻지 않았습니다. 아래에 텍스트 형식으로 거래 피드를 첨부합니다.

파일:
deribit_csv.zip  735 kb
 

어떤 빌드 번호 를 사용하고 있습니까?

매우 이상한 로그 시간 0000.00.00 00:00:00.000

운영 체제가 무엇입니까?

테스터의 데이터 폴더에 로그 파일이 저장되나요?

 

1. "deribit1.out.bin" 파일을 주지 않았습니다. 첨부된 아카이브 "deribit1.out"에서

2. 사용자 지정 기호 설정을 지정하지 않았습니다.

 
나는 Bid로 바를 만듭니다. 입찰/매도 제한이 실행되고 있습니다. 모든 것이 올바르게 작동합니다(더 정확하게는 2093, 더 확인하지 않음).
 
Vasiliy Sokolov :

좋은 기능 무시

 MqlTick tiks[];

if ( FileLoad ( "deribit1.out.bin" , ticks) )
{
// ....
 
Slava :

1. "deribit1.out.bin" 파일을 주지 않았습니다. 첨부된 아카이브 "deribit1.out"에서

2. 사용자 지정 기호 설정을 지정하지 않았습니다.

죄송합니다.

 
fxsaber :

좋은 기능 무시

알겠습니다.

 
Slava :

어떤 빌드 번호 를 사용하고 있습니까?

매우 이상한 로그 시간 0000.00.00 00:00:00.000

귀하의 운영 체제는 무엇입니까?

테스터의 데이터 폴더에 로그 파일이 저장되나요?

빌드가 최신입니다. 2136. 저는 항상 최신 것을 사용합니다.

윈도우 7 SP1

로그가 저장됩니다. 로그가 전략 테스터 로그에 나타났습니다. 그러나 동시에 전략 테스터의 시각화 도우미 로그에는 아무 것도 표시되지 않습니다.


 
Vasiliy Sokolov :

죄송합니다.

고맙습니다. 알아봅시다.

 

의심할 여지 없이, 주요 제안은 테스트 자동화입니다.

워크 포워드 최적화 또는 이와 유사한 작업을 수행하십시오. 테스트는 여러 기간과 도구에 대해 수행해야 합니다.

그리고 이것을 하고 싶지 않다면 소프트웨어 엔지니어링 학위(또는 학위?)가 없는 사람들이 MQL을 사용하여 하도록 하십시오.

이를 위해서는 테스트 기간의 시작 및 종료 시간, 전달 기간의 시작 시간 및 새 테스트 기간으로 테스터를 다시 시작하는 기능을 읽고 쓰는(Get__ \Set__) 기능이 필요합니다.

또한 기존 프레임 처리 설비가 제대로 작동하지 않습니다. 여기 에 대해서는 이미 충분히 설명되어 있습니다.

그리고 또 다른 버그: 앞으로 동일한 설정으로 테스터를 다시 시작하면 멈춥니다. 입력, 기간, 도구를 변경하거나 EA를 다시 컴파일해야 합니다.

최신 공개 빌드는 여전히 2085입니다.

사유: