본문으로 건너뛰기
교육

트레이딩 backtesting: 전략을 검증하는 방법

2026년 2월 27일
읽는 데 11분

실제 돈을 걸기 전에 과거 데이터로 트레이딩 전략을 검증하는 방법을 알려드려요. 선물 거래를 위한 수동 backtesting과 자동 backtesting을 단계별로 정리했어요.

트레이딩 아이디어가 하나 있어요. 먹힐 것 같아요. 차트에서 사례도 몇 개 봤고 꽤 그럴듯해 보여요. 질문은 이겁니다. 그 감 하나로 $5,000을 걸 수 있을까요?

답은 단호하게 아니요여야 해요. 1달러라도 걸기 전에 과거 데이터로 전략을 검증해야 합니다. backtesting이 하는 일이 정확히 그거예요. 과거의 수백 번 트레이드를 시뮬레이션해서, 그 아이디어에 진짜 통계적 우위가 있는지 아니면 그냥 착각인지 알려 줍니다.

backtesting이란 무엇인가요?

backtesting은 트레이딩 전략을 과거 시장 데이터에 적용해서 그 전략이 과거에 어떻게 굴러갔을지 따져 보는 과정이에요. 전략용 타임머신 같은 겁니다. 몇 주, 몇 달, 몇 년을 되감아서 실시간으로 하듯 계획을 그대로 실행해 보는 거예요.

전날 POC를 리테스트할 때 상승 핀바가 나오면 매수하는 전략이라면, backtesting으로 최근 6개월 세션을 훑으면서 그 조건이 충족된 순간을 전부 찾아 결과를 기록할 수 있어요. 100번 넘게 시뮬레이션하고 나면 그 전략이 돈을 버는지 잃는지에 대한 구체적인 데이터가 손에 들어옵니다.

backtesting은 미래를 예측하지 않아요. 하는 일은 통계적 확신을 주는 것이에요. 과거 200번의 트레이드에서 꾸준히 통했다면, 시장 환경이 급격하게 바뀌지 않는 한 앞으로도 통하리라고 믿을 근거가 탄탄해집니다.

backtesting이 왜 꼭 필요한가요?

우위(edge)를 검증해 줘요. backtesting이 없으면 진짜 우위가 있는 건지, 아니면 눈에 띈 5번의 수익 트레이드가 그냥 운이었는지 알 수 없어요. 수익을 내는 트레이더와 잃는 트레이더의 차이는 대개 검증된 edge가 있는 전략과 직감에 기댄 전략의 차이예요.

확신을 만들어 줘요. 실제 돈으로 3연패를 하고 있으면 전략을 갖다 버리고 싶은 유혹이 엄청나요. 하지만 backtesting에서 비슷한 drawdown 뒤에 회복이 따라왔다는 걸 알고 있으면 규율을 지킬 수 있어요. 데이터에 대한 확신이 감정적인 의심을 이깁니다.

약점을 찾아 줘요. backtesting은 전략의 사각지대를 드러내요. 추세장에서는 훌륭한데 횡보장에서는 다 토해 낼 수도 있어요. 아니면 win rate는 높은데 손익비가 지나치게 낮아서 한 번의 손실이 다섯 번의 수익을 지워 버릴 수도 있고요. 데이터가 없으면 끝까지 모릅니다.

수동 backtesting: replay 방식

수동 backtesting은 플랫폼의 replay(재생) 기능으로 과거 데이터를 캔들 하나씩 넘기면서, 실시간으로 거래하듯 결정을 내리는 방식이에요.

