백테스트 데이터, 얼마나 길어야 할까? 시장의 사계절

시스템 트레이딩을 설계할 때 가장 고민되는 부분 중 하나인 ‘테스트 데이터 사이즈(Test Date Size)’에 대해 제 생각을 적어둡니다.

“과거 데이터를 보유하고 있는 모두 다 넣으면 좋은 거 아냐?”라고 생각하실 수도 있지만
저는 다르게 이용하고 있습니다.
(정답은 알 수 없고, 수익이 나면 그게 정답입니다.)

8년. 시장의 ‘사계절’을 담는 시간

보통 시장에는 4년 주기로 상승, 횡보, 하락이 반복되는 1사이클이 있다고들 하는데요.

4년은 좀 짧다고 저는생각합니다.
운 좋게 대세 상승장만 걸릴 수도 있거든요.

그래서 저는 최소 6년(약 1,500거래일)에서 8년(약 2,000거래일) 정도의 데이터셋을 기본으로 백테스트를 합니다.

8년이면 대략 2번의 사이클이 돌아가는데, 이 기간이면 웬만한 산전수전은 다 겪게 된다는 생각합니다.
실제로 2001년부터 최근까지 미국 시장(S&P 500)에 어떤 일들이 있었는지 보면

시가종가저가전년대비 상승률전년대비 최저하락율주요 이슈
20255881.636845.54835.0416.39%-17.79%트럼프 관세 쇼크
20244769.835881.634682.1123.31%-1.84%
20233839.54769.833794.3324.23%-1.18%
20224766.183839.53491.58-19.44%-26.74%고인플레이션 쇼크 및 가파른 금리 인상
20213756.074766.183662.7126.89%-2.49%
20203230.783756.072191.8616.26%-32.16%코로나19 팬데믹과 역대급 유동성 장세
20192506.853230.782443.9628.88%-2.51%
20182673.612506.852346.58-6.24%-12.23%미중무역전쟁시작
20172238.832673.612245.1319.42%0.28%
20162043.942238.831810.19.54%-11.44%브렉시트
20152058.92043.941867.01-0.73%-9.32%중국증시 폭락
20141848.42058.91737.9211.39%-5.98%
20131426.21848.41426.229.60%0.00%
20121257.61426.21258.913.41%0.10%
20111257.61257.61074.80.00%-14.54%미국 신용등급 강등 및 유럽 재정위기
20101115.11257.61010.912.78%-9.34%
2009903.21115.1666.823.46%-26.17%양적완화(QE)와 함께 대세 상승장 출발
20081468.4903.2741-38.49%-49.54%글로벌 금융위기, 리먼 브라더스 파산
20071418.31468.413643.53%-3.83%
20061248.31418.31219.313.62%-2.32%
20051211.91248.31136.23.00%-6.25%
20041111.91211.91060.78.99%-4.60%연준(Fed)의 금리 인상 시작
2003879.81111.9788.926.38%-10.33%이라크 전쟁 발발 → 극적인 반등 시작
20021148.1879.8768.6-23.37%-33.05%닷컴버블 하락 마무리, 엔론 등 회계 스캔들
20011320.31148.1944.8-13.04%-28.44%9·11 테러, 닷컴버블 붕괴 후폭풍 지속

보시다시피 6~8년이라는 시간을 잡으면, 아무리 시장이 좋았어도 반드시 한 번은 처절한 하락장이나 예상치 못한 쇼크를 만나게 됩니다.

시스템트레이딩 전략 이 기간을 ‘생존’해내는데 초점을 맞춥니다.

흐르는 물처럼, ‘윈도우(Window)’ 방식의 업데이트

시장은 항상 변한다고 생각을 합니다.
2000년대 초반의 거래량과 지금의 거래량은 비교 자체가 안 되죠. 



대형주와 중소형주의 역학관계, 기술주 중심의 환경 변화 등… 너무 오래된 과거 데이터는 오히려 현재의 로직을 오염시킬 수 있다는게 제 생각입니다.

그래서 저는 최신 데이터를 추가하고, 가장 오래된 데이터를 밀어내는 방식으로 데이터셋을 유지합니다.
20년 전의 결과에 집착하기보다는, 최근의 시장 환경에 내 로직이 얼마나 잘 녹아드는지를 보는 거죠.

엑셀 파일과의 싸움 : 견고함의 증명을 위해

저는 아이디어가 떠오르면 우선 엑셀로 빠르게 시뮬레이션을 해보는데요
어쩌다 도전 전신으로 제 로직이 생존이 얼마나 가능한지 확인하려고 이런 방법도 시도했습니다.
(지금은 AI로 만들 수 있습니다. ㅠㅠ)

2001~2008년 데이터로 로직을 다듬고, 2009년 1년을 시뮬레이션합니다.
그다음 2002~2009년 데이터로 2010년을 돌려봅니다.
이 과정을 2024년까지 반복하며서 매년 생존 여부를 체크했었습니다.

이 작업만으로 시뮬레이션 폴더가 1기가를 넘어가더군요.
(지금이면 더 빨리 몇시간만에 AI로 끝냈을 과정이 있지만.)

아무튼 그때는 “내 로직은 잘 버틴다” 라는 결과를 얻고 다음 단계로 나갈 수 있었습니다.

마치며: 정답은 없지만, 생존은 필수다

제가 하는 방식이 무조건 정답은 아닙니다.
어떤 분은 20년 치 데이터를 보실 수도 있고, 어떤 분은 최근 2년에 집중하실 수도 있겠죠.

정답은 없으니까요.

중요한 건 제가 설계한 로직이 시장의 사계절을 몇 번이나 버텨내며 녹아내리지 않았는지를
데이터로 확인해 보는 것도 좋은 방법이라 생각합니다.

four seasons of the market

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