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

 
Slava :

OnInit가 0이 아닌 코드를 반환하기 때문에 테스터가 중지되었습니다.

그래서 통계가 없습니다.

감사합니다. 흥미롭게도 차트는 완료된 거래를 고려하여 여전히 작성됩니다.

 
Andrey Pogoreltsev :

멕시칸을 통과하려고 할 때 에이전트는 메모리에 과부하가 걸리고 아무 것도 하지 않고 그들이 해야 하는 작업의 수만 늘어납니다. 다음 오류가 로그에 있습니다.

에이전트 로그를 확인해야 합니다.

오류 14는 이 상품의 입찰가가 0임을 의미합니다. 즉, 왼쪽 막대가 역사에 들어갔습니다.

추신: 단일 테스트를 실행하는 것이 좋습니다. 그러면 오류는 확실히 테스트 에이전트의 로그에 기록됩니다. 최적화할 때 OnInit가 끝날 때까지만 오류가 표시됩니다.

 

그룹 아이콘은 모두 닫히면 사라지고 최적화를 위한 매개변수 선택 기능은 사라집니다.


 input group "ORDER"
input double K = 30 ;
input double TP_0 = 500 ;
input double MaxLoss = 0.25 ;
input group "FUNCTIONS"
input bool MultipleStopOrders = true ;
input bool CloseAllPosReversSig = true ;
input group "MONEY MANAGEMENT SETTING"
input double StartLot = - 0.01 ;
input group "ORDERS SETTING"
input int MagicNumber_ = 2000 ; // Magic Number
input int Slippage = 50 ;       // Slippage
 
Slava :

클립보드에 설정되지 않은 어드바이저의 입력 매개변수는 변경하지 마시기 바랍니다.

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

라이브러리: 멀티테스터

fxsaber , 2019.11.06 11:24

멀티테스터가 실행된 후 많은 수의 최적화 캐시를 볼 때 동일한 작업을 수행합니다.

  1. RMB를 통해 단일 실행을 시작하는 데 가장 적합한 패스를 선택합니다.
  2. 마음에 들면 최적화를 끄고 간격을 늘리십시오.
  3. 시작을 누릅니다.

대부분의 시간은 포인트 2에 소비됩니다. 그렇게 하다보면 실수를 하는 경우가 많습니다. 반자동으로 하고 싶습니다. 그리고 해결책이 있습니다!


이 텍스트를 클립보드에 복사

[Tester]
Optimization= 0
FromDate= 2019.01 . 01


그런 다음 설정 탭에서 CTRL + V를 누르십시오. 이것은 자동으로 최적화를 끄고 원하는 날짜를 설정합니다.


위협 나는 기뻐하기 위해 서둘러. 어드바이저의 입력 매개변수는 이러한 버퍼를 사용하여 기본값으로 재설정됩니다.

 
fxsaber :

클립보드에 설정되지 않은 어드바이저의 입력 매개변수는 변경하지 마시기 바랍니다.

네. 동작을 수정합시다.

PS 설명된 동작은 재현되지 않습니다. 삽입된 텍스트에 [TesterInputs] 섹션이 포함되어 있지 않으면 전문가 설정 탭이 전혀 영향을 받지 않습니다.

 
Slava :
네. 행동을 고쳐보자

고맙습니다!

 
fxsaber :

고맙습니다!

재생할 수 없음
 
Slava :

PS 설명된 동작은 재현되지 않습니다. 삽입된 텍스트에 [TesterInputs] 섹션이 포함되어 있지 않으면 전문가 설정 탭이 전혀 영향을 받지 않습니다.

조언자

 input int Range = 0 ; // 0 .. 100

double OnTester () { return (Range); }


재생


 
아마도 그러한 일반 기능은 누군가를 악화시키지 않을 것입니다.

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

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2019.11.06 16:57

때로는 유전자 최적화를 통해 처음 몇 천 번의 패스만으로도 결과를 어느 정도 이해하기에 충분합니다.

많은 최적화를 자동으로 실행할 때 모든 것이 더 빨리 해결되기를 원합니다. 따라서 최적화 인터럽트 메커니즘이 필요합니다.

 #include <fxsaber\MultiTester\MTTester.mqh>   // https://www.mql5.com/ru/code/26132

// Выключает Оптимизацию ( и одиночный проход)
bool OptimizationStop( void )
{
   return (!MTTESTER::IsReady() && MTTESTER::ClickStart( false ));
}


애플리케이션.

 // Демонстрация прерывания Оптимизации.

sinput int inAmountPasses = 20 ; // Через сколько проходов закончить
input int Range = 0 ; // 0..10000

double OnTester ()
{
   int Data[];
  
   return ( FrameAdd ( NULL , 0 , 0 , Data)); // Сгенерировали TesterPass
}

void OnTesterPass ()
{
   static int Amount = 0 ;
  
   ulong Pass;
   string Name;
   long ID;
   double Value;
   int Data[];

   while ( FrameNext (Pass, Name, ID, Value, Data))
     if (++Amount > inAmountPasses)
    {
       OptimizationStop(); // Как достигли нужного количества проходов, выключили оптимизатор.
      
       break ;
    }
}
 
fxsaber :

조언자


재생


알아내자