EA 백테스트는 과거 데이터로 전략을 모의 실행하며, 예측이나 미래 수익 보장이 아닙니다.
테스트 이해하기
결과는 종목, 기간, 가격 데이터, 모델링 방식, 거래 비용, 체결 가정과 EA 설정에 따라 달라집니다. 같은 문서화된 가정으로 비교하세요. 좋은 결과만으로 설정이 현실적임이 입증되지는 않습니다.
백테스트는 선택한 설정을 평가합니다. 최적화는 여러 설정을 시도하여 더 좋은 과거 결과를 찾습니다. 과거의 최적 조합을 선택하면 과거 데이터에 과적합될 수 있습니다.
MT4 데스크톱에서 EA 단일 백테스트 설정
보기 → 전략 테스터를 열거나 Ctrl+R을 누릅니다. 설정에서 플랫폼에 있는 컴파일된 전문가 상담가 (EA)를 선택합니다.
전체 종목 이름과 주기(차트 시간 주기)를 선택합니다. 날짜 사용을 켜고 시작일과 종료일을 입력하여 과거 데이터 범위를 제한합니다.
모델에서 모든 틱, 제어점 또는 시가만을 선택합니다. 시가만 사용하면 캔들 내부의 모든 가격 움직임이 재현되지 않습니다. 결과와 함께 선택한 방식을 기록하세요.
스프레드를 확인합니다. 기본값은 테스트 시작 시점의 종목 스프레드로 매수 호가 이력에서 매도 호가를 모델링합니다. 사용자 지정 값도 설정할 수 있지만 과거 변동 스프레드를 그대로 재현하는 것은 아닙니다.
EA 속성 → 테스트에서 가상의 초기 잔액, 통화와 허용 거래 방향을 설정합니다. 입력에서 각 값을 지정합니다. 시작, 단계와 종료 범위는 최적화에 사용됩니다.
고정 매개변수로 한 번 테스트하려면 최적화를 끕니다. 필요하면 시각화 모드를 켠 다음 시작을 클릭합니다. 완료 후 결과, 그래프, 보고서, 로그에서 모델링 품질과 오류를 확인합니다.
MT4: 입력값을 최적화하고 선택한 실행을 다시 테스트하기
최적화는 선택한 입력 항목의 값을 바꾸면서 과거 데이터 시뮬레이션을 반복합니다.
테스터 → 설정에서 사용 가능한 EA, 종목, 차트 주기, 모델링 방식, 날짜 범위, 스프레드를 선택합니다. 최적화를 켜세요. 꺼져 있으면 고정 입력값으로 단일 테스트를 실행합니다.
전문가 속성 → 테스트를 엽니다. 가상 예탁금, 통화, 허용 거래 방향, 순위 기준을 설정합니다. 유전 알고리즘 검색은 사용하려는 경우에만 선택합니다.
입력에서 변경할 매개변수를 선택하고 시작값, 증분, 종료값을 설정합니다. 선택하지 않은 매개변수는 값 항목의 고정값을 유지합니다.
전문가 속성 → 최적화에서 의도한 실행 제한만 켜고 설정합니다. 제한에 도달하면 해당 실행을 중단하고 다음 실행을 계속합니다.
시작을 선택합니다. 최적화 결과와 최적화 그래프를 확인하세요. 결과는 각 실행의 요약이며 모든 거래의 개별 내역이 아닙니다. 열을 기준으로 정렬하고 불필요한 결과 건너뛰기가 수익이 나지 않은 실행을 숨기는지 확인합니다.
실행을 두 번 클릭하거나 입력 매개변수 설정을 선택합니다. MT4가 해당 입력값을 설정으로 되돌리고 최적화를 끕니다. 복원된 값을 확인한 다음 시작을 선택하여 단일 테스트를 실행합니다.
입력 항목 | 의미 |
시작값 | 최초 값 |
증분 | 값을 늘리는 간격 |
종료값 | 마지막 값 |
값 | 매개변수를 선택하지 않았을 때 사용하는 고정값 |
선택한 입력값과 실제 테스트 기간을 보관하세요. 과거의 최고 결과를 고르는 것은 미래 데이터에 대한 독립적인 검증이 아니며 미래 수익성을 입증하지도 않습니다.
MT5 데스크톱에서 EA 단일 백테스트 설정
탐색기에서 EA의 컨텍스트 메뉴를 열고 테스트를 선택합니다. 테스터의 설정에서는 매개변수 최적화 대신 단일 테스트를 선택합니다.
주요 종목, 시간 주기 및 날짜 범위를 선택합니다. 종료일은 포함되지 않습니다. 다중 종목 EA라면 종합시세 → 종목에서 필요한 종목을 활성화합니다.
틱 모델링 방식과 실행 지연을 확인합니다. 생성 틱과 사용 가능한 실제 틱은 서로 다른 데이터입니다. 지연 없는 테스트는 이상적인 실행 조건이며 실제 거래 성과의 증거가 아닙니다.
가상의 초기 잔액, 통화와 레버리지를 설정한 뒤 EA의 입력을 지정합니다. 시뮬레이션 가정을 결과와 함께 기록하세요.
차트 재생이 필요하면 로컬 에이전트를 사용하고 최적화를 끈 상태에서 시각화 테스트를 활성화합니다. 설정에서 시작을 클릭합니다. 이력 다운로드에 시간이 걸릴 수 있습니다.
결과, 그래프와 로그를 확인합니다. 데이터 메시지나 시작일 변경을 점검하고 EA 버전 및 설정과 함께 보고서를 보관하세요. 비교하기 전에 아래 설명을 읽어 주세요.
MT5 데스크톱에서 매개변수 최적화 설정하기
탐색기에서 해당 EA의 테스트 명령을 엽니다. 설정에서 종목, 차트 주기, 날짜 및 시뮬레이션 가정을 확인합니다.
단일 테스트 대신 매개변수 최적화를 선택합니다.
입력에서 변경할 매개변수를 선택합니다. 시작값, 간격 및 종료값을 설정합니다. 선택하지 않은 매개변수는 고정됩니다. 표시된 조합 수를 확인합니다.
검색 방식을 선택하고, 유전 알고리즘 최적화의 경우 순위 기준도 선택합니다.
필요한 경우 시작하기 전에 아래 설명에 따라 선행 테스트 기간을 설정합니다.
시작을 클릭합니다. 완료되면 최적화 결과의 열 제목을 클릭하여 정렬합니다. 결과를 두 번 클릭하면 해당 매개변수로 단일 테스트를 실행할 수 있습니다.
최적화 방식 선택하기
느린 완전 탐색 알고리즘은 선택한 모든 조합을 평가하므로 상당한 시간이 걸릴 수 있습니다. 빠른 유전 알고리즘은 더 작은 집합을 검색하며, 모든 조합을 테스트했다는 뜻은 아닙니다. 해당 기준은 결과의 순위를 정할 뿐 전략의 수익성을 보장하지 않습니다. 사용한 방식과 기준을 기록하세요.
핍 단위 수익 추정은 스왑, 수수료 및 증거금 검사를 생략합니다. 위험을 평가하기 전에 더 상세한 모드를 사용하세요. 이 간편 계산은 모든 거래 비용을 재현하지 않습니다.
선행 테스트 기간 확보 및 결과 비교하기
설정 → 선행 테스트에서 1/2, 1/3, 1/4 또는 사용자 지정을 선택합니다.
날짜 범위의 후반부가 선행 테스트용으로 확보되고, 최적화에는 전반부가 사용됩니다. 사용자 지정에서는 선행 테스트 시작일을 설정합니다.
완료 후 최적화 결과와 선행 테스트 결과에서 선택된 결과를 비교합니다. 모든 조합이 선행 테스트되는 것은 아닙니다.
두 기간과 매개변수 집합을 보고서와 함께 보관합니다. 선행 테스트 기간의 결과를 바탕으로 다시 조정하면 그 기간의 독립성이 사라집니다.
MT5 틱 모델링 모드를 신중하게 선택하기
모드 | 선택의 의미 |
모든 틱 | 1분 봉에서 중간 가격을 시뮬레이션합니다. 기록된 실제 틱 이력이 아닙니다. |
실제 틱 기반의 모든 틱 | 이용 가능한 브로커 틱을 사용하며, 스프레드는 1분 안에서도 변할 수 있습니다. 틱 데이터가 없는 분은 1분 봉에서 생성될 수 있습니다. |
1분 OHLC | 각 분의 시가, 고가, 저가 및 종가를 사용합니다. EA 테스트 주기를 M1으로 변경하는 것은 아닙니다. |
시가만 | 봉이 시작될 때 EA를 호출하며 W1/MN1은 일 단위로 시뮬레이션됩니다. 스톱·대기 주문 결과 및 주기 데이터 접근에는 제약이 있으며 무작위 지연은 사용할 수 없습니다. |
각 모드는 서로 다른 가정을 테스트합니다. 단순화한 결과는 실제 틱 테스트와 동등하지 않습니다. EA 로직에 맞는 모드를 선택하고 보고서에 모드 이름을 기록하세요.
준비 상태와 실제 과거 데이터 기간 확인하기
필요한 종목 이력이 동기화될 때까지 기다립니다. 여러 종목을 사용하는 전략은 다른 이력을 불러오는 동안 일시 중지될 수 있습니다.
로그에서 요청한 날짜와 실제 날짜를 비교합니다. 시작 전 데이터가 부족하면 시작일이 더 늦어질 수 있습니다.
이 변경을 보고서에 기록하고 요청한 전체 기간을 테스트한 것으로 표시하지 마세요.
준비 시간을 줄이려고 차트 주기를 바꾸면 실험 조건도 달라집니다. 다른 주기의 결과를 비교하기 전에 EA 설계를 확인하세요.
MT5: 테스트에 영향을 주는 기술 조건
다음 MT5 테스터 동작은 MT4의 가정 및 실거래 계좌 동작과 구분해야 합니다.
조건 | 테스트 동작 |
스프레드 | MT5는 과거 값을 변동값으로 사용합니다. 과거 값이 0 이하이면 가장 최근에 알려진 값을 사용합니다. |
테스트 전 과거 데이터 | 최소 요청량은 D1 이하 1년, W1은100봉, MN1은8년(96개월)입니다. 준비 데이터가 부족하면 실제 시작일이 뒤로 이동할 수 있습니다. |
여러 종목 | 한 종목에 새 봉이 생겨도 다른 종목의 새 봉을 보장하지 않습니다. 시가만 사용하는 테스트는 동기화에 특히 주의해야 합니다. |
모의 시간 | 테스터 안에서는 GMT, 현지 시간과 서버 시간이 같습니다. 실제 서버의 시간대를 증명하지 않습니다. |
그래픽 객체 | 비시각적 테스트나 최적화에서는 객체를 그리지 않으며 속성 조회가 0을 반환합니다. 이 제한은 시각적 테스트에 적용되지 않습니다. |
DLL 호출 | 원격 에이전트는 DLL 호출을 금지합니다. 로컬 에이전트는 해당 가져오기 권한이 필요하지만 권한만으로 프로그램의 신뢰성이 증명되지는 않습니다. |
테스트를 실행하기 위해서만 DLL 가져오기를 켜지 마세요. 구체적인 필요와 프로그램의 신뢰성을 먼저 확인하고 무관한 권한은 꺼두세요.
MT5 시각적 백테스트 확인하기
위의 설명에 따라 시각적 테스트를 시작한 후 별도의 시각화 창을 사용합니다. 기본 차트에는 테스트 시간대가 적용됩니다. 이 창 안에서는 변경할 수 없으므로 시작 전에 선택하세요.
차트의 거래 표시와 테스트 가격을 함께 확인합니다. 이는 시뮬레이션 활동이며 현재 실계좌에서 발생하는 거래나 가격이 아닙니다.
보기 → 시장 관찰을 열거나 Ctrl+M을 눌러 시뮬레이션 안의 가격과 현재 시간을 확인합니다.
보기 → 데이터 창을 열거나 Ctrl+D를 누릅니다. 막대에 포인터를 올려 날짜, OHLC 가격, 스프레드, 거래량 및 지표 값을 확인합니다.
보기 → 도구 상자를 열거나 Ctrl+T를 누릅니다. 거래에서 모의 포지션과 대기 주문, 내역에서 주문과 체결, 작업에서 EA 요청, 일지에서 테스트 로그를 확인하고 비교합니다.
예상하지 못한 작업을 조사할 때는 관련 요청, 체결 및 로그 항목의 시뮬레이션 시간을 대조합니다. 요청된 작업과 체결된 거래는 서로 다른 기록입니다.
완료되지 않는 MT5 테스트 문제 확인
저널을 시간순으로 읽습니다. 과거 데이터 준비 중에는 주 테스트 종목과 통화 환산용 종목 데이터를 다운로드할 수 있습니다. 데이터 준비와 EA가 이미 실행 중인 상태는 서로 다릅니다.
OnInit 실패는 EA를 초기화하지 못했다는 뜻입니다. 입력값과 관련 메시지를 확인하세요. 실계좌 주문이 거절되었다는 증거가 아닙니다.
메모리 오류, 배열 범위를 벗어난 인덱스, 0으로 나누기는 테스트를 종료시킬 수 있습니다. 부분 보고서를 완료된 테스트로 취급하지 말고 정확한 오류를 기록하여 개발자와 상의하세요.
요청한 날짜 범위와 실제 종료 지점을 비교합니다. 모의 강제 청산이나 EA의 자체 제거로 테스트가 일찍 끝날 수 있습니다. EA 버전, 설정, 관련 로그 메시지를 보고서와 함께 보관하세요. 조기 종료만으로 원인을 확정할 수는 없습니다.
MT5: 테스트 보고서 필드 읽기
이러한 과거 시뮬레이션 지표를 함께 비교하세요. 높은 비율 하나만으로 미래 수익성이 입증되지는 않습니다.
필드 | 해석 |
기록 품질 | 누락 구간을 포함한 1분 가격 데이터의 품질이며, 수익 거래 비율이 아닙니다. |
수익 계수 | 총이익을 총손실로 나눈 값입니다. 값이 일이면 둘이 같습니다. |
회복 계수 | 얻은 수익을 최대 낙폭으로 나눈 값입니다. |
샤프 비율 | 수익률에서 무위험 이자율을 뺀 뒤 수익률 표준편차로 나눕니다. 테스터는 무위험 이자율을 영으로 가정합니다. |
잔고 / 자산총계 낙폭 | 절대 낙폭은 초기 자금과 그 아래 최저값을 비교합니다. 최대 낙폭은 국소 고점에서 다음 저점까지의 가장 큰 하락을 통화 금액으로, 상대 낙폭은 백분율로 측정합니다. 잔고와 자산총계을 따로 확인하세요. |
포지션 보유 시간 | 개설부터 완전 청산까지입니다. 이 지표에서는 부분 청산과 반전을 완전 청산으로 세지 않습니다. |
진입 도표는 개설, 증액, 반전을 묶고 손익 도표는 부분 청산과 반전을 포함한 청산을 묶습니다. 시간, 요일, 월별 분포는 테스트를 설명할 뿐, 수익이 보장되는 거래 시간을 알려 주지 않습니다.
전체 과정을 함께 살펴보기
예를 들어 10,000으로 시작해 12,000으로 끝난 테스트는 해당 시뮬레이션의 순이익을 보여 줍니다. 그러나 중간 하락폭, 위험에 노출된 자금, 소수 거래에 대한 의존도까지 보여 주지는 않습니다. 자산총계 곡선, 낙폭, 거래 횟수와 손익 분포를 함께 확인하세요. 수치는 설명용이며 수익 목표나 전략 추천이 아닙니다.
잔고 곡선은 주로 완료된 거래를 반영하며 자산총계 곡선에는 미실현 손익도 포함됩니다. 매끄러운 잔고 곡선이 큰 미실현 손실을 감출 수도 있습니다. 보고서를 비교하기 전에 곡선과 낙폭 지표의 종류를 확인하세요.
비교 전에 데이터와 비용 확인하기
정확한 종목, 기간, 데이터 범위, 모델링 방식과 비용 가정을 확인하세요. 스프레드, 수수료, 스왑과 체결 지연은 결과를 바꿀 수 있습니다. 모든 비용이나 현재 실거래 체결 조건이 재현된다고 가정하지 마세요. 데이터 누락이나 가격 출처 차이도 거래 순서에 영향을 줄 수 있습니다.
MT4와 MT5 테스트를 구분하세요. 두 플랫폼용 EA가 자동으로 같은 프로그램인 것은 아닙니다. 플랫폼, EA 버전과 설정은 보고서와 일치해야 합니다. 거래가 없으면 EA 고장이나 전략 특성이라고 판단하기 전에 로그, 사용 가능한 데이터와 입력값을 확인하세요.
매개변수 선택과 독립 검증 분리하기
한 기간의 결과가 좋아질 때까지 설정을 반복 변경하면 그 기간은 더 이상 독립 검증이 아닙니다. 매개변수를 선택하기 전에 별도 기간을 확보하고 그 기간에 맞춰 다시 조정하지 않은 채 평가하세요. 최상의 결과를 반복 선택하면 다른 기간에는 통하지 않는 보기 좋은 보고서가 만들어질 수 있습니다.
재현 가능한 기록을 보관하세요. 플랫폼 및 EA 버전, 종목, 기간, 초기 테스트 잔고, 매개변수, 모델링 방식, 비용과 보고서가 필요합니다. 변경은 하나씩 비교하세요. 백테스트, 최적화와 데모 운영은 서로 다른 질문에 답하며 어느 하나만으로 적합성이나 수익성을 입증할 수 없습니다.
결과를 적절히 활용하기
수익뿐 아니라 최대 자산 감소폭과 거래 횟수도 확인하세요. 설정 선택에 사용하지 않은 별도 기간을 남겨 성과를 비교하세요. 데모 테스트는 운영 경험에 도움이 되지만 실제 거래 결과를 보장하지 않습니다.
차이를 조사할 수 있도록 보고서와 함께 EA 버전, 설정, 테스트 기간과 가정을 보관하세요. MT4·MT5에서 실행된다는 사실만으로 FXTRADING.com이 EA의 수익성을 인증하는 것은 아닙니다. FXTRADING.com App에서는 EA를 설치하거나 실행할 수 없습니다.
