기고글 토론 "MetaTrader 5 테스트의 기초"

 

새로운 기고글 MetaTrader 5 테스트의 기초 가 게재되었습니다:

MetaTrader 5의 세 가지 테스트 모드의 차이점은 무엇이며 특히 무엇을 찾아야 합니까? 여러 상품에서 동시에 거래되는 EA 테스트는 어떻게 이루어 집니까? 테스트 중 지표 ​​값은 언제 어떻게 계산되며 이벤트는 어떻게 처리됩니까? "오픈 프라이스 전용" 모드에서 테스트하는 동안 다른 기기의 바를 동기화하는 방법은 무엇입니까? 이 글에서 저희는 이러한 질문과 다른 많은 질문에 대한 답변을 제공하는 것을 목표로 합니다.

오픈 포지션이나 미결 주문이 없는 경우 숨겨진 틱에 대해 이러한 확인을 수행 할 필요가 없으며 속도 증가가 상당할 수 있습니다. 이 "시가 전용" 모드는 바 개장시에만 거래를 처리하고 보류중인 주문과 손절(StopLoss) 및 이익 실현(TakeProfit) 주문을 사용하지 않는 테스트 전략에 적합합니다. 이러한 전략의 경우 필요한 테스트 정확도가 유지됩니다.

모든 모드에서 테스트 할 수 있는 EA의 예로 표준 패키지의 이동 평균 Expert Advisor를 사용해 보겠습니다. 이 EA의 논리는 모든 결정이 바가 열릴 때 이루어지고 대기 주문을 사용하지 않고 즉시 거래가 수행되는 방식으로 구축됩니다.

2010.01.09에서 2010.31.12까지의 간격으로 EURUSD H1에 대한 EA 테스트를 실행하고 그래프를 비교합니다. 그림은 세 가지 모드 모두에 대한 테스트 보고서의 균형 그래프를 보여줍니다.


작성자: MetaQuotes

 
"사용자 지정 최대" 기준으로 최적화할 때는 항상 로컬 최대값이 검색된다는 점을 기억하세요. 로컬 최소값을 찾으려면 функции OnTester 에서 함수의 계산된 값에 반비례하는 값을 반환하면 됩니다:

return(1/значение_функции);



사용하는 것이 좋습니다.

return(-значение_функции);

를 사용하면 0으로 나누기 때문에 왜곡이 적습니다.

 
Urain:

를 사용하는 것이 좋습니다.

를 사용하면 0 나눗셈을 얻을 수 있고 왜곡이 적습니다.

동의합니다. 제안해 주셔서 감사드리며 문서에 추가하겠습니다!
 

Необходимо помнить, что при оптимизации по критерию "Custom max" всегда ищется локальный максимум. Для поиска локального минимума можно из функции OnTester ..........

"로컬"이라는 단어는 "글로벌"로 대체해야 합니다. 주어진 범위에서 검색되는 글로벌 극한값입니다.

 
joo:

"로컬"이라는 단어는 "글로벌"로 대체해야 합니다. 주어진 범위에서 검색되는 글로벌 극한값입니다.

말하기 어렵습니다. 한편으로는 최적화가 글로벌 극한값을 찾을 수 있다는 보장은 없습니다.
 
Rosh:
말하기 어렵습니다. 한편으로는 최적화가 글로벌 극한값을 찾을 수 있다는 보장은 없습니다.
로컬 극단이든 글로벌 극단이든 무엇이 발견될지는 또 다른 문제입니다. 하지만 최적화의 핵심은 글로벌 극한점을 찾는 것입니다.
 
Rosh:
동의합니다. 기사에 추가하겠습니다. 제안해 주셔서 감사합니다!
추가됨
 
iAlligator(...)IndicatorCreate( ... )를 사용하여 인디케이터 핸들(예: 악어)을 만들 때의 차이점에 대해 설명해 주시겠습니까 ?
 
slyusar:
iAlligator(...)IndicatorCreate(...)를 사용하여 인디케이터(예: 악어)의 핸들을 만들 때의 차이점을 설명해 주세요 .
핸들은 "터치에 따라" 다르지 않습니다. 그러나 이것은 이 글의 주제가 아닙니다.
 
Rosh:
핸들은 "터치"에 따라 달라지지 않습니다. 그러나 그것은 이 글의 주제가 아닙니다.

터치에 따른 차이를 의미하지 않았습니다.....

이렇게 쓰세요:

"특정 이벤트 핸들러에 인디케이터 호출이 있든 없든, 이벤트 핸들러 함수를 호출하기 전에 iCustom() 또는 IndicatorCreate() 로 핸들을 만든 모든 인디케이터가 강제로 다시 계산됩니다."

질문:

(악어로 돌아간다면) iAlligator()를 사용하여 핸들을 만든 인디케이터가 다시 계산되지 않는 이유는 무엇이며, IndicatorCreate() 와의 차이점은 무엇이고 , 무엇이 더 좋고, 무엇이 더 나쁘고, 무엇을 사용해야 하며, 왜 그런가요?

 
" 기술 인디케이터 또는 인디케이터 생성 () 의 함수에 의해 생성된 모든 인디케이터..."를 읽어보세요.