매수하기 전에 거래 로봇을 테스트하는 방법

MetaQuotes | 2 9월, 2021

MQL5 Market에서 거래 로봇을 매수하면 다른 모든 유사한 옵션에 비해 뚜렷한 이점이 있습니다. 제공되는 자동화 시스템은 MetaTrader 5 터미널에서 직접 철저하게 테스트할 수 있습니다. 매수하기 전에 Expert Advisor는 내장된 Strategy Tester의 모든 불리한 모드에서 신중하게 실행되어야 하며 모든 Expert가 시스템을 완전히 파악하고 있는지 확인합니다. MQL5 Market에서 제공되는 Advisor에는 데모 버전이 있습니다.

기억하세요: 거래 로봇을 구입할 때 위험을 감수해야 하는 것은 지불한 금액일 뿐만 아니라 이러한 거래 로봇을 사용하여 실제 계정에서 거래할 때 발생할 수 있는 잠재적 손실입니다.

MetaTrader 5 터미널에서 직접 다운로드할 무료 Three Moving Averages Expert Advisor를 예로 사용하여 살펴보겠습니다. 세 가지 이동 평균을 기반으로 한 고전적인 거래 전략의 구현입니다.

MetaTrader 5 터미널에서 직접 MQL5 Market에서 Expert Advisor 다운로드


테스트 결과에 따른 Expert Advisor 평가 방법

거래 로봇의 성능을 100% 보장할 수 있는 일반적인 방법은 없지만 MetaTrader 5 터미널의 전략 테스터에서 특정 거래 시스템의 주요 매개변수를 확인할 수 있는 간단한 방법이 있습니다. 사용 가능한 주요 방법은 다음과 같습니다. 

또한 다음과 같은 잠재적으로 의심스러운 요소에 주의를 기울여야 합니다.

위의 모든 것이 상당히 쉬운 작업이지만 대부분의 초보자와 경험 많은 트레이더는 이러한 뉘앙스를 인식하지 못하거나 항상 주의를 기울이지 않습니다. MQL5 Market에서 다운로드한 모든 거래 로봇은 Navigator 창에서 직접 테스트하도록 설정할 수 있습니다.

네비게이터 메뉴를 사용하여 Expert Advisor 시작

선택한 Expert Advisor가 있는 Strategy Tester의 패널은 컨텍스트 메뉴에서 "Test"를 누르면 자동으로 나타납니다. 다운로드한 Expert Advisor를 테스트하기 위한 모든 것이 준비되어 있으며 위에서 지적한 평가 방법을 자세히 검토할 준비가 되어 있습니다.


랜덤 지연 모드에서 스트레스 테스트

전략 테스터는 주로 시스템의 거래 규칙을 테스트하도록 설계되었습니다. 즉, Strategy Tester는 모든 프로세스에 이상적인 환경을 에뮬레이트합니다.

모든 것은 최소 시간 내에 거래 전략을 테스트하고 최적화하는 것을 목표로 합니다. 그러나 실제 환경에서 거래 로봇의 작동이 이상적이지 않고 즉각적이지 않다는 것을 알고 전략 테스터는 거래 주문의 전송과 실행 사이의 무작위 지연을 시뮬레이션하는 추가 테스트 모드로 향상되었습니다.

임의 지연 모드 설정

이 테스트 모드는 다음을 정확하게 감지합니다.

두 가지 모드(표준 및 임의 지연)에서 Expert Advisor의 단일 테스트를 실행한 후 현저하게 다른 거래 결과를 얻으면 생각해야 합니다. 먼저 Strategy Tester 로그를 살펴보십시오. 여기에 포함된 수많은 거래 오류가 그러한 Expert Advisor를 목록에서 제외할 충분한 이유가 되기 때문입니다. 우리의 경우 Expert Advisor가 테스트의 전반부를 성공적으로 통과했음을 시사하는 무작위 지연 모드에서 스트레스 테스트 과정에서 이러한 종류의 오류가 감지되지 않았습니다.

