시스템 트레이딩

MT5 Strategy Tester 백테스트 가이드: 자동매매 EA 성능을 기간별로 검증하는 법

MT5 Strategy Tester에서 EA 자동매매와 알고리즘 트레이딩 전략을 백테스트하고, INFINOX CFD 데모 계좌 기준으로 기간 설정, invalid stops, 결과 리포트 해석을 정리합니다.

Read the English edition

핵심 요약

Strategy Tester는 MT5 자동매매 EA와 알고리즘 트레이딩 전략을 과거 가격 데이터에 실행해 손익, 드로다운, 거래 수, 오류 로그를 확인하는 백테스트 도구입니다.

좋은 백테스트는 전체 기간 한 번으로 끝나지 않습니다. INFINOX 같은 CFD 데모 계좌 조건을 기준으로 기간을 나누고, 상품을 고정해 비교해야 합니다.

이 글은 직전 캔들 방향 예시 EA를 기준으로 AI 트레이딩과 AI 주식 전략으로 확장하기 전 필요한 Strategy Tester 설정, Visual mode 확인, invalid stops 대응, 결과 해석 순서를 정리합니다.

MT5 백테스트는 EA 실행보다 먼저 익혀야 하는 절차입니다

이번 포스트의 핵심 내용 3줄요약

  • Strategy Tester는 EA 자동매매와 알고리즘 트레이딩 전략이 과거 데이터에서 어떻게 작동했는지 확인하는 MT5 백테스트 도구입니다.
  • 처음에는 모든 설정을 이해하려 하지 말고 Expert, Symbol, Timeframe, Date, Deposit, Leverage를 고정하고 한 번 실행해 보는 것이 먼저입니다.
  • INFINOX 같은 CFD 데모 계좌에서 데이트레이딩, AI 트레이딩, AI 주식 전략을 테스트하더라도 순이익보다 Journal 오류, 최대 드로다운, 거래 수, 기간별 차이를 중심으로 읽어야 합니다.

이전 글인 MT5 데모 계좌에서 첫 EA 실행하기에서는 MetaEditor에서 Permact_First_Candle_EA 예시 EA를 만들고, 데모 차트에 붙이고, AutoTrading 권한과 Inputs 값을 확인하는 방법을 정리했습니다.

이 글은 MetaTrader 5, 또는 MetaTrader5에서 시스템 트레이딩과 알고리즘 트레이딩을 검증하는 절차를 다룹니다. INFINOX 같은 CFD 계좌로 MT5 자동매매를 하든, 향후 AI트레이딩 또는 AI 트레이딩, AI주식 또는 AI 주식 전략을 만들든, 실전 전에 Strategy Tester로 백테스트하는 습관이 먼저 필요합니다.

이번 글의 핵심은 EA를 차트에 붙이는 것이 아니라 Strategy Tester로 백테스트하는 방법입니다. 자동매매에서 가장 위험한 상황은 “EA가 실행된다”는 사실만 보고 전략이 검증됐다고 착각하는 것입니다. EA는 사람이 클릭하지 않아도 규칙을 반복합니다. 규칙이 좋으면 반복이 장점이지만, 규칙이 허술하면 손실도 반복됩니다.

Strategy Tester의 모든 용어를 처음부터 외울 필요는 없습니다. 이번에는 테스트 조건을 고정하고 한 번 실행하는 흐름에 집중합니다.

이번 글에서 배울 것

단계내용목적
1Strategy Tester를 여는 방법백테스트 화면 진입
2Expert, Symbol, Timeframe, Date 설정테스트 조건 고정
3Deposit, Leverage, Modeling 설정계좌 조건과 데이터 품질 이해
4Visual mode로 주문 흐름 확인EA가 생각한 대로 움직이는지 확인
5invalid stops 오류 대응CFD 심볼별 최소 손절·익절 거리 이해
6기간별 백테스트특정 구간 우연과 과최적화 의심
7Journal, Backtest, Graph, Settings / Inputs 해석순이익보다 실행 오류와 리스크 구조 확인

