일타 강의 – Moon Dev 영상 파헤치기 10

https://www.youtube.com/watch?v=_5brnHogq5E

RBI 시스템과 전략 개발의 기초

여러분, 저는 매일 RBI 시스템, 즉 Research(연구), Backtest(백테스팅), Implement(구현) 과정을 따르며 트레이딩 전략을 자동화합니다.

연구 단계에서는 새로운 트레이딩 전략이나 알파 생성 기법을 탐구하고, 백테스팅 단계에서는 과거 데이터로 해당 전략이 효과적인지 검증합니다. 과거에 효과적이었다고 미래에도 성공이 보장되는 것은 아니지만, 가능성은 훨씬 높아지죠. 마지막으로 구현 단계에서는 효과가 입증된 전략을 실제 봇에 적용합니다.

오늘은 연구 단계에 초점을 맞춰 Neurotrader라는 유튜버의 영상을 참고하며 퍼뮤테이션 테스트를 활용한 전략 개발 방법을 보여드리겠습니다.


트레이딩 전략 개발의 4단계 프로세스

Neurotrader는 트레이딩 전략 개발 시 4단계 프로세스를 사용합니다. 이 접근법은 대부분의 전략에 적용 가능하며, 저도 이를 참고해 전략을 검증하고 개선합니다. 4단계는 다음과 같습니다.

  1. 인샘플 엑셀런스(In-Sample Excellence): 인샘플 데이터(개발 데이터)를 사용해 전략의 성능이 뛰어난지 평가합니다. 이 단계에서는 전략이 우수한지, 그리고 명백히 오버피팅(Overfitting)되었는지를 판단합니다. 우수성은 전략의 성격에 따라 다를 수 있지만, 일관성 없는 기간을 분석해 전략을 개선할 여지가 있는지 살펴봅니다.
  2. 인샘플 몬테카를로 퍼뮤테이션 테스트(In-Sample Monte Carlo Permutation Test): 전략의 성능이 데이터 내의 실제 패턴에서 비롯된 것인지, 아니면 데이터 마이닝 바이어스(Data Mining Bias)로 인한 우연인지 확인합니다. 데이터를 무작위로 섞어(permutation) 테스트하며, 실제 데이터에서의 성능이 무작위 데이터보다 월등해야 오버피팅이 아니라고 판단할 수 있습니다.
  3. 워크포워드 테스트(Walk-Forward Test): 전략을 최적화에 사용되지 않은 미래 데이터에 적용해 성능을 검증합니다. 이는 실제 트레이딩 환경을 모방하며, 데이터 마이닝 바이어스의 영향을 줄입니다.
  4. 워크포워드 몬테카를로 퍼뮤테이션 테스트(Walk-Forward Monte Carlo Permutation Test): 워크포워드 테스트 결과가 실제 패턴에 기반한 것인지, 우연인지 확인하기 위해 미래 데이터를 무작위로 섞어 테스트합니다. 이 테스트를 통해 전략의 신뢰도를 높일 수 있습니다.

인샘플 엑셀런스와 오버피팅 판단

첫 번째 단계인 인샘플 엑셀런스에서는 전략이 사용된 데이터에서 뛰어난 성능을 보이는지 확인합니다. 예를 들어, 이동평균 크로스오버(Moving Average Crossover)나 도니안 채널 브레이크아웃(Donchian Channel Breakout) 전략을 사용해 최적화를 진행합니다. 도니안 전략은 특정 기간 동안 최고가에서 롱, 최저가에서 숏 포지션을 취하는 방식으로, 트렌드 브레이크아웃을 활용합니다. 저는 비트코인 2016~2019년 데이터를 사용해 19일 룩백(Lookback) 기간이 최적의 프로핏 팩터(Profit Factor) 1.08을 달성한 것을 확인했습니다.

이 단계에서 두 가지 질문을 던집니다. 첫째, 이 성능이 우수한가? 둘째, 명백히 오버피팅되었는가? 우수성은 주관적일 수 있지만, 전략이 일관성 없는 기간을 보인다면 개선 여지를 찾아야 합니다. 오버피팅은 예를 들어 100% 승률 같은 비현실적인 결과나 미래 데이터 누출(Future Leak)이 있을 때 의심해야 합니다. 오버피팅이 의심되면 전략의 복잡도를 낮추거나 문제를 수정해야 합니다.

인샘플 퍼뮤테이션 테스트: 데이터 마이닝 바이어스 확인