이제 두 가지 모드에서 실행한 단일 테스트를 사용하여 얻은 거래 결과 간에 차이가 있는지 살펴보겠습니다. 무작위 지연 모드에서 얻은 거래 수와 이익이 크게 감소한 것은 전략이 거래 주문의 전송 및 실행 품질에 크게 의존하며 특정 이상적인 조건에서만 수익을 올릴 수 있음을 나타냅니다. 개발자가 의도하지 않게 이 작업을 수행했을 수 있으며 이는 매우 자주 발생합니다. 그러나 이러한 '결함'은 거래 계정에 재앙을 초래할 수 있습니다.

다양한 거래 주문 실행 모드에서 테스트 결과 비교

이 예에서 다른 거래 주문 실행 모드로 전환해도 거래 및 거래 수에는 영향을 미치지 않습니다. 테스트 결과는 재인용으로 인해 거래에 나타나는 작은 가격 변동으로 적절하게 설명될 수 있는 약간의 차이가 있습니다. 

결론: 3개의 이동 평균 Expert Advisor가 이 테스트를 통과했습니다. 무작위 지연 모드의 스트레스 테스트는 거래 결과에 실질적인 영향을 미치지 않습니다.


다른 거래 환경에서 테스트

MQL5 Market의 설명에 지정된 조건에서 거래 로봇의 테스트를 실행하세요. 그런 다음 다른 브로커 계정에 연결하고 다시 테스트를 실행합니다. 이전 스트레스 테스트와 다소 유사하며 가격 및 거래 조건(스프레드, 허용 가능한 StopLoss/TakeProfit 수준 등)의 작은 변화가 거래 결과에 미치는 영향을 확인할 수 있습니다.

예를 들어, 브로커 A 계정의 EURUSD에 대한 Expert Advisor 테스트 결과가 있습니다. 이번에는 브로커 B 계정에서만 동일한 테스트를 EURUSD에서 실행합니다. 결과가 매우 다른 경우 이러한 거래 로봇의 필요성을 재고하는 것이 좋습니다.


다른 기호/시간 프레임

대부분의 거래 로봇은 하나의 특정 기호로 거래하도록 개발되었으며 일부는 특정 시간 프레임에 사용해야 합니다. 모든 인스트루먼트가 고유한 방식으로 작동하기 때문에 매우 합리적으로 보입니다. 따라서 MQL5 Market에서 제공하는 거래 로봇의 설명에는 원칙적으로 기호 및 시간 프레임이 항상 지정됩니다.

Expert Advisor의 데모 버전을 다운로드하고 다른 기호 및/또는 기간에서 시작하세요. 먼저 Expert Advisor가 부적절한 시작 조건에서 사용되는 중요한 오류로 충돌하거나 거래 오류 메시지로 로그를 채우지 않도록 해야 합니다. 두 번째로, 위의 설정 변경으로 인해 수익성 있는 거래 전략이 극도로 손실이 되지 않았는지 확인하세요. 이는 커브 피팅이 발생한 포지션에서 발생할 수 있습니다.

Expert Advisor에 대해 이러한 종류의 테스트를 준비하는 가장 쉬운 방법 중 하나는 Market Watch에서 선택한 모든 기호에 대해 최적화하는 것입니다. 우리는 "모든 틱" 생성과 함께 상당히 긴 시간 프레임 H1에서 해당 모드에서 Expert Advisor의 최적화를 실행하고 두 번째 질문에 대해 상당히 빠른 답변을 얻습니다.

 Market Watch에서 선택한 모든 기호에 대한 최적화

이러한 최적화의 결과는 전략이 존재할 권리가 있음을 보여주며, 실제로 나쁜 결과를 낳지 않고 통계적으로 충분한 거래 수를 각 기호에 대해 보여줍니다. 기본적으로 설정된 동일한 매개변수를 사용하여 시장 조사13개 기호 모두에 대해 하나의 전략을 테스트했습니다.

Market Watch에서 선택한 모든 기호에 대한 최적화 결과