MetaTrader 5 공식 Strategy Testing 문서 새 탭는 Strategy Tester를 실거래 전에 Expert Advisor를 테스트하고 최적화하는 도구로 설명합니다. 이 문장을 실무적으로 풀면 이렇습니다. 실계좌에서 돈을 넣기 전에, 과거 데이터에서 먼저 전략이 어떻게 망가지는지 확인하라는 뜻입니다.

백테스트 전에 준비할 것

이 글은 이미 다음 상태까지 완료했다고 가정합니다.

준비 항목확인 방법
MT5 데모 계좌 로그인Navigator의 Accounts 아래에 데모 계좌가 보임
EA 컴파일 완료MetaEditor에서 0 errors, 0 warnings 확인
EA 파일 위치 확인Navigator의 Expert Advisors 아래에서 EA가 보임
AutoTrading 개념 이해상단 Algo Trading 버튼과 EA별 권한을 구분
예시 EA 코드 확보본문 또는 다운로드 파일로 Permact_First_Candle_EA 준비

아직 EA를 만들지 않았다면 이 글부터 읽기보다 1편: MT5 데모 계좌에서 첫 EA 실행하기를 먼저 보는 편이 좋습니다. 백테스트 화면에서 Expert를 선택하려면 먼저 컴파일된 .ex5 EA 파일이 있어야 합니다. 이 흐름은 데이트레이딩용 EA, 지수 CFD 자동매매, AI가 만든 매매 전략을 테스트할 때도 같습니다.

MetaEditor에서 Permact_First_Candle_EA.mq5 파일을 컴파일해 0 errors, 0 warnings가 표시된 화면
Strategy Tester에서 EA를 선택하려면 먼저 MetaEditor에서 컴파일이 끝나 있어야 한다

Strategy Tester를 여는 방법

MT5에서 Strategy Tester는 다음 방법 중 하나로 열 수 있습니다.

  1. 키보드에서 Ctrl+R을 누릅니다.
  2. 상단 메뉴에서 View를 누른 뒤 Strategy Tester를 선택합니다.
  3. 화면 아래쪽에 Strategy Tester 패널이 열리는지 확인합니다.
  4. 패널이 너무 작으면 위쪽 경계선을 드래그해서 높이를 넓힙니다.

초보자에게 가장 어려운 부분은 화면이 열려도 무엇을 먼저 건드려야 하는지 모르는 것입니다. 처음에는 모든 항목을 이해하려고 하지 말고 아래 순서만 고정해서 진행합니다.

순서항목먼저 할 일
1Expert테스트할 EA 선택
2Symbol테스트할 상품 하나 선택
3TimeframeH1 또는 D1처럼 너무 짧지 않은 시간봉 선택
4DateCustom period로 시작일과 종료일 지정
5Deposit가상 초기 자금 입력
6Leverage계좌 조건과 비슷하게 선택
7Modeling처음에는 Every tick based on real ticks 또는 1 minute OHLC 선택
8Optimization처음에는 Disabled
MT5 Strategy Tester 설정 화면에서 Expert, Symbol, H1 시간봉, 사용자 지정 기간, Deposit, Leverage를 설정하는 화면
백테스트는 Expert, Symbol, Timeframe, Date, Deposit, Leverage를 명확히 고정한 뒤 실행한다

각 설정 항목을 초보자 기준으로 이해하기

Strategy Tester의 항목은 많지만, 첫 백테스트에서 중요한 것은 조건을 고정하는 것입니다. 조건이 바뀌면 결과도 바뀝니다. 설정을 기록하지 않은 백테스트 결과는 나중에 다시 재현하기 어렵습니다.

Deposit, Leverage, Modeling의 세부 의미는 실제 화면과 결과를 보면서 익혀도 됩니다. 첫 실행에서는 아래 시작값을 사용하되, 입력한 조건을 그대로 기록합니다.

