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

 
Alexey Navoykov :

어떤 개체가 위 또는 아래에 있는지 프로그래밍 방식으로 결정하는 것은 불가능합니다.

템플릿에 개체가 저장되는 순서를 살펴보는 것이 좋습니다. 나중에 개체가 등록될수록 나머지 개체보다 높다고 생각합니다.
 

Documentation - " 가져온 EX5 라이브러리 검색은 다음 순서로 수행됩니다. : 3단계"

 #import "Test.ex5"
         void f();
#import
void OnStart ()
{
        f();
}

결과: 'Test.ex5' 파일을 열 수 없습니다.

'Test.ex5'는 Common\MQL5\Libraries 폴더에 있습니다.

 
fxsaber :
템플릿에 개체가 저장되는 순서를 살펴보는 것이 좋습니다. 나중에 개체가 등록될수록 나머지 개체보다 높다고 생각합니다.
등록 순서에 관계없이 객체를 다른 객체보다 위에 배치하려면 먼저 모든 기간에서 객체를 보이지 않게 한 다음 다시 가시성을 반환해야 합니다.
 
Tetyana Shcherba :

거기에 글을 쓰고 있는 건지 모르겠지만 어드바이저의 업무를 모니터링 하는 시그널에 현실과 전혀 상관없는 경고가 떴다.

""증가의 80%가 16일 만에 이루어집니다. 이것은 376일의 총 신호 수명의 4%입니다.""


어떻게 될 수 있습니까? 아니면 내가 뭔가를 오해하고 있습니까?

저도 어제 이것을 깨달았습니다. 아마도 공식이 수정되고 있는 것 같습니다.
 

최적화에서 INIT_PARAMETERS_INCORRECT를 반환하는 패스에는 다음과 같은 로그 항목이 있습니다.

Core 3   pass 90 tested with error "incorrect input parameters" in 0 : 00 : 00.000
Core 3   pass 91 tested with error "incorrect input parameters" in 0 : 00 : 00.125
Core 3   pass 92 tested with error "incorrect input parameters" in 0 : 00 : 00.141


동시에 어떤 이유로 그들은 Optimization의 결과에 들어갑니다.


스크린샷은 이익을 기준으로 정렬이 진행 중임을 보여주지만 잘못된 패스는 이 정렬을 적용할 수 없습니다. 따라서 목록을 아래로 내려가면 음수 패스 대신 잘못된 패스가 표시됩니다. 값이 0이면 음수가 없다는 것을 나타냅니다. GUI의 이러한 동작에 현혹되지 않는다면 스크롤하여 이러한 매우 부정적인 것을 찾아야 합니다.


이전에는 OnInit 및 ExpertRemove 버그가 최적화 결과에 표시되지 않았습니다. 그리고 그들이 표시되면 테이블의 행이 빨간색으로 표시됩니다. 이 동작을 반환할 수 있습니까?


XML 내보내기가 일부 테이블 행이 잘못된 결과라는 정보를 전달합니까? 내가 올바르게 이해했다면 이 정확성 플래그는 아직 열리지 않은 opt 형식에 저장됩니다.

OnTesterPass에서 계속 받을 수 있으면 좋을 것입니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2018.09.13 06:16

최적화가 끝나면 테스터는 다음을 발행합니다.
Tester  optimization finished, total passes 691200 ( successful 673286 passes)

successl - 끝에 도달한 패스입니다. 나머지는 ExpertRemove에 의해 중단됩니다.


테스터는 에이전트로부터 받은 패스를 어떤 플래그로 분류합니까? OnTesterPass에서 이 플래그를 읽는 방법은 무엇입니까?


추신 최적화 차트에 잘못된 패스를 표시하지 않는 것이 좋습니다.


 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2018.09.13 06:16

최적화가 끝나면 테스터는 다음을 발행합니다.
Tester  optimization finished, total passes 691200 ( successful 673286 passes)

successl - 끝에 도달한 패스입니다. 나머지는 ExpertRemove에 의해 중단됩니다.


테스터가 성공적인 합격에 대해 한마디도 하지 않는 이유를 이해하지 못합니다.

Tester  optimization finished, total passes 1800

ExpertRemove에 의해 중단된 패스가 있지만 결국 위의 인용문에서 볼 수 있는 것과 같은 반응은 전혀 동일하지 않습니다.

 
Slava :
등록 순서에 관계없이 객체를 다른 객체보다 위에 배치하려면 먼저 모든 기간에서 객체를 보이지 않게 한 다음 다시 가시성을 반환해야 합니다.
나는 이미 마지막 페이지에서 그것에 대해 썼습니다. 질문은 달랐습니다. 그러면 이것을 프로그래밍 방식으로 결정하는 방법은 무엇입니까?
 
Alexey Navoykov :
나는 이미 마지막 페이지에서 그것에 대해 썼습니다. 질문은 달랐습니다. 그러면 이것을 프로그래밍 방식으로 결정하는 방법은 무엇입니까?
안 돼요
 
컴파일 중 오류
 typedef void (*fn1)();
void f1() {}
void g()
{
        fn1 f = f1; //(1) нормально
}
/*...*/
typedef void (*fn2)();
void f2() {}
void OnStart ()
{
        fn2 f = f2; //(2) Error: 'f2' - type mismatch
}

차이점이 뭐야?!?

 
Slava :
안 돼요
 // В комментарии к чарту выводит текущую Z-глубину всех графических объектов чарта

#define private public
   #include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003
#undef private

#define STRING_END "\r\n"
#define OBJECT_NAME "name="
#define OBJECT_BEGIN ( "<object>" + STRING_END)

int GetZObjects( string &Names[], const long Chart_ID = 0 )
{
   const int Size = ArrayResize (Names, ObjectsTotal (Chart_ID));
   string Template = EXPERT::TemplateToString(Chart_ID);  
  
   for ( int i = 0 ; i < Size; i++)
  {
    Template = EXPERT::StringBetween(Template, OBJECT_BEGIN);
    
    Names[i] = EXPERT::StringBetween(Template, OBJECT_NAME, STRING_END);
  }
  
   return (Size);
}

void OnChartEvent ( const int id, const long &, const double &, const string & )
{
   if ((id == CHARTEVENT_OBJECT_CHANGE ) ||
      (id == CHARTEVENT_OBJECT_CLICK ) ||
      (id == CHARTEVENT_OBJECT_CREATE ) ||
      (id == CHARTEVENT_OBJECT_DELETE ) ||
      (id == CHARTEVENT_OBJECT_DRAG ) ||
      (id == CHARTEVENT_OBJECT_ENDEDIT ))
  {
     string ZObjects[];
    
     string Str = NULL ;
    
     for ( int i = GetZObjects(ZObjects) - 1 ; i >= 0 ; i--)
      Str += ( string )i + " Z: " + ZObjects[i] + "\n" ;
      
     Comment (Str);
  }
}