모든 Expert Advisor가 어떤 기호와 시간 프레임에서도 똑같이 잘 작동할 것이라고 기대할 수는 없습니다. 그러나 이 방법을 사용하여 Strategy Tester에서 확인할 가치가 있습니다. 그것은 가능한 코드 오류를 드러낼 뿐만 아니라 새로운 아이디어를 줄 수도 있습니다.

결론: 3 이동 평균 Expert Advisor의 동작은 다른 기호/시간 프레임에서 테스트했을 때 정상이었습니다. 테스트 중에 명백한 코드 오류가 감지되지 않았습니다.


잘못된 과거 데이터에 대한 백테스팅

우리는 Expert Advisor가 GBPUSD에서 작업할 때 최상의 결과를 산출한다는 것을 알게 되었습니다. 그러나 이것이 일관된 패턴이 아니고 이 동작이 2012.01.01에서 2012.09.28 사이에 선택된 테스트 간격으로 인한 것이며 순수한 우연에 의해 유리한 것으로 판명되면 어떻게 될까요? 이 질문을 조사하기 위해 2011년에 동일한 매개변수로 Expert Advisor를 테스트하고 2011.01.01-2011.12.31을 간격으로 사용합니다. 우리는 테스트를 실행하고 결과를 봅니다.

잘못된 과거 데이터에 대한 백테스팅

Expert Advisor는 더 이상 수익성이 없으며 즉시 놀라움이 훨씬 줄어듭니다. 게다가, 2011년에 입은 손실은 2012.01.01-2012.09.28 동안 전략 테스터에서 입증된 이익을 크게 초과합니다. 그러나 이제 우리는 GBPUSD에서 거래하는 경우에도 잠재적인 손실을 알고 있습니다.

결론: 3 이동 평균 Expert Advisor는 시장 행동의 변화에 ​​적절한 자동 응답을 보장하기 위해 추가 개발이 필요합니다. 최적화.


오랜 역사에 걸친 백테스팅

설명을 제공할 때 거래 로봇 개발자는 제품을 최상의 상태로 보여주려고 노력하므로 특정 간격에 대한 최적의 매개변수가 포함된 보고서 및 테스트 차트를 제공합니다. 일반적으로 거래 로봇을 게시한 날짜부터 관심을 갖게 되는 날짜까지 상당한 시간이 경과했기 때문에 소위 정방향 테스트를 실행할 수 있습니다.

순방향 테스트는 최적의 매개변수를 선택할 때 고려되지 않은 기록 기간에 대한 테스트입니다. 우리는 2012년 9월 28일 이후의 과거 데이터를 포함하여 좀 더 긴 테스트 간격에 걸쳐 GBPUSD에 대한 이 Expert Advisor의 분석을 계속할 것입니다. 종료 날짜가 2012.11.26으로 설정되어 거의 두 달이 더 추가됩니다. 따라서 2012.01.01부터 2012.11.26까지 테스트를 실행한 후 새로운 테스트 차트를 얻습니다.

오랜 기간 동안의 백테스팅

우리의 경우 추가 짧은 간격(앞으로) 동안 3 이동 평균 Expert Advisor에 의해 입증된 결과는 이전 10개월 동안 달성된 결과보다 훨씬 더 좋습니다. 그러나 이것은 매우 드뭅니다.

결론: 오랜 기간 동안 GBPUSD에 대한 3 이동 평균 Expert Advisor를 테스트한 결과 거래 매개변수의 약화가 나타나지 않았습니다.


순방향 테스트

전방 테스트는 변화하는 시장 행동에서 거래 시스템의 안정성을 평가하는 데 사용됩니다. Strategy Tester에서 매개변수를 최적화하면 특정 간격 내에서 과거 데이터에서 거래 로봇이 가장 좋은 매개변수를 얻을 수 있습니다. 그러나 이것이 획득한 매개변수가 가장 가까운 미래에 거래에 사용될 때에도 동일한 최적의 적합성을 보장하지 않습니다.