항목의미초보자 기준 권장
Expert테스트할 EA 파일Permact_First_Candle_EA
Symbol테스트 상품처음에는 NAS100, XAUUSD, EURUSD 중 하나만
TimeframeEA가 판단할 캔들 주기H1 또는 D1
Date백테스트 기간처음에는 최근 1~3년
Forward일부 기간을 검증용으로 분리처음에는 No
Delays체결 지연 가정데모 연습은 기본값으로 시작
Modeling가격 데이터를 어떤 방식으로 재현할지정확도 우선이면 Every tick based on real ticks
Deposit가상 시작 잔고10,000 USD처럼 비교하기 쉬운 값
Leverage증거금 계산 조건실제 계좌와 비슷하게
Optimization여러 입력값 조합 자동 테스트처음에는 Disabled

특히 SymbolTimeframe은 반드시 기록해야 합니다. 같은 EA라도 NAS100 H1 결과와 XAUUSD H1 결과는 완전히 다를 수 있습니다. 같은 NAS100이라도 H1과 M5 결과는 거래 횟수와 손실 구조가 달라집니다. 데이트레이딩처럼 짧은 시간봉을 쓰는 전략일수록 이 차이가 더 커질 수 있습니다.

첫 백테스트 권장 설정

처음부터 좋은 결과를 만들려고 하지 말고, 테스트가 정상적으로 돌아가는지 확인하는 데 집중합니다.

항목시작값 예시이유
SymbolNAS100+ 또는 XAUUSD+ 중 하나사용자가 실제로 볼 상품 하나만 고정
TimeframeH1너무 촘촘하지 않아 흐름을 보기 쉬움
Date최근 1년데이터 로딩과 결과 확인이 빠름
Deposit10,000 USD손익률과 드로다운 비교가 쉬움
Leverage비교할 데모·실계좌와 같은 조건증거금 계산 조건을 맞춰 결과 비교 가능성을 높임
ModelingEvery tick based on real ticks가능하면 더 촘촘한 데이터로 확인
OptimizationDisabled첫 단계는 최적화가 아니라 단일 검증
Visual mode첫 1회는 On주문 흐름을 눈으로 확인

테스트가 너무 오래 걸리면 기간을 줄이거나 Modeling을 낮춰도 됩니다. 다만 최종 판단용 백테스트는 되도록 더 좋은 데이터 품질로 다시 확인해야 합니다.

Inputs 탭에서 확인할 값

Strategy Tester에서도 EA를 차트에 붙일 때처럼 Inputs 값을 확인해야 합니다. 이 값이 바뀌면 백테스트 결과도 달라집니다.

Lots, StopLossPoints, TakeProfitPoints를 처음부터 직접 설계할 필요는 없습니다. 작은 lot과 기본값으로 실행 흐름을 확인한 뒤, 값을 하나씩 바꾸며 결과 차이를 기록합니다.

입력값의미초보자 기준
Lots주문 수량0.01로 시작
StopLossPoints손절 거리심볼별 포인트 단위 확인
TakeProfitPoints익절 거리손익비 실험용 값
MinStopBufferPoints초기 stop level에 더할 여유실행 오류를 줄이기 위한 보조값
MagicNumberEA 주문 식별 번호같은 EA끼리 구분하는 번호

Lots는 작게 시작해야 합니다. 백테스트에서 수익을 크게 보이게 하려고 lot을 키우면 전략이 좋아진 것이 아니라 위험 노출만 커진 것입니다. 특히 초보자는 “수익 금액”보다 “계좌 대비 손실률”과 “최대 드로다운”을 먼저 봐야 합니다.

Visual mode는 수익률 확인 화면이 아니라 디버깅 화면입니다

Visual mode를 켜면 백테스트가 차트 위에서 재생됩니다. 속도는 느리지만 초보자가 EA 동작을 이해하는 데 매우 좋습니다.

백테스트에서는 실제 돈이 움직이지 않습니다. 차트 재생과 주문 로그를 보면서 EA가 어디에서 진입하고 청산하는지 확인합니다.

Visual mode에서 확인할 것은 다음입니다.

확인 항목질문
진입 위치직전 캔들 방향 조건과 맞는가
진입 빈도매 틱마다 과도하게 주문하지 않는가
손절·익절주문과 함께 SL/TP가 붙는가
반대 신호선택된 포지션의 MagicNumber가 일치할 때 청산을 요청하며, 헤징 계좌의 여러 포지션은 남지 않는가
로그Journal에 같은 오류가 반복되지 않는가
MT5 Strategy Tester Visual mode에서 NAS100 백테스트 중 Journal에 invalid stops 오류가 표시된 화면
invalid stops는 손절·익절 거리가 해당 심볼의 최소 허용 거리보다 가까울 때 자주 발생한다