단계별로 하는 법:

  1. 플랫폼을 설정하세요. NinjaTrader에서는 Market Replay를 켜고, TradingView에서는 Bar Replay 기능을 쓰세요. 테스트하려는 기간의 시작점으로 되감으세요.
  2. 규칙을 글로 정하세요. 시작 전에 언제 진입하고, stop을 어디에 두고, 어디서 이익을 실현하고, 어떤 조건이 충족돼야 하는지 정확히 적으세요. 애매한 부분이 없어야 해요.
  3. 캔들 하나씩 넘기세요. 뒤에 뭐가 오는지 미리 보는 반칙은 하지 마세요. 그 시점까지 보이는 것만으로 결정하세요.
  4. 모든 트레이드를 기록하세요. 날짜, 종목, 방향(롱/숏), 진입가, stop, target, 결과(틱과 달러 기준 손익), 그리고 셋업의 질에 대한 메모까지 스프레드시트에 남기세요.
  5. 정직하세요. 실시간이었다면 그 트레이드를 잡았을지 확신이 서지 않는다면 "애매함"으로 표시하고 따로 분석하세요.

수동 backtesting의 장점:

  • 차트를 읽는 눈이 길러져요
  • 불확실성이 살아 있는 상태에서 결정을 내리게 만들어요
  • 프로그래밍이 필요 없어요
  • 실전에서 모든 전략에 섞여 드는 주관적 판단까지 담아내요

단점:

  • 느려요 (한 달치 데이터에 몇 시간이 걸릴 수 있어요)
  • 무의식적인 편향에 취약해요 (뇌는 그 전략이 통하기를 바라요)
  • 아주 긴 기간을 반복하기 어려워요

자동 backtesting: 기계에게 일을 맡기기

자동 backtesting은 전략의 규칙을 코드로 옮겨서 소프트웨어가 과거 데이터 위에서 자동으로 돌리게 하는 방식이에요. 더 빠르고 객관적이지만 기술적인 역량이 필요해요.

선물 거래용 주요 도구:

플랫폼언어이런 경우에 좋아요
NinjaTrader Strategy AnalyzerNinjaScript (C#)선물의 기계적 전략
TradingView Pine ScriptPine Script빠른 프로토타입, 지표 기반 전략
Sierra ChartACSIL (C++)복잡한 전략, 고빈도 매매
Python (backtrader/zipline)Python깊이 있는 통계 분석, 포트폴리오

자동 backtesting의 작업 흐름:

  1. 진입, stop, target 규칙을 코드로 옮겨요
  2. 종목과 과거 기간을 고르세요
  3. backtesting을 실행하세요
  4. 결과 리포트를 분석하세요
  5. 필요하면 파라미터를 조정하세요 (curve fitting에 빠지지 않게 조심하면서요)

자동 backtesting은 수천 번의 트레이드를 몇 초 만에 돌려서 훨씬 큰 통계 표본을 줘요. 다만 중요한 한계가 하나 있어요. 주관적인 판단을 잘 담아내지 못합니다. 전략이 "맥락을 읽는다"거나 "모멘텀을 느낀다"에 의존한다면 코드로 옮기기 어려워요.

반드시 측정해야 할 핵심 지표

전략이 "번다", "잃는다"만 아는 걸로는 부족해요. 품질을 따져 볼 구체적인 지표가 필요합니다.

지표무엇을 재는지바람직한 값
Win Rate수익 트레이드 비율R:R 1:1이면 >50%, R:R 2:1이면 >40%
Average R:R평균 손익비1.5:1 이상이 이상적, 최소 1:1
Profit Factor총이익 / 총손실1.5 이상 양호, 2.0 이상 훌륭
Max Drawdown고점 대비 최대 자본 감소폭감내 수준에 따라 다름, 20% 미만이면 보수적
Expectancy트레이드당 평균 손익양수 (양수이기만 하면 됨)
Sharpe Ratio변동성으로 조정한 수익률1.0 이상 수용 가능, 2.0 이상 훌륭

Expectancy 공식:

Expectancy = (Win Rate x Avg Win) - (Loss Rate x Avg Loss)

expectancy가 양수라면 그 전략에는 통계적 우위가 있어요. 높을수록 좋고요. 트레이드당 expectancy가 $50이라면, 평균적으로 트레이드를 열 때마다 $50을 기대한다는 뜻이에요(손실까지 포함해서요).

Profit Factor는 아마 가장 직관적인 지표일 거예요. 2.0이면 1달러를 잃을 때마다 2달러를 번다는 뜻이에요. profit factor가 1.0 아래면 그 전략은 돈을 잃습니다.

표본 크기: 트레이드가 몇 번 필요할까요?

가장 흔한 실수 중 하나가 이거예요. 20번 테스트해서 14번이 수익이었다고 전략이 유효하다고 선언하는 거요. 표본이 그렇게 작으면 순전히 운일 수도 있어요.

일반 원칙: 최소 100번의 트레이드. 100번쯤 되면 통계적 유의성이 생기기 시작해요. 200~300번이면 표본이 탄탄합니다. 50번보다 적으면 결론은 사실상 쓸모가 없어요.

그리고 표본에 여러 시장 환경이 들어가야 해요. 강한 상승 추세, 하락 추세, 횡보 구간, 변동성이 큰 시기와 작은 시기까지요. 상승 추세에서만 통하는 전략은 완성된 전략이 아니에요.

실전 조언: 장중 매매라면 최소 6개월치, 스윙이라면 2~3년치 데이터를 테스트하세요. 지수 선물(NQ, ES)을 거래한다면 큰 이벤트가 있던 구간(FOMC, NFP, 실적 발표)도 포함하세요.

반드시 피해야 할 치명적인 실수

Curve Fitting (과최적화)

1번 실수예요. 과거 데이터에서 완벽한 결과가 나올 때까지 파라미터를 계속 만지는 거요. 문제는 미래가 아니라 과거에 맞춰 최적화했다는 점입니다.

curve fitting의 신호:

  • 조정 가능한 파라미터가 10개가 넘어요
  • 파라미터를 1틱만 바꿔도 결과가 망가져요
  • 결과가 "사실이라기엔 지나치게 좋아요" (profit factor 5 이상)
  • 어떤 기간에는 완벽한데 다른 기간에는 처참해요

피하는 방법: out-of-sample 방식을 쓰세요. 데이터를 두 부분으로 나누세요. 앞쪽 절반(in-sample)으로 전략을 만들고, 뒤쪽 절반(out-of-sample)으로 검증하세요. 두 구간의 결과가 비슷하면 curve fitting은 없는 겁니다.

slippage와 수수료를 무시하기

backtesting에서는 완벽한 체결을 가정하고 싶어져요. 하지만 현실에는 slippage(주문을 내고 체결되기까지 가격이 움직이는 것)가 있고, 트레이드마다 수수료가 붙어요. scalping에서는 이 마찰 비용이 수익 전략을 손실 전략으로 뒤집기도 합니다.

선물 거래의 실전 원칙: 트레이드당 slippage 1틱과, 쓰는 플랫폼·브로커의 실제 수수료를 더하세요. 그 비용까지 얹고도 수익이 남으면 견고한 전략이에요.

생존 편향

"통했다는 걸 아는" 종목이나 기간에서만 전략을 테스트하는 거예요. 무의식적으로 힘들었던 구간을 피하게 됩니다. 해법은 단순해요. 예외 없이 사용 가능한 전 기간을 테스트하세요.

forward testing: 실전으로 이어지는 다리

backtesting은 그 전략이 과거에 통했다고 말해 줘요. forward testing(페이퍼 트레이딩 또는 데모 거래라고도 해요)은 편향 없이 지금 이 순간, 실시간으로도 통한다는 걸 확인해 줍니다.

과정은 간단해요:

  1. backtesting을 긍정적인 결과로 마쳤어요
  2. 실제 돈 없이(데모나 페이퍼로) 실시간으로 전략을 굴려요
  3. backtesting과 똑같은 방식으로 모든 트레이드를 기록해요
  4. 30~50번의 트레이드 뒤에 forward test 지표를 backtesting 지표와 비교해요

지표가 (합리적인 오차 범위 안에서) 비슷하면 전략은 검증된 거예요. forward test 결과가 눈에 띄게 나쁘다면 curve fitting이 있었거나, 결정에 감정적 편향이 끼었거나, 시장 환경이 달라진 것일 수 있어요.

판돈이 걸린 forward test로서의 prop firm

바로 여기서 prop firm이 이 과정에 딱 맞물려요. 전략이 backtesting과 데모 forward test를 통과했다면, prop firm의 challenge가 그다음 단계의 검증으로 작동합니다.

challenge는 실제 규칙(최대 drawdown, profit target, 최소 거래일)과 응시 비용을 잃을 수 있다는 압박 속에서 거래하게 만들어요. 의미 있는 규모의 실제 자본을 굴리기 전에 거치는 최종 forward test인 셈이에요.

이 단계에 가장 좋은 계좌는 규칙이 유연하고 가성비가 좋은 쪽이에요. 전략이 backtesting으로 검증됐다면, 합리적인 규칙의 challenge는 큰 장애물이 되지 않습니다.

prop firm이 처음이라면 여기서 시작하기 가이드를 보시고, 검증된 전략에 가장 잘 맞는 계좌를 찾으려면 비교기를 쓰세요. 첫 challenge 비용을 줄이려면 할인 정보도 확인해 보세요.

검증의 전체 흐름

분명히 해 두자면, 진지한 트레이더라면 따라야 할 전체 과정은 이래요:

  1. 아이디어 → 트레이딩 가설을 세워요
  2. 수동 backtesting → replay로 검증해요 (100번 이상)
  3. 지표 분석 → win rate, R:R, profit factor, max drawdown
  4. 자동 backtesting (선택) → 코딩이 된다면 표본을 키워요
  5. 데모 forward test → 돈 없이 실시간으로 30~50번
  6. prop firm challenge → 판돈이 걸린 첫 시험
  7. funded account → 맡겨진 자본으로 하는 실제 거래

단계를 생략하면 돈으로 값을 치릅니다. 지름길은 없어요.

자주 묻는 질문

실전에 들어가기 전에 backtesting에 얼마나 시간을 써야 하나요?

장중 전략이라면 집중적인 backtesting으로 최소 2~4주요. 지표가 양수인 시뮬레이션 트레이드가 최소 100번은 필요해요. 서두르면 실제 계좌에서 피할 수 있었던 손실로 값을 치르게 됩니다.

수동 backtesting과 자동 backtesting 중 뭐가 더 나은가요?

둘 다 쓸모가 있어요. 수동은 주관적 요소가 있는 전략(프라이스 액션, 맥락 읽기)에 더 좋고, 자동은 규칙이 정확한 순수 기계적 전략에 더 좋아요. 이상적인 순서는 먼저 수동으로 전략을 이해하고, 그다음 자동으로 더 큰 표본에서 검증하는 거예요.

backtesting에 prop firm 수수료도 넣어야 하나요?

네, 언제나요. 플랫폼 이용료, 시세 데이터 비용, slippage까지 넣으세요. 마찰 비용이 없을 때만 수익이 나는 전략은 실전에서 쓸 수 없는 전략이에요. 선물 수수료는 보통 계약당 왕복 $3-5 수준이에요.

backtesting 결과가 어중간하면 어떻게 하나요?

profit factor가 1.0에서 1.3 사이라면 실제 환경을 못 버틸 수도 있는 아슬아슬한 우위예요. 전략이 어디서 잃는지 뜯어보세요. 횡보장인가요? 변동성이 큰 구간인가요? 그 조건을 걸러 낼 필터를 넣거나 진입·청산 규칙을 손보세요. 손본 뒤에도 계속 어중간하면 접고 다른 아이디어를 시험하세요.

선물 backtesting에 TradingView를 쓸 수 있나요?

네, TradingView에는 선물 과거 데이터가 있고 Bar Replay 기능으로 수동 backtesting이 가능해요. 자동이라면 Pine Script가 프로토타입 용도로 잘 맞아요. 다만 틱 단위 데이터로 전문적인 backtesting을 하려면 NinjaTrader나 Sierra Chart가 더 나아요. 더 잘게 쪼갠 데이터를 다루니까요.

#backtesting#strategy#trading#historical data

관련 글

시작할 준비가 됐나요?

최고의 선물 prop firm을 비교하고 나에게 맞는 곳을 찾아보세요.