자동 거래 시스템을 개발하는 거래자는 종종 최적화 및 곡선 맞춤과 같은 개념을 혼동합니다. 공정한 최적화와 곡선 맞춤 사이의 선은 매우 가늘고 찾기 어렵습니다. 이것은 전방 테스팅이 획득한 매개변수를 객관적으로 평가할 수 있도록 하는 유용한 것으로 입증된 곳입니다.

MetaTrader 5 전략 테스터에서 최적화하면 결과 최적 매개변수를 전달 테스트하고 필요한 제한을 설정할 수 있습니다. 아래 표시된 설정으로 거래 로봇의 앞으로 테스트를 실행해보겠습니다.

순방향 최적화 모드 설정

Forward는 1/4로 설정되어 지정된 간격 2012.01.01-2012.11.26이 네 부분으로 나뉩니다. 기록의 처음 3/4은 최적의 매개변수를 찾는 데 사용되며 최상의 25% 통과(Expert Advisor 매개변수 세트)는 기록 데이터의 나머지 1/4에 대해 앞으로 테스트됩니다.

최적화할 매개변수를 지정합니다. 거래 논리에 영향을 미칠 것으로 예상되는 매개변수를 선택합니다. 따라서 자금 관리를 담당하는 매개 변수를 최적화하지 않습니다.

최적화할 매개변수

위의 단계와 시작 및 중지 값의 조합으로 거의 500만 패스가 발생했습니다. 주어진 상황에서 유전자 알고리즘을 사용하고 최적화에 MQL5 Cloud Network를 참여시키는 것은 무리가 아닙니다.

그럼 총 21분이 소요된 정방향 패스와 클라우드 에이전트를 이용한 4000개 이상의 패스에 대해 0.26크레딧이 소요된 최적화 결과를 살펴보겠습니다. 비용 계산 방법의 예는 MQL5 Cloud Network: Are You Still Calculating? 문서에서 찾을 수 있습니다.

앞으로의 테스트 결과 차트

얼핏 보기에는 뭔가 문제가 있는 것 같습니다. 결과를 확인하고 처음 세 개의 최적화된 매개변수 값이 모든 패스에서 동일한지 확인합니다. 그리고 마지막 두 매개변수 Inp_Signal_ThreeEMA_StopLoss 및 Inp_Signal_ThreeEMA_TakeProfit에만 다양한 값이 있습니다.

정방향 통과 결과 표

위의 내용을 고려하여 두 가지 가정을 할 수 있습니다.

동일한 설정 및 입력 매개변수로 다시 최적화하여 두 가정을 모두 확인하겠습니다. 이번에는 순방향 테스트 결과 차트가 조금 다르게 보입니다.

앞으로의 기간에 대한 재최적화의 또 다른 차트

최적화의 결과로 이제 세 가지 주류를 볼 수 있습니다. 이것은 마지막 두 개의 최적화된 매개변수가 여전히 주어진 거래 로봇에 부수적으로 나타남을 의미합니다.

결론: GBPUSD에 대한 3개의 이동 평균 Expert Advisor의 최적화는 거래 논리가 7개 중 3개의 매개변수에만 의존한다는 것을 보여주었습니다.

마지막으로 한 번만 시도하고 최적화에서 불필요한 매개변수를 제거하겠습니다. 이제 패스가 1650개뿐입니다.

최적화를 위한 감소된 매개변수 세트

따라서 유전자 최적화보다 완전한 매개변수 검색이 더 합리적입니다. 이 경우 MQL5 Cloud Network는 더 많은 에이전트를 제공하므로 프로세스를 완료하는 데 필요한 시간이 크게 단축됩니다.

완전한 매개변수 검색 시 MQL5 Cloud Network 에이전트 사용

2000명의 클라우드 에이전트가 참여하여 작업이 7분 만에 완료되었으며 앞으로 테스트 차트가 좋아 보입니다.

최적화 차트

