MT 개발자를 위한 것이 아닙니다! INIT_PARAMETERS_INCORRECT를 대체하는 방법? - 페이지 10

 
Aleksey Vyazmikin :

잘못된 매개변수는 원칙적으로 3가지 이유로 비활성화됩니다.

1. 해당 지역에 대한 연구는 관심이 없습니다(예: 가장 이해하기 쉬운 옵션으로 여러 기간을 제외함).

 //--- пропустить бесполезные проходы оптимизации
   if (my_timeframe != PERIOD_M15    &&
      my_timeframe != PERIOD_M30    &&
      my_timeframe != PERIOD_H1     &&
      my_timeframe != PERIOD_H3     &&
      my_timeframe != PERIOD_H6       )
   {
       Print ( "ОШИБКА - Период не запланирован" );
       return ( INIT_PARAMETERS_INCORRECT );
   }
 
Сергей Таболин :

맞아요.

 
Сергей Таболин :

음, "잘못된" 매개변수를 포함하지 않고 예제에서 MA 최적화를 구성하는 방법은 무엇입니까?

좋아, 동의한다. 나는 부주의하게 보았다. 최적화를 위해 유효하지 않은 간격 컷이 있는 다른 매개변수를 제거합니다.

 
TheXpert :

좋아, 동의한다. 나는 부주의하게 보았다. 최적화를 위해 유효하지 않은 간격 컷이 있는 다른 매개변수를 제거합니다.

예가 가능합니까?

 
Сергей Таболин :

예가 가능합니까?

 input int period_MA_warp = 15 ;

//...

period_MA = (period_MA_warp <= 31 ) ? period_MA_warp : period_MA_warp + 50 ;
 
TheXpert :

동의한다. 그러나 기간은 어떻습니까?

 
Сергей Таболин :

동의한다. 그러나 기간은 어떻습니까?

또한 - 연속 간격 내부의 int를 시간 프레임으로 변환합니다. 예를 들어, 모든 TF 값으로 배열을 만들고배열 인덱스 로 최적화

 
TheXpert :

또한 - 연속 간격 내부의 int를 시간 프레임으로 변환합니다. 예를 들어, 모든 TF 값으로 배열을 만들고 배열 인덱스 로 최적화

글쎄, 내 생각에는 이것은 이미 목발처럼 보인다 ... 아마도 내가 틀렸을 수도 있지만 이것은 내가 시작 예제와 함께해야했던 것과 실질적으로 동일합니다. 이 경우가 아니면 먼저 전체 어레이를 파일에 업로드할 필요가 없습니다...

 

일반 최적화 중에 OnTester()에서 "잘못된" 매개변수를 걸러내는 아이디어를 생각해 냈습니다.

 double OnTester ()
{
   if ( MQLInfoInteger ( MQL_OPTIMIZATION ) && paramIncorrect())   return (- 99999999.99 );
}

INIT_PARAMETERS_INCORRECT의 결과를 보기에서 제거하기 위해 유전학을 방해하지 않고 밝혀졌습니다.

즉시 또 다른 질문이 생겼습니다. 이 경우 이익에서 "깊은 마이너스"를 발행할 수 있습니까?

 

내가 한 것처럼 별도의 매개 변수가 생성되고 그 값에 따라 다른 값이 대체됩니다.

간단한 예(2주 전에 완료):

시간 프레임 매개변수가 있습니다: TF_UP(높음) 및 TF_DOWN(낮음), 오래된 것이 항상 젊은 것보다 커야 합니다. 그렇지 않으면 input_incorrect가 나옵니다. 테스터에 0의 결과가 많이 있으며 유전학은 (빠르긴 하지만) "무의미하게 작동합니다". 그리고 결국 이 2개의 매개변수를 제거하고 아래에 설명된 유형의 새 매개변수를 생성하고 최적화만 하고 이미 OnInit 함수 에는 이 매개변수에 따라 2개의 다른 매개변수에 대체가 있습니다.

 enum TF_only_opt
{
   _H4_H1 = 0 ,
   _H4_M30 = 1 ,
   _H4_M15 = 2 ,
   _H1_M30 = 3 ,
   _H1_M15 = 4 ,
   _H1_M5 = 5 ,
   _M30_M15 = 6 ,
   _M30_M5 = 7 ,
   _M30_M1 = 8 ,
   _M15_M5 = 9 ,
   _M15_M1 = 10 ,
   _M5_M1 = 11
};