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

 

컴파일 중 입력 설정을 재설정하는 버그를 재현합니다.

조언자

 input int inRange = 0 ;

void OnInit () {}

1. inRange = 25로 설정하고 단일 패스 실행

2. 다음 줄의 테스터 설정 탭에서 CTRL + V를 만듭니다.

inRange= 123

3. Expert Advisor를 다시 컴파일하십시오.

4. inRange가 25로 재설정되었음을 알 수 있습니다. 123이어야 합니다.

 
Slava :

테스터에서 타이머 또는 슬립을 통해 0.5초씩 이동했습니다. 무슨 일이 있었는지 식별하는 방법? TimeTradeServer 는 1초 미만 동안 데이터를 표시하지 않습니다.

 
fxsaber :

컴파일 중 입력 설정을 재설정하는 버그를 재현합니다.

조언자

1. inRange = 25로 설정하고 단일 패스 실행

2. 다음 줄의 테스터 설정 탭에서 CTRL + V를 만듭니다.

3. Expert Advisor를 다시 컴파일하십시오.

4. inRange가 25로 재설정되었음을 알 수 있습니다. 123이어야 합니다.

이것은 버그가 아닙니다.

설계된 대로. 테스트 버튼을 누를 때까지 현재 매개변수는 현재 세트 <expert_name>.set에 기록되지 않습니다.

재컴파일 중에 매개변수의 구성이 변경되지 않은 경우 해당 값은 현재 세트에서 복원됩니다.

 
Slava :

이것은 버그가 아닙니다.

설계된 대로. 테스트 버튼을 누를 때까지 현재 매개변수는 현재 세트 <expert_name>.set에 기록되지 않습니다.

재컴파일 중에 매개변수의 구성이 변경되지 않은 경우 해당 값은 현재 세트에서 복원됩니다.

이것은 사실이 아닙니다. 수동으로 123을 작성하면 컴파일 시 값이 변경되지 않습니다.

 
설정이 날아가 버린다는 것은 이미이 주제에 대해서도 썼지 만 답변이 없었습니다. 사실, 사용자 정의 매개변수로 디버그하는 것이 불가능해집니다. 아무것도 변경되지 않은 경우에도 다시 빌드할 때마다 디버깅합니다. 재구축은 매개변수를 재설정합니다. 당신은 고문을 변경하고 매개 변수를 못 박는 변태를해야합니다. 이는 매우 편리하지 않습니다.
Новая версия платформы MetaTrader 5 build 2190
Новая версия платформы MetaTrader 5 build 2190
  • 2019.11.25
  • www.mql5.com
В пятницу 18 октября 2019 года будет выпущена обновленная версия платформы MetaTrader 5...
 
Andrey Khatimlianskii :

iTime으로 다시 최적화한 것:


M5에서 작업:


이것은 오래된 버그입니다.

이 특정 테스트 범위에서 실제 EURUSD 틱에 정확하게 나타납니다.

수정했습니다.

 
traveller00 :
설정이 날아가는 것을, 나는 또한 이 주제에 대해 썼지 만 대답이 없었습니다. 사실, 사용자 정의 매개변수로 디버그하는 것이 불가능해집니다. 아무것도 변경되지 않은 경우에도 다시 빌드할 때마다 디버깅합니다. 재구축은 매개변수를 재설정합니다. 당신은 고문을 변경하고 매개 변수를 못 박는 변태를해야합니다. 이는 매우 편리하지 않습니다.

설명된 문제를 재현하는 단계에 대해 아무 말도 하지 않았습니다.

개인적으로 나는 재현 할 수 없었습니다.

입력 매개변수를 기본값으로 재설정하는 경우는 한 번뿐입니다. 이 EA의 매개변수를 변경하면

 
fxsaber :

터미널 역사상 가격이 정상화되지 않았습니다!

2019년 12월 12일부터 MQ-Demo 및 MQ-Beta에서 가격이 정상화되었습니다.

 

Build 2280을 사용하며, 따옴표가 없는 경우 기호와 마침표를 사용합니다. 이 경우 이것은 거래소, 중개인 개설, 기호 UCAD-12.19, 기간 09/01/2019-09/03/2019입니다. 간단한 Expert Advisor가 시작되었습니다(아래). 하나씩 운전하면 모든 것이 순서대로 진행되며 히스토리가없고 막대가 0이고 틱이 0입니다. 최적화를 실행 하면 유전학이든 전체이든 상관없이 많은 오류가 로그에 기록됩니다.

genetic pass ( 0 , 504 ) tested with error "critical runtime error 517 in OnInit function (module Experts\test.ex5 exception 0xc0000005)" in 0 : 00 : 00.041
 input int test= 1 ;

double OnTester ()
{
   return 0 ;
}

void Test( const MqlTick &Tick)
{
}

void OnInit ()
{
   MqlTick OldTicks[];
   int OldTicksCount= CopyTicks ( _Symbol ,OldTicks, COPY_TICKS_ALL );
   while (OldTicksCount>= 1000 )
    OldTicksCount= CopyTicks ( _Symbol ,OldTicks, COPY_TICKS_ALL ,OldTicks[OldTicksCount- 500 ].time_msc);
   for ( int i= 0 ;i!= ArraySize (OldTicks);++i)
    Test(OldTicks[i]);
}

OldTicks 배열에 액세스하는 것에 대한 반응처럼 보이지만 이유는 알 수 없습니다. 함수의 반환 결과를 배열 크기로 바꾸는 것은 도움이 되지 않습니다. 그것으로 무엇을해야할지 알 수 없습니다.

 

빌드 2280. 예를 들어, 유전과 같은 최적화를 시작할 때 설정 탭의 모든 필드가 회색으로 바뀌고 변경할 수 없지만 최적화된 필드(예: 최대 사용자 정의 기준)가 활성 상태로 유지되는 이유는 무엇입니까? 최적화나 버그 중간에 기준을 변경할 수 있나요?

PS 흠, 항상 일어나는 것은 아닌 것 같습니다.

PPS 반복하는 방법을 이해했습니다. 처음에는 테스트를 시작한 후 버튼이 실제로 비활성화 상태가 됩니다. 그러나 높이 설정이 있는 약간 압축된 아래쪽 창이 있으므로 결과적으로 세로 스크롤 이 있습니다. 기준이 더 이상 표시되지 않도록 위로 스크롤한 다음 다시 아래로 스크롤하면 기준이 다시 활성화된 것을 확인할 수 있습니다.
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Оптимизация стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...