포워드 기간 동안 대부분의 패스는 수익성이 있는 것으로 판명되었으며 초기 $10.000 이상의 포인트 수가 적자 영역보다 훨씬 많습니다. 다소 희망적으로 보이지만 결과 매개변수 세트가 미래에도 수익성이 있다는 것을 의미하지는 않습니다.


거래 시스템의 매개변수 수

우리는 거래 로봇을 설정하는 데 사용할 수 있는 모든 전략 매개변수가 동등하게 중요하고 거래 결과에 영향을 미칠 수 있는 것은 아님을 확인할 기회가 있었습니다. 우리의 경우 Inp_Signal_ThreeEMA_StopLoss 및 Inp_Signal_ThreeEMA_TakeProfit 값은 Expert Advisor의 성능에 거의 영향을 미치지 않았습니다. 그러나 많은 매개변수 설정이 있는 거래 로봇을 만나는 것이 더 일반적입니다.

수많은 매개변수를 사용하면 최적화 중에 드러날 가능성이 높은 특정 기간의 기록에 성능을 맞추기 위해 거래 로봇에 대해 매우 정확한 설정을 할 수 있습니다.

곡선 맞춤은 Expert Advisor가 테스트 데이터에서와 같이 최적화에 사용된 지정된 간격을 초과하는 데이터에 대해 동일한 수준의 수익성을 표시하지 않을 수 있음을 의미합니다. 그리고 더 나쁜 것은 정반대의 결과를 초래하여 손실을 초래할 수 있다는 것입니다.

거래 시스템의 매개변수 설정이 적을수록 식별된 패턴이 미래에 사라질 가능성이 낮아집니다. 그리고 그 반대의 경우도 마찬가지입니다. 시스템의 매개변수가 많을수록 시장이 미세 조정된 Expert Advisor에 따라 특성을 유지할 가능성이 낮아집니다. 위의 증거로, 아래에서 자세히 설명할 최적화 VS 현실: ATC 2011의 증거 문서에 제공된 거래 분석 결과를 숙지하는 것이 좋습니다.

저울과 매개변수 수 간의 상관관계

차트는 Automated Trading Championship 2011 참가자의 거래 결과를 표시합니다. 세로축은 챔피언십 종료 시점의 계정 잔액을 표시하고 가로축은 EA의 외부 매개변수 수를 표시합니다. Expert Advisors는 빨간색 다이아몬드로 표시됩니다. 많은 매개변수를 가진 Expert Advisors가 챔피언십의 선행 기간 동안 거래할 때 돈을 잃었거나 기껏해야 손익분기점을 넘었다는 것을 분명히 알 수 있습니다.

매도용으로 제공되는 거래 로봇에 외부 매개변수가 없다는 것은 설계된 거래 규칙의 일반성에 대해 아무 말도 하지 않으며 멋지다고 받아들일 수도 없습니다. Expert Advisor의 개발자는 어떤 이유로 거래 로봇 내부의 외부 매개변수를 간단히 스레드해야 합니다.


매우 높은 이윤율

대부분의 거래자는 거래를 잃는 것을 좋아하지 않으며 거래 시스템의 잘못된 작동의 신호로 간주합니다. 사실 금융시장 거래의 특성상 피할 수 없다. 포지션을 열 때의 모든 거래는 궁극적으로 이기거나 지는 것으로 판명될 수 있습니다. 거래 손실은 피할 수 없으며 모든 비즈니스에서와 마찬가지로 자연스럽게 발생하는 급여 및 불가피한 지출 항목의 한 형태로 간주됩니다.

자동화된 거래 시스템의 많은 개발자는 손실 거래 수와 총 손실을 최소로 줄이려고 극도로 실행합니다. 이를 달성하고 전략 테스터에서 얻을 수 있는 결과를 개선하기 위해 거래 손실을 방지할 수 있는 추가 필터를 추가하여 이익 요소를 개선합니다. 추가 필터에는 자체 매개변수와 설정이 있어 총 입력 매개변수 수에 추가됩니다.

