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

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

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

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

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

이것은 매우 느린 방법입니다. 우리는 전체 구절을 렌더링하는 데 리소스를 사용합니다.

[삭제]  
Mikhail Mitin :

이것은 매우 느린 방법입니다. 우리는 전체 구절을 계산하기 위해 자원을 소비합니다.

두 가지 악에서...

 
Mikhail Mitin :

이것은 매우 느린 방법입니다. 우리는 전체 구절을 렌더링하는 데 리소스를 사용합니다.

INIT_PARAMETERS_INCORRECT_ONTESTER 입력 - OnTester로 전송

 

이 문제를 해결한 방법(여러 옵션):

  • 값에 따라 별도의 매개변수가 생성되며 다른 값으로 대체됩니다(위의 몇 가지 게시물에 설명). 최적화는 이 매개변수에만 해당됩니다.
  • 이 상황에서 어떻게 벗어났는지에 대한 옵션이 아직 1개 있지만 구현하기가 쉽지 않습니다.
    1. 필요한 매개변수만 열거된 csv 파일을 만들었습니다.
    2. OnInit에서 파일 읽기, 파일에서 값 읽기 및 매개변수 할당(Shareing 플래그가 있는 파일 읽기)
    3. 1개의 매개변수만 최적화됨(csv 파일의 줄 번호)
  • csv 파일에서 mqh 파일을 만드는 알고리즘을 작성하고(위의 내용과 유사하지만 속도만 더 빠름) 이를 Expert Advisor에 연결했습니다.

 
Mikhail Mitin :

이 문제를 해결한 방법(여러 옵션):

  • 값에 따라 별도의 매개변수가 생성되며 다른 값으로 대체됩니다(위의 몇 가지 게시물에 설명). 최적화는 이 매개변수에만 해당됩니다.
  • 이 상황에서 어떻게 벗어났는지에 대한 옵션이 아직 1개 있지만 구현하기가 쉽지 않습니다.
    1. 필요한 매개변수만 열거된 csv 파일을 만들었습니다.
    2. OnInit에서 파일 읽기, 파일에서 값 읽기 및 매개변수 할당(Shareing 플래그가 있는 파일 읽기)
    3. 1개의 매개변수만 최적화됨(csv 파일의 줄 번호)
  • csv 파일에서 mqh 파일을 만드는 알고리즘을 작성하고(위의 내용과 유사하지만 속도만 더 빠름) 이를 Expert Advisor에 연결했습니다.

그리고 변수가 하나만 있는 경우 이를 통해 어떻게 유전 알고리즘 을 구현할 수 있습니까?

[삭제]  

그것은 나를 깨우쳤다! ))))

OnInit 라인에서

   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_profit)                   return ( INIT_PARAMETERS_INCORRECT );
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_stop)                     return ( INIT_PARAMETERS_INCORRECT );
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && shift_correction_HMA7C != 5 )   return ( INIT_PARAMETERS_INCORRECT );

이사

 void OnTick ()
{
//--- пропустить бесполезные проходы оптимизации
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_profit)                                 ExpertRemove ();
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_stop)                                   ExpertRemove ();
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && shift_correction_HMA7C != 5 )                 ExpertRemove ();

유전학은 간섭하지 않으며 PARAMETERS_INCORRECT 는 계산되지 않습니다. )))

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

그것은 나를 깨우쳤다! ))))

OnInit 라인에서

이사

유전학은 간섭하지 않으며 PARAMETERS_INCORRECT 는 계산되지 않습니다. )))

흥미로운 결정입니다. 그리고 어떻게 유전학이 성공하고 한 자손에 속하지 않습니까?

[삭제]  
Aleksey Vyazmikin :

흥미로운 결정입니다. 그리고 어떻게 유전학이 성공하고 한 자손에 속하지 않습니까?

다 괜찮아. 무너지지 않습니다. ))) 적어도 지금은. 어딘가에 잘못된 매개변수가 많은 올빼미가 있었습니다. 최적화를 실행하고 확인해야 합니다.

그리고 전송의 아이디어는 유전학이 초기화에 정확하게 걸려 넘어진다는 사실에 있습니다. 그리고 검사가 OnTick으로 옮겨지면 초기화가 잘 되고 테스트가 시작되고 즉시 종료되며 유전학은 통과 결과를 0으로 만듭니다.

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

다 괜찮아. 무너지지 않습니다. ))) 적어도 지금은. 어딘가에 잘못된 매개변수가 많은 올빼미가 있었습니다. 최적화를 실행하고 확인해야 합니다.

그리고 전송의 아이디어는 유전학이 초기화에 정확하게 걸려 넘어진다는 사실에 있습니다. 그리고 검사가 OnTick으로 옮겨지면 초기화가 잘 되고 테스트가 시작되고 즉시 종료되며 유전학은 통과 결과를 0으로 만듭니다.

무너지지 않아 좋네요. 코드의 본질은 명확하지만 특히 조기 종료에 대한 조건이 많은 경우 실행을 한 번만 추가합니다.

[삭제]  
Aleksey Vyazmikin :

무너지지 않아 좋네요. 코드의 본질은 명확하지만 특히 조기 종료에 대한 조건이 많은 경우 실행을 한 번만 추가합니다.

제가 말씀드린 올빼미에 대한 최적화가 잘 진행되고 있습니다. )))

좋은 생각. 유효성 검사 플래그를 추가해야 합니다.