자산배분

TQQQ, TMF 수익곡선 모멘텀 백테스트

unius 2023. 1. 18. 14:52
728x90
반응형

그동안 6편의 글을 통해 고정 비중 전략부터 상대모멘텀, 절대 모멘텀, 평균모멘텀 순서로 백테스트를 수행하고 누적 수익을 확인해 보았다. 오늘은 수익곡선 모멘텀으로 백테스트한 결과를 올려보겠다. 먼저 수익곡선 모멘텀이 무엇을 말하는 것인지 알아보기 전에 모멘텀이라는 용어부터 확인해보면 용어 자체는 물리학 용어로 물체가 한 방향으로 지속적으로 변동하려는 경향을 의미한다. 이러한 개념이 증권시장에도 적용되어 가격의 추세를 의미하는 표현으로 사용되는 것이다. 그리고 상대모멘텀, 절대 모멘텀, 평균모멘텀과 같은 것들이 이 추세를 판단하는 여러 기준들이다. 마찬가지로 수익곡선 모멘텀도 추세를 판단하는 방법중의 하나인 것이다.

 

우리는 지난 6편의 백테스트들에서 각각의 방식에 따른 누적수익률 곡선들을 보아왔다. 수익곡선 모멘텀은 바로 각각의 전략에 따른 누적수익률 곡선을 하나의 종목으로 간주하여 모멘텀을 계산하고 해당 전략에 이 결과를 다시 반영하는 것이다. 글로 작성하다 보니 이해가 쉽지 않을 듯 하다. 하지만 천천히 끝까지 이번글을 읽어본다면 이해할 수 있으니 걱정할 필요는 없다.

 

이번 글에서 테스트 하는 수익곡선 모멘텀의 전략은 지난 글에서 설명했던 평균모멘텀 전략에 수익곡선 모멘텀을 추가 적용하는 방식으로 테스트 하였다. 평균모멘텀이 잘 기억나지 않는다면 이전 글을 다시 한번 읽어보기를 권한다.

 

TQQQ, TMF 평균 모멘텀 스코어 백테스트

TQQQ, TMF 백테스트 기록을 올리기 시작한 이후 6번째 글이다. 앞으로 2번 정도 더 올릴 예정이다. 번외편으로 1~2번 더 올라갈 수도 있다. 오늘은 평균 모멘텀 스코어 방식에 따른 백테스트 결과를

myportfolio.tistory.com

 

수익곡선 모멘텀 전략을 구체적으로 설명하면 아래와 같다.

  1. 투자자산은 TQQQ, TMF이고 안전자산은 미국 초단기채권 BIL로 정한다.
  2. 평균모멘텀 전략의 수익곡선으로 n개월 평균모멘텀을 산출한다.
  3. 수익곡선 n개월 모멘텀으로 안전자산의 비중을 산출한다. 즉, 산출된 수익곡선 평균모멘텀이 0.8 이라면 안전자산인 BIL의 최소비중은 (1-0.8)*100=20%가 된다.
  4. 투자자산은 전체 투자금의 0.8*100=80% 비중으로 평균모멘텀 전략에 따라 투자한다. 따라서 TQQQ, TMF의 평균모멘텀이 모두 1인 경우 총 투자금의 80%가 각 자산에 40%씩 투자되고 TQQQ, TMF의 평균모멘텀이 각각 0.5라면 총투자금의 40%가 각 자산에 20%씩 투자되고 나머지 40%는 안전자산인 BIL에 투자된다. 결과적으로 총 투자금에서 TQQQ, TMF에 각기 20%씩 투자되고 BIL 에 60%가 투자되는 것이다.

수익곡선 모멘텀이 이제는 이해가 될 것같다. 즉, 위 예에서 TQQQ, TMF의 평균모멘텀이 각각 0.5인 경우 수익곡선 모멘텀을 적용하지 않으면 TQQQ, TMF에 총 투자금의 25%씩 투자되고 BIL에 50%가 투자되는 반면에 수익곡선 모멘텀을 적용하면 TQQQ, TMF에 총 투자금의 20%씩 투자되고 BIL에 60%가 투자되게 된다.

 

수익곡선 모멘텀 개념을 설명하다보니 이전에 비해 글이 다소 길어졌다. 이젠 코드를 잠깐 살펴본다.

# 수익률곡선+평균모멘텀
yieldcurve = avg_report.prices['AMS_CASH(0)'].rebase(1).to_frame().copy()
yams = {}
lookbacks = [2,3,4,5,6,7,8,9,10,11,12]
for i in range(0,11):
    yams[i] = AverageMomentum_BT(assets_cash, start_day2, False, lag, 0, yieldcurve, lookbacks[i], 'yAMS_{}'.format(str(lookbacks[i])))

yams_report = bt.run(*yams.values())

yams_report.plot(figsize=(20,7), grid=True, title='Yield Curve Momentum')
yams_report.prices[start_day2:].calc_stats().display()

코드는 이전의 평균모멘텀 전략과 이어진다는 점을 참고하고 봐야한다. 수익률 곡선으로 초기 현금 비중이 0인 평균모멘텀 전략의 수익곡선을 사용하였고 해당 수익곡선의 2~12개월 평균모멘텀을 적용하여 백테스트를 수행하고 비교하였다. 이제 백테스트 결과를 보면 아래와 같다.

 

결과를 살펴보면 확실히 이전의 평균모멘텀 전략보다 전반적으로 개선되었다. 모멘텀 기간에 따른 큰 편차 없이 연간 수익률은 16% 전후를 안정적으로 보이고 MDD는 30%초반에 형성되었으며 2개월 평균모멘텀은 MDD가 -21.51% 까지 개선되었다는 것을 확인할 수 있다. 이 정도면 꽤나 안정적인 수익과 리스크를 보인다고 할 수 있을 듯 하다.

 

다음 글에서는 6,7편 글에서 뒤로 미루어 두었던 WeighAMS() 사용자 정의 Algo 클래스를 살펴볼 예정이다.

 

1편 : TQQQ, TMF 고정 비중 백테스트
2편 : TQQQ, TMF 상대 모멘텀 백테스트
3편 : TQQQ, TMF 절대 모멘텀 백테스트(1)
4편 : TQQQ, TMF 절대 모멘텀 백테스트(2)
5편: TQQQ,TMF 듀얼 모멘텀 백테스트
6편: TQQQ, TMF 평균 모멘텀 스코어 백테스트
7편: TQQQ, TMF 수익곡선 모멘텀 백테스트

8편: TQQQ, TMF 평균모멘텀 전략의 비중 계산 Algo 클래스

9편: TQQQ, TMF 가속듀얼모멘텀 백스트

 

☞ 이 글은 순수하게 개인적인 의도로 테스트한 결과이며 내용상 오류가 있을 수도 있습니다.

728x90
반응형