이익 계수는 총 이익을 총 손실로 나눈 값으로 정의됩니다. 수익성 있는 시스템의 이윤율은 항상 1보다 큽니다. 그러나 Strategy Tester에서 너무 열심히 시도하고 거래 시스템을 과도하게 최적화했다면 이 수치는 훨씬 더 커질 수 있습니다. 최적화 대 현실: ATC 2011의 증거 글의 또 다른 차트를 살펴보겠습니다.

최적화의 결과로 매우 높은 이윤율

과거 데이터에 대해 테스트하는 동안 매우 높은 이윤율을 보였던 거의 모든 거래 로봇은 Automated Trading Championship 2011의 앞으로의 기간 동안 테스트했을 때 백테스트 결과에 근접하지도 않았고 사실상 모든 걸 잃었습니다. 이는 Strategy Tester에서 시연된 매우 높은 이윤율은 트레이딩 로봇의 최적화에 사용된 특정 기간에 전략을 맞추었기 때문임을 시사합니다.


과거 데이터에 대한 거대한 이익

또 다른 놀라운 사실은 거래 로봇에 대한 설명에 명시된 엄청난 이익입니다. 첨부된 Strategy Tester 보고서에 하늘 높이 균형이 표시되면 커브 피팅과 관련이 있을 가능성이 큽니다. 종종 이러한 "돈 프린트 기계"의 개발자는 시스템이 지나치게 최적화되어 있고 외부 매개변수가 너무 많다는 사실조차 깨닫지 못합니다. 위에서 언급한 최적화 VS 현실: ATC 2011의 증거 보고서의 다른 차트를 통해 이 주장을 뒷받침하겠습니다.

과거 데이터에 대한 거대한 이익

이러한 "Grails"의 매수자는 일반적으로 경험이 없고 과거 데이터에 대한 거대한 이익으로 인해 쉽게 눈이 멀게 됩니다. 그런 경우 그런 거래 로봇이 얻을 수 있는 이익에 대한 망상은 진실되고 상호적이죠.


자금 관리를 통한 조작

최소 손실로 전략 테스터에서 잘못된 과거 데이터를 살펴보고 성공적인 거래에 대한 수익을 최대화할 수 있는 특수 거래 조작 규칙을 만드는 것은 거래 로봇의 비정상적인 개발에 대한 가장 복잡하고 드문 접근 방식입니다. 돈 관리라고 하는 것과는 거리가 멉니다.

이러한 피팅은 거래 로봇에 대한 설명에서 개발자가 명시한 결과를 얻기 위해 사용된 이력 기간을 벗어난 데이터에 대한 테스트를 통해 가장 잘 감지할 수 있습니다. 피팅이 광범위할수록 거래 로봇이 테스트에 실패할 가능성이 높아집니다.


그 누구도 신뢰하지 마십시오. 당신 조차도 말입니다

불행히도 복잡한 프로그램과 같은 거래 로봇에는 온라인 거래 외에는 감지할 수 없는 의도하지 않은 오류가 포함될 수 있습니다. 거래 로봇의 어떤 개발자도 자신의 프로그램에 오류가 없고 모든 비표준 상황을 올바르게 처리할 것이라고 보장할 수 없습니다. 테스트에 성공한 Expert Advisor라도 개발자가 예측할 수 없는 예상치 못한 상황에 놓이면 심각한 오류로 인해 거래 오류가 발생하거나 충돌이 발생할 수 있습니다. 이 경우 유일한 암시적 보증은 거래 로봇 개발자의 경험과 평판입니다.

그리고 물론 충분한 시간 동안 시그널 서비스에서 긍정적인 결과를 보여준 Expert Advisor가 그렇지 않은 조언자보다 더 신뢰할 수 있습니다. 어떤 경우이든 미래의 이익을 계산하는 데 낙담하지 말고 여전히 유효한 두 가지 규칙을 기억하세요.

  1. 그 누구도 신뢰하지 말 것,
  2. 과거의 어떤 거래의 성공도 미래의 이익을 보장할 수 없습니다.


또한 Market 전용 다음 문서를 권장합니다.