위 화면처럼 Journal에 invalid stops가 보이면 “전략 아이디어가 틀렸다”는 뜻이 아닐 수 있습니다. 주문에 붙인 손절 또는 익절 가격이 해당 심볼의 최소 허용 거리보다 너무 가까울 때도 이 오류가 납니다. NAS100, XAUUSD 같은 CFD는 상품마다 포인트 단위와 최소 stop level이 다르므로 같은 입력값을 그대로 쓰면 주문이 거부될 수 있습니다.

invalid stops가 나올 때 확인하는 순서

invalid stops는 초보자가 MT5 백테스트에서 자주 만나는 오류입니다. 다음 순서로 확인합니다.

invalid stops는 전략 성과가 아니라 주문 조건 문제를 알려 주는 실행 오류입니다. 오류를 숨기지 말고 당시 심볼 설정과 입력값을 함께 남겨야 재현할 수 있습니다.

순서확인할 것조치
1손절·익절 방향이 주문 종류와 맞는가매수는 SL이 Bid 아래·TP가 위인지, 매도는 SL이 Ask 위·TP가 아래인지 확인
2현재 호가에서 최소 거리를 지켰는가Bid/Ask와 SYMBOL_TRADE_STOPS_LEVEL을 같은 시점에 기록해 가격 차이 계산
3가격이 유효한 호가 단위인가_Digits 반올림만 믿지 말고 SYMBOL_TRADE_TICK_SIZE 배수로 정렬
4시장가·지정가 규칙을 혼동하지 않았는가주문 종류별 진입가와 stop 방향을 다시 확인
5서버가 실제로 무엇을 거부했는가ResultRetcode(), 설명, deal·order 번호를 Journal과 함께 기록
6기존 주문·포지션을 수정·취소·청산하는가초기 stop 거리와 분리해 SYMBOL_TRADE_FREEZE_LEVELTRADE_RETCODE_FROZEN 점검

1편의 예제 EA는 초기 손절·익절 거리를 SYMBOL_TRADE_STOPS_LEVEL + MinStopBufferPoints로 보정하고 가격을 SYMBOL_TRADE_TICK_SIZE에 맞춥니다. SYMBOL_TRADE_FREEZE_LEVEL은 초기 거리와 합치지 않고, 이후 기존 주문·포지션에 대한 수정·취소·청산 경로에서 서버 규칙과 함께 따로 확인합니다. 무조건 거리를 넓히기 전에 방향, 호가, tick size, 주문 종류, 서버 retcode부터 확인하세요. 더 자세한 진단 순서는 Fix `invalid stops` in MT5: Stop Levels, Tick Size, and Retcodes(영문)에 정리했습니다.

전체 기간 한 번으로 판단하면 안 됩니다

백테스트에서 가장 위험한 착각은 전체 기간 결과 하나만 보고 전략을 판단하는 것입니다. 전체 결과가 좋아 보여도 특정 한 달, 특정 한 해의 큰 수익이 나머지 부진을 덮었을 수 있습니다.

예를 들어 2024년부터 2026년까지 테스트할 수 있다면 다음처럼 나눕니다.

테스트 이름기간 예시확인할 질문
전체 구간2024-01-01 ~ 2026-06-30전략의 큰 흐름은 어떤가
1년차2024-01-01 ~ 2024-12-31특정 해에만 좋았는가
2년차2025-01-01 ~ 2025-12-31다른 시장에서도 버티는가
최근 6개월2026-01-01 ~ 2026-06-30최근 조건에서 무너지지 않는가
급변동 구간급등·급락이 있던 날짜연속 손실과 주문 거부가 늘어나는가

시장 구간을 정확히 구분하기 어렵다면 처음에는 날짜만 기계적으로 나눠도 됩니다. 중요한 것은 한 번의 결과를 믿지 않는 습관입니다.

