오류, 버그, 질문 - 페이지 1941

 

지식이 있는 사람들이여, MT5가 최적화 중에 어떻게 이러한 결과를 생성할 수 있습니까?

이것은 고립된 경우가 아닙니다. 게다가 아무 줄이나 골라서 하나의 테스트를 해보면 결과가 표와 완전히 달라집니다.

또한 시각화가 있거나 없는 단일 테스트는 완전히 다른 테스트 결과를 제공합니다.

또한 테스트를 여러 번 실행하면 결과가 때때로 근본적으로 다를 수 있습니다.

=====

지난주 터미널에서 시작되었습니다. 그 전에는 제대로 작동하는 것 같았습니다. 글쎄, 또는 나는 잼을 눈치 채지 못했습니다.

나는 1 년 전에 비슷한 문제가있었습니다. 거기에서 테스터는 Expert Advisors에 대해 불가능한 설정의 결과도 제공했습니다. 예를 들어 Take Profit Expert Advisor가 비활성화되어 있으면 하나의 테스트 결과를 제공하고, 예를 들어 10000000000포인트로 설정하면(즉, 절대 도달할 수 없다는 것이 분명하므로 비활성화된 것으로 간주됩니다. ), 테스터는 완전히 다른 결과를 제공했습니다.


이러한 버그를 처리하는 방법? 왜 그러한 문제가 발생할 수 있습니까? 내가 뭔가 잘못하고 있는 건 아닐까?

파일:
ky1b.jpg  590 kb
 
Andrey Koldorkin :

지식이 있는 사람들이여, MT5가 최적화 중에 어떻게 이러한 결과를 생성할 수 있습니까?

이것은 고립된 경우가 아닙니다. 게다가 아무 줄이나 골라서 하나의 테스트를 해보면 결과가 표와 완전히 달라집니다.

또한 시각화가 있거나 없는 단일 테스트는 완전히 다른 테스트 결과를 제공합니다.

또한 테스트를 여러 번 실행하면 결과가 때때로 근본적으로 다를 수 있습니다.

=====

지난주 터미널에서 시작되었습니다. 그 전에는 제대로 작동하는 것 같았습니다. 글쎄, 또는 나는 잼을 눈치 채지 못했습니다.

나는 1 년 전에 비슷한 문제가있었습니다. 거기에서 테스터는 Expert Advisors에 대해 불가능한 설정의 결과도 제공했습니다. 예를 들어 Take Profit Expert Advisor가 비활성화되어 있으면 하나의 테스트 결과를 제공하고, 예를 들어 10000000000포인트로 설정하면(즉, 절대 도달할 수 없다는 것이 분명하므로 비활성화된 것으로 간주됩니다. ), 테스터는 완전히 다른 결과를 제공했습니다.


이러한 버그를 처리하는 방법? 왜 그러한 문제가 발생할 수 있습니까? 내가 뭔가 잘못하고 있는 건 아닐까?

EA 시작 부분에 두 줄 삽입

 #define REPORT_TESTER // В тестере будут автоматически записываться отчеты
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

이렇게 하면 테스터가 각 옵티마이저 통과 및 단일 실행에 대한 자세한 보고서를 저장하게 됩니다.

최적화 프로그램과 단일 실행 변형에서 수신된 실행 보고서를 비교합니다.

 
MQL5 컴파일러는 침묵하지만 MQL4++는 경고합니다.
m_pixels[y*m_width+x]=(r<< 16 |g<< 8 |b<< 0 | 255 << 24 ) & 0xffffffff ; // check operator precedence for possible error; use parentheses to clarify precedence

누가 옳습니까?

 
컴파일 오류 (MT5b1641)
 void NewFunc( int ) {}

#define MACROS(A) New ##A

void OnStart ()
{  
  NewFunc( 0 );       // OK
  MACROS(Func( 0 )); // Error: 'NewFunc(0)' - undeclared identifier
}
 

매크로를 활성화해 주세요

__SCRIPT__ - 컴파일된 mq5 파일은 스크립트입니다.

__INDICATOR__ - 컴파일된 mq5 파일은 표시기입니다.

__EXPERT__ - 컴파일된 mq5 파일은 Expert Advisor입니다.

__SERVICE__ - 컴파일된 mq5 파일은 서비스입니다.


MQLInfoInteger 를 사용할 수 없는 상황

 #ifdef __EXPERT__

void OnTick ()
{
   static bool FirstRun = true ;
  
   if (FirstRun)  
  {
     Print ( "FirstTick!" );
    
    FirstRun = false ;
  }
  
  OldOnTick();
}

#endif // __EXPERT__

#ifdef __SERVICE__

void OnTick ( const string &Symb )
{
   static bool FirstRun = true ;
  
   if (FirstRun)  
  {
     Print ( "FirstTick!" );
    
    FirstRun = false ;
  }
  
  OldOnTick(Symb);
}

#endif // __SERVICE__

#define OnTick OldOnTick

// Дальше код советника/сервиса.

 
MQL을 통해 PR 에이전트를 얻는 방법은 무엇입니까? 에이전트의 속도를 측정하고 홍보를 하고 싶었지만 여기 가 아니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber :
MQL을 통해 PR 에이전트를 얻는 방법은 무엇입니까? 에이전트의 속도를 측정하고 홍보를 하고 싶었지만 여기 가 아니다.

의미는 어떻습니까? 모두 동일하게 에이전트를 선택하지 않을 것입니다. PR 없이 완료하는 데 너무 오래 걸리는 경우 작업을 중단할 수 있습니다.

 
Stanislav Korotky :

의미는 어떻습니까? 모두 동일하게 에이전트를 선택하지 않을 것입니다. PR 없이 완료하는 데 너무 오래 걸리는 경우 작업을 중단할 수 있습니다.

그 의미는 PR-Agent와 실제 성능이 일치하지 않음을 나타낼 가능성에 있습니다. 또는 그 반대의 경우 - 등급 계산의 적절성을 보여줍니다.

 
MetaQuotes-Demo에서 MT4 데모 계정을 열 수 없습니다.
 

"Every tick" 모드의 MT4 테스터는 기록에 없는 막대에서 거래를 합니다.