기고글 토론 "Expert Advisor 최적화 시 커스텀 조건 만들기"

 

새로운 기고글 Expert Advisor 최적화 시 커스텀 조건 만들기 가 게재되었습니다:

MetaTrader 5 클라이언트 터미널은 Expert Advisor 패러미터 최적화 용도로 여러 선택지를 제공합니다. 전략 테스터에 포함된 최적화 기준 외에도 개발자에게 자신만의 기준을 만들 수 있는 기회가 주어집니다. 이를 통해 Expert Advisor를 테스트하고 최적화할 수 있는 가능성이 무궁무진해집니다. 본 문서에서 이러한 기준을 만드는 실제 방법(복잡하고 단순한 방법 모두)을 설명할 것입니다.

밸런스 곡선 기준 외에 우리가 개발한 다른 기준도 추가할 수 있습니다. 독자들을 위해, 저는 다른 통계적 패러미터들을 실험할 수 있는 가능성을 남겨두었습니다.

설정된 기준에 따라 최적화를 수행하겠습니다. 이것보다 더 많은 매매들을 대상으로 하려면 H4 기간, 2010.01.01~2011.01.01 기간 및 EURUSD 기호를 사용하여 최적화를 수행합니다. 이하의 결과를 얻습니다.

밸런스 커브 기반 최적화 결과

10번 그림. 밸런스 커브 기반 최적화 결과

작성자: Dmitriy Skub

 
아시다시피, 멀티 페어 EA는 다른 기호에서 다른 테스트 결과를 가지고 있습니다. EURUSD로 EA를 테스트하면 AUDUSD에 대한 매수 거래가 열리지 않고 AUDUSD로 테스트하면 EURUSD에 대한 매도 거래가 열리지 않습니다!!! 어떻게 해결해야 하나요? 고마워요
 

훌륭한 기사 감사합니다,

Pardo의 완벽한 수익 기준 http://www.breakoutfutures.com/Newsletters/Newsletter0605.htm 을 귀하의 기준에 맞출 수있는 방법이나 여지가 있습니까?

 

매우 유용한 기사. 모든 것이 사용하기 쉽습니다.....

그러나 이 문서에서는 OnTester() 함수를 호출하는 기준, 즉 이 매개변수로 최적화가 끝났을 때만 설명합니다.

최적화를 조기에 중단할 수 있나요? 예를 들어, 드로다운이 50% 이상이거나 잔액이 n값보다 작은 경우 CPU 시간을 낭비하지 않기 위해!

 
sigma7i:

매우 유용한 기사. 모든 것이 사용하기 쉽습니다.....

그러나 이 글은 OnTester() 함수를 호출하는 기준, 즉 이 매개변수로 최적화가 끝났을 때만 설명합니다.

최적화를 조기에 중단 할 수 있습니까? 예를 들어, 드로 다운이 50 % 이상이거나 잔액이 n 값보다 작을 때 CPU 시간을 낭비하지 않도록!

ExpertRemove
 
MetaDriver:
전문가 제거
오, 맞아요!!! 감사합니다!
 

"최적화 결과" 탭을 어지럽히지 않기 위해 최적화 종료 후 불필요한 결과(예: 마이너스 결과)를 필터링할 수 있는 방법이 있는지 알려주시겠습니까? ?

 

정렬은 열에서...

을 클릭하면 됩니다.

추신: 항상 고의로 결과가 비뚤어진 것은 아니며, 유전적 최적화 과정에서 ExpertRemove()를 "떼어낼" 수 있습니다.

또한 OnTester ()에서 재설정하십시오.

저는 개인적으로 때때로 유전학이 잘못된 방향으로 진행되었습니다.

 
Karlson:

정렬은...을 클릭하여 수행할 수 있습니다.

을 클릭하여 정렬할 수 있습니다.

OnTester()에서 0으로 설정할 수도 있습니다.

개인적으로 유전학은 때때로 잘못된 방향으로 진행되었습니다.

그래서 정렬을 통해 원치 않는 결과가 전혀 표시되지 않도록 하고 싶었습니다.

예를 들어 정렬을 사용하면 간단합니다:

double  OnTester()
double  balance = TesterStatistics(STAT_PROFIT);
double  trades_number = TesterStatistics(STAT_TRADES);

if(balance < 5000 || trades_number < 20) return(-777);

....бла бла return(свой критерий оптимизации);

그리고 정렬합니다...

하지만 약간 "서투른", 원하지 않는 결과는 전혀 표시되지 않기를 원합니다.

 

Karlson:

추신: 유전적 최적화 과정에서 ExpertRemove()를 '해체'하는 것이 항상 가능한 것은 아닙니다.

여기서 ExpertRemove ()를 사용하여 최적화 중에 결과를 "찢어 버릴"수 없다는 것이 맞습니다 (유전자뿐만 아니라) .....

어쩌면 나는 그것을 준비하는 방법을 모를 수도 있습니다 :) ... 조건이있는 OnTick () 핸들러에 넣었습니다 ...

 

와 같은 코드가 작동하지 않는다는 말씀인가요?

if (balance < 3000) ExpertRemove();

같은 코드가 작동하지 않는다는 건가요?

하지만 제가 말한 것은 그런 뜻이 아닙니다. (적어도 과거에는 효과가 있었던) 그러한 고장이 결국 유전적 탈출로 이어졌다는 것입니다.