백테스트 기록표를 남기는 방법

백테스트를 한 뒤에는 결과 캡처만 저장하지 말고 표로 기록합니다.

기록 항목예시왜 필요한가
테스트 날짜2026-07-08나중에 데이터 조건을 비교
운영체제·MT5 터미널 빌드Help → About에 표시된 값UI와 테스트 엔진 차이 확인
브로커·서버·계좌 유형데모 환경 식별값심볼 사양과 거래 조건 차이 확인
EA 파일명·버전파일명과 #property version같은 코드인지 확인
SymbolNAS100+상품이 바뀌면 결과도 바뀜
TimeframeH1시간봉 비교 기준
기간2024-01-01 ~ 2026-06-30시장 구간 확인
Modeling·History Quality선택값과 결과값사용한 가격 데이터 조건 확인
Lots0.01위험 노출 확인
StopLossPoints500손절 조건 기록
TakeProfitPoints1000익절 조건 기록
Net Profit결과값최종 손익
Max Drawdown결과값중간 최대 낙폭
Total Trades결과값통계 의미 확인
Profit Factor결과값총이익과 총손실 비율
Journal 오류있음/없음주문 거부와 데이터 문제 확인

이 표가 쌓이면 나중에 전략을 개선할 때 훨씬 편해집니다. 자동매매는 “이번 결과가 좋았다”보다 “어떤 조건에서 나빠졌는지 설명할 수 있다”가 더 중요합니다. AI 트레이딩이나 AI 주식 전략을 만들 때도 이 기록이 있어야 AI에게 무엇을 고쳐 달라고 요청할 수 있습니다.

Journal, Backtest, Graph 읽는 순서

최근 MT5 Strategy Tester에서는 Overview, Settings, Inputs, Backtest, Graph, Agents, Journal 같은 탭이 보일 수 있습니다. 터미널 빌드나 브로커 제공 버전에 따라 이름과 배치는 달라질 수 있지만, 아래 읽기 순서는 같습니다.

Profit Factor, Expected Payoff, Drawdown을 아직 해석하지 못해도 됩니다. 먼저 각 숫자가 어느 탭에 있고 어떤 설정으로 만들어졌는지 확인합니다.

먼저 볼 것해석 기준
Journal오류 메시지주문이 정상적으로 들어갔는지 확인
Backtest핵심 통계와 거래 내역거래 수·드로다운을 확인하고 진입·청산이 규칙과 맞는지 점검
Graph잔고 곡선우상향보다 중간 낙폭을 먼저 확인
Settings / Inputs테스트 조건과 EA 입력값나중에 같은 결과를 재현할 수 있는지 확인

Overview는 Profit Factor와 Drawdown을 보여 주는 요약 리포트가 아니라 테스트 작업 선택과 이전 결과 목록을 보여 주는 시작 화면에 가깝습니다. 오래된 문서나 다른 버전에서 Result 또는 Results라고 부르는 영역이 현재 화면에 없다면 Backtest 탭에서 핵심 통계와 거래 내역을 확인합니다. 별도 Report 탭이 없어도 Backtest 탭의 저장 메뉴로 리포트를 내보낼 수 있습니다.

순이익은 가장 마지막에 보는 편이 낫습니다. 순이익이 플러스라도 최대 드로다운이 지나치게 크면 은퇴자금이나 장기 운영에는 맞지 않을 수 있습니다. 반대로 순이익이 작아도 거래 수가 충분하고 드로다운이 낮으며 여러 기간에서 비슷하게 버티면 연구할 가치가 있을 수 있습니다.

초보자가 자주 하는 실수

실수왜 위험한가
최근 한 달 결과만 봄우연한 시장 구간일 수 있음
lot을 키워 수익금을 크게 만듦전략 개선이 아니라 위험 확대
Journal 오류를 무시함주문 실패가 결과를 왜곡할 수 있음
한 상품 결과를 다른 상품에 그대로 적용심볼별 포인트, 스프레드, 거래 시간이 다름
Optimization 결과 1등만 믿음과거 데이터에 과하게 맞춘 값일 수 있음
스프레드와 스왑을 무시함실거래와 괴리가 커짐

