안녕하세요. 투자관련 지식을 공유하는 인천고래입니다.
자신만의 기법이 있는 분은 한 번쯤은 이러한 고민을 해 본적이 있을 것 같네요.
“이 전략, 실제 시장에서도 통할까?”
특히나 트레이더라면 한 번쯤은 고민해 보셨을 질문입니다. 백테스팅(back-testing)은 과거 데이터를 통해 전략의 성과를 미리 검증하는 과정인데요, 여기서 MFE·MAE·E-Ratio·BarsToHit·RangeReturn 같은 통계 지표들이 등장합니다. 문제는 이름만 봐서는 감이 안 잡힌다는 것! 이번 글에서는 통계·수학 지식이 없어도 이해할 수 있도록 예제와 직관적 해석을 곁들여 차근차근 설명합니다.
1. 왜 ‘숫자’보다 ‘의미’가 먼저일까?
- ‘수익률’ 한 줄만으론 위험과 기회를 동시에 보기 어렵다 – 같은 10% 수익이라도 최대 손실이 −2%였는지, −20%였는지에 따라 체감 위협이 달라집니다.
- 지표는 ‘의사결정 신호’ – 언제 들어가고, 언제 나올지를 데이터로 설명해 주는 촉각 센서와 같습니다.
- 서로 보완되는 지표 – MFE·MAE가 ‘폭’을, BarsToHit이 ‘시간’을, E-Ratio가 ‘효율’을 나타내며, RangeReturn은 ‘전체 여정’을 마무리합니다.
생소한 단어인 MFE, MAE, E-Ratio가 나왔지만 어려워하지 마세요. 아래에 이와 관련해서 하나씩 설명 드리도록 하겠습니다.
2. MFE (Maximum Favorable Excursion) — 최대 이익 폭 %, 수익 구간
정의 : 포지션을 잡은 뒤 가장 많이 유리하게 움직였던 지점까지의 수익률.
직관 : “전략이 한 번이라도 (진입)포지션 이후 최대 수익이 얼마나 발생되었는가?”를 측정합니다.
예제
진입가 10,000원, 포지션 보유 중 최고가 11,200원이라면MFE = (11,200 − 10,000) / 10,000 × 100 = 12%
해석 : 전략이 잠깐이라도 12% ‘먹여 줬다’는 뜻입니다. Take-Profit(익절) 타깃을 잡을 때 유용합니다.
3. MAE (Maximum Adverse Excursion) — 최대 불리 폭 %, 손실 구간
정의 : 포지션 보유 중 가장 많이 역방향으로 갔던 지점까지의 손실률.
예제
진입가 10,000원, 보유 중 최저가 9,300원이라면MAE = (9,300 − 10,000) / 10,000 × 100 = −7%
해석 : 최악의 순간에 −7%까지 물렸다가 올라왔다는 이야기. Stop-Loss(손절) 라인을 현실적으로 잡는 데 필수입니다.
4. MFE_norm · MAE_norm — _norm
이 붙는 이유?
정의 : 동일 기간의 ATR·볼래틸리티·평균 범위 같은 ‘시장 소음’으로 나눠서 스케일링한 값.
통상 MFE_norm = MFE / ATR
, MAE_norm = MAE / ATR
식으로 계산합니다.
- 1 이상이면 “평균보다 더 큰 움직임”
- 0.5 이면 “평균의 절반 정도 밖에 안 움직였다”
왜 필요할까? 동일 2% 손실이라도 변동성이 큰 종목에선 ‘평범’하고, 조용한 종목에선 ‘충격’일 수 있기 때문입니다.
5. E-Ratio (Efficiency Ratio) — 목표까지 얼마나 직진했나?
정의 : MFE 절대값 ÷ MAE 절대값 (또는 ‘순 이동 거리 ÷ 총 이동 거리’)
예제 A
MFE = +12%, MAE = −3% → E-Ratio = 12 / 3 = 4 ▶ 약 4배 더 ‘유리 구간’이 컸음
예제 B
MFE = +5%, MAE = −10% → E-Ratio = 0.5 ▶ 손실 쪽으로 더 멀리 갔음
해석 :
- 1 초과 → 전략이 ‘효율적으로’ 수익 구간을 누렸다.
- 1 미만 → 위험 대비 보상이 낮으니 전략 개선이 필요.
6. BarsToHit — 목표 도달까지 걸린 봉 수
정의 : 진입 후 MFE·MAE·TP·SL 등이 처음으로 터치될 때까지 지난 캔들(봉) 개수.
예제
5분봉 차트에서 ‘+10% TP’가 48번째 봉에 도달했다면BarsToHit = 48
→ 약 4 시간.
해석 : • Scalping 전략은 BarsToHit이 작아야, • 스윙 전략은 다소 커도 허용됩니다.
평균 BarsToHit이 100을 넘는다면 진입 타이밍이 느슨한지, 목표가 너무 높은지 점검!
7. RangeReturn — 지정 기간 수익률 또는 통산 수익률
정의 : 전략이 전체 보유 기간 또는 분석 구간에서 기록한 총 수익률.
MFE/MAE가 ‘중간 기록’이라면 RangeReturn은 ‘최종 성적표’입니다.
예제
전략 백테스트 기간 1년 간 +32% → RangeReturn = 32%
해석 : RangeReturn이 플러스라도 MAE가 너무 크면 스트레스가 커집니다. 반대로 RangeReturn이 작아도 E-Ratio가 높고 MAE가 얕다면 ‘안정형’ 전략으로 볼 수 있습니다.
8. 7가지 지표를 한눈에 읽는 법
지표 | 좋은 값 | 체크 포인트 |
---|---|---|
MFE | 클수록 ↑ | 익절 목표와 일치? |
MAE | 작을수록 ↓ | 손절선보다 깊나? |
MFE_norm | > 1 | 종목 변동성 대비 충분? |
MAE_norm | < 1 | 불필요한 흔들림? |
E-Ratio | > 1 | Risk-Reward 균형? |
BarsToHit | 전략 성격별 적정 | 타임프레임과 맞나? |
RangeReturn | 플러스 |
9. 실전 적용 체크리스트
- 목표 & 손절 먼저 고정 – TP·SL을 정하고 MFE·MAE를 확인합니다.
- 변동성에 정규화 – ATR을 이용해
_norm
지표로 스케일 확인. - E-Ratio 검증 – 1 미만이면 Risk-Reward 재설계.
- BarsToHit – 라이프스타일과 매매 스타일에 맞는지 확인.
- RangeReturn vs. DD(최대낙폭) – 수익과 고통을 함께 봅니다.
10. 예제로 익혀보는 백테스팅 항목 데이터 분석
10-1. 테이블 살펴보기 ― 눈에 띄는 셋만 먼저 골라보자
위에서 설명드린 항목들의 개념을 실제 백테스트 결과(위 스크린샷 6종목)에 대입하여 비교 분석을 해 보도록 하겠습니다.
우선 3가지 케이스(수익: 2행, 대박수익: 10행, 손절: 17행) 를 발췌하여 설명 드리도록 하겠습니다.
행 | 종목 (신호일) |
최종 수익(Return) | MFE | MAE | E-Ratio | BarsToHit | RangeReturn |
2 | 마이크로컨텍솔 (2014-05-31) | +82.40 % | 88.13 % | −17.74 % | 4.97 | 5봉 | 128.70 % |
10 | 포스코엠텍 (2018-01-31) | +47.40 % | 141.01 % | −35.22 % | 4.00 | 5봉 | 272.02 % |
17 | 시니트웍스 (2017-11-30) | −23.74 % | 5.16 % | −24.22 % | 0.22 | 0봉 | 38.77 % |