두 번째 단계인 인샘플 퍼뮤테이션 테스트는 전략의 성능이 실제 패턴에서 온 것인지, 데이터 마이닝 바이어스에서 온 것인지 확인합니다. 데이터 마이닝 바이어스란 데이터를 반복적으로 분석하며 우연히 유리한 패턴을 찾아내는 것을 의미합니다. 이는 백테스팅에서 잘못된 긍정적 결과(False Positive)를 초래할 수 있습니다.

퍼뮤테이션 테스트는 다음과 같이 진행됩니다. 먼저, 전략의 널 하이포시스(Null Hypothesis)를 “이 전략은 무가치하다”로 설정합니다. 그런 다음 데이터를 무작위로 섞어(permutation) 실제 패턴을 제거하고, 이 섞인 데이터에서 전략을 최적화합니다. 도니안 전략의 경우 실제 데이터에서는 프로핏 팩터 1.08을 얻었지만, 섞인 데이터에서는 1.02에 그쳤습니다. 이를 통해 실제 데이터에서의 성능이 우연이 아니라는 증거를 얻을 수 있습니다. 1,000번의 퍼뮤테이션을 통해 p-값(P-Value)을 계산한 결과, p-값이 0.3%로 매우 낮아 널 하이포시스를 기각할 수 있었습니다. p-값이 1% 미만이면 이 테스트를 통과했다고 봅니다.

워크포워드 테스트와 퍼뮤테이션 테스트

세 번째 단계인 워크포워드 테스트에서는 2020년 데이터와 같은 아웃 오브 샘플(Out-of-Sample) 데이터에 전략을 적용합니다. 도니안 전략은 프로핏 팩터 1.04를 기록했는데, 이는 인샘플 결과(1.08)보다 낮지만 데이터 마이닝 바이어스가 없다는 점에서 의미가 있습니다. 이 결과가 트레이딩에 적합한지는 주관적 판단에 달려 있지만, 저는 이 정도로는 부족하다고 봅니다.

마지막 네 번째 단계인 워크포워드 퍼뮤테이션 테스트에서는 미래 데이터(2020년)를 섞어 전략의 성능이 우연인지 확인합니다. p-값이 22%로 나왔는데, 이는 무가치한 전략이 동일한 결과를 낼 확률이 22%라는 의미입니다. 1년 데이터에서는 p-값 5% 미만, 2년 이상 데이터에서는 1% 미만을 기준으로 삼아야 하며, 이 경우 테스트를 통과하지 못했다고 판단합니다. 따라서 도니안 채널 전략은 트레이딩에 적합하지 않다고 결론 내립니다.

퍼뮤테이션 테스트의 세부 사항과 추가 개념

퍼뮤테이션 테스트는 데이터를 섞는 방식으로 실제 신호와 수익률 간의 연결을 끊고, 우연히 얻은 결과와 비교해 전략의 유효성을 판단합니다. 섞는 방식에는 수익률 섞기(Returns Shuffling)와 신호 섞기(Signals Shuffling)가 있으며, 둘 다 실제 타이밍 관계를 깨뜨립니다. 이를 통해 전략이 오버피팅되었는지 확인할 수 있습니다.

추가로, 백테스팅에서 중요한 개념인 변동성 클러스터링(Volatility Clustering)과 롱 메모리(Long Memory)도 이해해야 합니다. 변동성 클러스터링은 시장이 큰 움직임 뒤 큰 움직임, 작은 움직임 뒤 작은 움직임이 이어지는 현상을 말하며, 이를 무시하면 리스크를 과소평가하거나 과대평가할 수 있습니다. 롱 메모리는 수익률이나 변동성의 상관관계가 매우 천천히 감소하는 특성으로, 전략의 유의성을 잘못 판단할 수 있습니다. 퍼뮤테이션 테스트는 이러한 특성을 일부 파괴할 수 있으니 주의해야 합니다.

추천 자료와 마무리

이 강의에서 참고한 책 두 권을 추천드립니다. 첫째, “Testing and Tuning Market Trading Systems”는 높은 세분성 테스트의 중요성을 설명하며, 둘째, Timothy Masters의 “Permutation and Randomization Tests for Trading System Development”는 퍼뮤테이션 테스트를 포함한 다양한 검증 방법을 다룹니다. 알고리즘 트레이딩에 진지한 분이라면 꼭 읽어보세요.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*