백테스트는 “좋은 전략을 증명하는 도구”라기보다 “위험한 전략을 빨리 걸러내는 도구”에 가깝습니다. 이 관점으로 보면 결과를 더 차분하게 볼 수 있습니다.

Optimization은 언제 켜야 하나

Strategy Tester에는 Optimization 기능이 있습니다. 여러 입력값 조합을 자동으로 돌릴 수 있기 때문에 좋아 보이지만, 초보자가 너무 빨리 쓰면 오히려 위험합니다.

최적화는 지금 당장 하지 않아도 됩니다. 기본 백테스트와 결과 기록이 익숙해질 때까지는 Disabled로 둡니다.

최적화는 다음 조건을 만족한 뒤에만 진행하는 편이 좋습니다.

  1. 단일 백테스트를 직접 설정할 수 있습니다.
  2. Journal, Backtest, Graph와 Settings / Inputs를 읽을 수 있습니다.
  3. 같은 설정으로 기간을 나눠 테스트해 봤습니다.
  4. 전략이 어떤 시장에서 약한지 설명할 수 있습니다.
  5. 바꾸려는 입력값의 의미를 말로 설명할 수 있습니다.

처음 최적화를 한다면 StopLossPoints, TakeProfitPoints처럼 의미가 분명한 값만 작게 범위를 잡습니다. 최적화 결과 1등 조합보다, 여러 구간에서 지나치게 무너지지 않는 넓은 범위를 찾는 것이 더 중요합니다.

데모 계좌 검증은 백테스트 다음입니다

백테스트가 끝났다고 바로 실계좌로 넘어가면 안 됩니다. 다음 단계는 데모 계좌에서 며칠 동안 실제 시세 흐름에 EA를 붙여 보는 것입니다.

확인 항목질문
EA가 꺼지지 않는가PC, 인터넷, MT5 상태가 안정적인가
중복 주문이 없는가같은 방향 포지션이 과하게 쌓이지 않는가
손절 없는 포지션이 없는가위험 제한 주문이 빠지지 않는가
Journal 오류가 반복되지 않는가주문 거부, 권한 문제, 데이터 문제가 없는가
백테스트와 큰 차이가 나는가스프레드, 슬리피지, 체결 조건 차이가 있는가

데모 계좌에서 확인할 핵심은 수익이 아닙니다. 자동매매가 며칠 동안 문제 없이 켜져 있고, 예상한 규칙대로만 주문을 내는지 보는 것입니다.

실계좌 전에 반드시 멈춰서 확인할 것

다음 질문에 답하지 못하면 실계좌로 넘어가지 않는 것이 좋습니다.

질문이유
이 EA는 어떤 조건에서 매수·매도하는가전략 구조를 모르면 문제 발생 시 대응 불가
손절은 어디에 들어가는가손실 제한 없는 자동매매는 위험
1회 손실은 계좌의 몇 퍼센트인가lot과 손절폭을 계좌 기준으로 봐야 함
최근 3년, 1년, 6개월 결과가 어떤가특정 기간 우연인지 확인
최대 드로다운을 감당할 수 있는가장기 운영에는 심리적 낙폭이 중요
Journal 오류는 없는가주문 실패가 반복되면 결과 신뢰도 하락
데모와 실계좌 조건 차이는 무엇인가스프레드, 수수료, 슬리피지, 스왑 차이

자동매매는 버튼 하나로 끝나는 기술이 아닙니다. EA 코드, 백테스트, 기간별 검증, 데모 운영, 리스크 제한이 한 세트입니다. 이 글의 목적은 수익 전략을 제시하는 것이 아니라, MT5 Strategy Tester로 전략을 의심하고 걸러내는 기본 절차를 익히는 것입니다.

다음 포스팅 예고

다음 글에서는 MT5 Strategy Tester 결과 리포트 읽는 법을 다룹니다. Profit Factor, Expected Payoff, Max Drawdown, Recovery Factor, Sharpe Ratio, 거래 수, 연속 손실을 어떻게 해석해야 하는지 초보자 기준으로 정리합니다.