10-2. MFE vs. 최종 수익 ― “한 번이라도 88 % 먹여줬다!”
MFE는 최대 수익률이라고 했었죠? 그러면 5캔들(일봉이면 5일동안 캔들, 월봉이면 5개월의 캔들) 동안의 최대수익률로 보시면 됩니다.
1️⃣ 마이크로컨텍솔(2014-05-31)
- MFE 88.13 % > 최종 수익 82.40 %
- ➜ 전략이 익절 타깃만 조금 일찍 잡았어도 80 %대 수익을 온전히 챙길 수 있었다는 뜻.
- MAE −17.74 % → 손절폭을 −20 % 언저리에 두면 안심 매매가 가능했음.
2️⃣ 포스코엠텍(2018-01-31)
- **MFE 141 %**인데 최종 수익 47 %
- ➜ ‘따봉급’ 기회가 있었는데 절반도 못 챙겼다. (따봉이라니.... 제 나이가 크읍~)
- 백테스터 관점: 트레일링 스탑(이동 손절)을 써서 MFE 대비 70 % 이상 이익을 보존하도록 개선 가능.
3️⃣ 시니트웍스(2017-11-30)
- MFE 5.16 % vs. MAE −24.22 %
- ➜ 종목이 처음부터 상승도 없이 “패대기”쳤다.
- 진입 필터(모멘텀 확인 등)를 추가해 이런 ‘가짜 시그널’을 거를 수 있음.
10-3. E-Ratio로 본 ‘효율성’ 서열
구간 | E-Ratio 해석 |
> 3 | 종목이 상승 지속하여 3배 이상 오래 머무름 → 마이크로컨텍솔 4.97 |
1 ~ 3 | 위험 대비 보상이 낫다 → 포스코엠텍 4.00도 상위권 |
< 1 | 손실 구간이 우세 → 시니트웍스 0.22는 “효율성 최하” |
TIP
E-Ratio를 Risk-Reward 지수처럼 써서 전략 취사선택 기준으로 삼을 수 있으므로
1보다 작으면 제외, 1~2는 필터 통과, 3 이상은 프리미엄 전략… 과 같이 룰을 정해보는 것이 좋습니다.
10-4. BarsToHit ― “목표가까지 몇 봉 걸렸나?”
- ① 마이크로컨텍솔 5봉 (월봉 데이터이므로 ≈ 5개월)
- 최고가(88 %) 도달 → 스윙 트레이더에게 이상적.
- ② 포스코엠텍 5봉
- 역시 빠르다. E-Ratio까지 좋아 퀵-스윙 전략으로 적합.
- ③ 시니트웍스 0봉
- 신호 다음 봉에서 이미 ‘고점’ 형성, 이후 곧장 추락. → 즉시 하락 전환, 반등 착시였다.
활용법
평균 BarsToHit을 구해 “익절 타이머”(예: 5개월 내 목표 미도달 → 청산) 규칙으로 삼으면,
‘질질 끄는 포지션’을 자동 정리할 수 있습니다.
10-5. RangeReturn ― 지표 간 시너지 확인
- 포스코엠텍의 RangeReturn 272 %
- 회전매매 없이 단일 전략만으로도 최저점대비 최고점의 수익률이 +272%라는 의미입니다.
- 실제 “+47 % 청산”이 전략 전체 성적의 전부는 아님을 시사 → 복리 효과 고려 필수.
- 마이크로컨텍솔 128 % vs. MFE 88 %
- RangeReturn이 MFE보다 훨씬 크다? 항상 크게 발생할 수 있습니다.
- ➜ 재진입 시그널이 없는 단일 매매라 하더라도 보유 기간 동안에 최저점이 발생할 수 있으므로
포스코엠텍에서 설명드린 바와 같이 매수가 대비해서 계산하는 MFE와 다르게
저점대비 비교하므로 매수가보다 변동폭이 높으므로 수치도 크게 발생됩니다.
10-5-1. 왜 RangeReturn을 따로 보나요?
관점 | MFE/MAE | RangeReturn |
목적 | ‘익절·손절 폭’ 파악 | ‘총 변동성(스윙)’ 파악 |
원점 | 진입가 | 최저 ↔ 최고 |
활용 | ● TP·SL 최적화 ● E-Ratio 계산 |
● 트레일링 스탑 간격 산정 ● 포지션 규모(리스크) 조절 |
10-6. 실전 레슨 5가지
- MFE-to-Return 간격이 클수록 ‘익절 전략’ 개선 여지
- (마이크로컨텍솔 & 포스코엠텍 케이스)
- MAE + ATR = 손절 라인 수립 공식
- MAE가 -30 %, ATR이 2,000원이라면 ‘진입가 – 0.3 × 가격 또는 −1.5 × ATR’ 등 현실적 손절치를 설정.
- E-Ratio < 1 전략은 과감히 홀드백
- 시니트웍스처럼 MAE가 우세한 전략은 계좌 변동성을 키울 뿐이다.
- BarsToHit로 ‘전략의 리듬’을 맞춘다
- 내 라이프스타일이 데이트레이딩이라면 BarsToHit 0~1봉(= 1주 미만) 전략을 선택.
- RangeReturn은 ‘마지막 합격권’
- MFE·MAE·E-Ratio가 좋아도 RangeReturn이 빈약하다면 재투입 자본 활용도가 떨어진다.
10. 글을 마치며 — ‘숫자’ 뒤엔 ‘스토리’가 있다
백테스팅 지표는 단순히 보고서의 숫자 행이 아닙니다. MFE와 MAE는 전략이 겪은 최고의 순간과 최악의 순간을, E-Ratio는 그 여정의 효율을, BarsToHit은 시간적 리듬을, RangeReturn은 결국 남은 성적을 말해 줍니다. 이제는 차트나 엑셀에 찍힌 값이 ‘왜 중요했는지’ 눈에 들어오시나요?
다음 백테스트 결과를 볼 때, 위 7가지 지표를 체크리스트 삼아 분석해 보세요. 전략의 강점·약점·개선 포인트가 훨씬 선명하게 드러날 것입니다.
오늘도 제 글을 읽어주신 모든 분들께 감사의 말씀을 드립니다.
'Quant' 카테고리의 다른 글
키움 openAPI 한글 깨짐 문제 해결 (0) | 2024.06.27 |
---|---|
키움 API를 통해 분봉 데이터 가져오기 - kiwoom.block_request (0) | 2024.06.26 |
키움API로 분봉 데이터 가져오기 (주식 데이터 수집 및 분석 , python 소스 코드 포함 (0) | 2024.06.26 |
자동매매 프레임워크를 Flask서버에서 FastAPI로 변경할 예정입니다. (0) | 2024.06.16 |
텔레그램 봇 생성: Token 및 Chat ID 확인 방법 (0) | 2024.06.07 |