자산배분

TQQQ, TMF 고정 비중 백테스트

unius 2022. 12. 13. 15:42
728x90
반응형

나는 지난 4월부터 라오어님의 미국주식 무한매수법 이라는 서적을 읽고 TQQQ 무한매수를 시작했었다. 무한매수법 한 사이클이 40회로 구성되지만 난 한사이클도 끝내지 못하고 현재 원금 대비 -40% 수익률을 찍고 물려있는 상태이다. 중간중간 많이 하락했다 싶은 구간에서 계속 분할 매수 했지만 큰 효과를 보지는 못했고 이제 8회차 정도의 원금이 남아있는 상태이다. 

 

최근 한달 정도 레버리지 투자에 대해 다양한 방법을 찾아보고 학습하는 시간을 갖고 있는 중이다. 많은 방법들 중에서 시선이 가는 글을 읽었다. 주식과 채권을 60:40으로 혼합하여 투자하는 전통적인 고정비중 방식과 유사하지만 특이한 점이 리스크패리티 관점에서 40:60으로 혼합하고 레버리지를 사용하는 것이다. 그것도 주식과 채권 모두 3배 레버리지를 사용한다는 점에서 눈길을 끌기에 충분했다.

 

HEDGEFUNDIE's excellent adventure [risk parity strategy using 3x leveraged ETFs] - Bogleheads.org

Discuss all general (i.e. non-personal) investing questions and issues, investing news, and theory. Topic Author HEDGEFUNDIE Posts: 4801 Joined: Sun Oct 22, 2017 2:06 pm Post by HEDGEFUNDIE » Tue Feb 05, 2019 2:56 pm [This topic has been continued in a ne

www.bogleheads.org

마침 최근들어 파이썬을 이용하여 자산배분 백테스트를 시험해보고 있는 중이여서 이왕이면 위 방법에 따른 레버리지 ETF를 활용한 자산배분 백테스트를 해보기로 마음 먹고 지난 일주일간 다양한 백테스트를 해보았고 그 결과를 하나씩 올려보려 한다.

 

위 보글헤드에 올라온 원문은 UPRO 와 TMF를 4:6으로 혼합한 전략을 테스트를 하였으나 난 앞으로 TQQQ와 TMF를 가지고 백테스트를 수행해 볼 것이다. 먼저 상관계수를 보면 아래와 같다.

우선, yahoo finance에서 데이터를 읽어온다. 2010-2-10 데이터부터 현재까지 약 22년간의 데이터를 이용할 수가 있다. 

tickers = ['TQQQ','TMF']
data = yf.download(tickers, end='2022-12-10')['Adj Close']
data = data[tickers]
for c in data.columns:
    print(c, data[c].first_valid_index())
assets = data.dropna().copy()
start_day = assets.index.min()

두 자산간의 상관관계를 heatmap로 그린다.

fig, ax = plt.subplots(figsize=(3,3))

# 히트맵을 그린다
sns.heatmap(corr, 
            cmap = 'RdYlBu_r', 
            annot = True,
            annot_kws = {'size':10},
            linewidths=.5,
            cbar_kws={"shrink": .5},
            vmin = -1,vmax = 1)
plt.show()

 TQQQ와 TMF의 상관계수는 0.52 이다. 자산간 상관계수가 낮을수록 리스크 완화 효가가 크다고 할 수 있다. 이론적으로는 상관계수 1은 리스크 완화 효가가 없다고 할 수 있으며 상관계수 -1은 모든 리스크를 제거한다고 할 수 있다. 상관계수 0은 상당한 리스크 완화 효과가 있으며 0.5는 중간 정도의 리스크 완화 효과를 갖는다고 한다. 즉, TQQQ와 TMF의 상관계수는 어느 정도의 리스크 완화 효과를 갖는다고 볼 수 있다. 하지만 아래 그래프에서도 확인할 수 있듯이 2021년 하반기부터 발생하고 있는 인플레이션 위기 상황에서는 강한 양의 상관관계를 보이고 있기에 최근 일년 넘게 지속되고 있는 역대급 하락장에서는 리스크 헷지 역할을 못하고 있으므로 이에 대한 고려는 필요해보인다.

(1Year)Rolling Correlation

먼저 TQQQ를 단순 매입 후 보유했을 때의 수익률을 알아보자.

# 매수&보유 백테스트
def long_only_ew(assets, start_day, name='long_only_ew'):
    s = bt.Strategy(name, [bt.algos.RunOnce(),
                           bt.algos.SelectAll(),
                           bt.algos.WeighEqually(),
                           bt.algos.Rebalance()])
    return bt.Backtest(s, assets, initial_capital=100000000.0)
# 벤치마크 수익율
bm = long_only_ew(assets[tickers[0]].to_frame(), start_day, 'benchmark({})'.format(tickers[0]))
bm_report = bt.run(bm)
bm_report.plot(figsize=(20,7), grid=True, title="Benchmark")
print(bm_report.prices[start_day:].calc_stats().display())

나는 수익률 차트를 볼 때 주로 로그스케일 차트를 본다. 이유는 우리가 일반적으로 보는 리니어 스케일 차트는 시각적 왜곡이 있기 때문이다. 리니어차트 vs 로그차트 글을 참고해 보자

TQQQ 로그스케일 수익률 차트

왼쪽의 성과분석 지표를 보면 단순 매입 후 보유하는 long only 전략으로도 20여년간 4,700%가 넘는 수익을 올릴 수 있다. 하지만 작년말부터 시작된 역대급 하락장에 최대 손실율은 무려 -80%에 이른다. 이런 하락장을 버티며 은퇴할 때까지 보유하기란 인간이 아닌 신의 경지에 가깝다. 설사 20년을 버텼는데 지금이 은퇴할 시기라면 얼마나 피눈물을 흘리겠는가? 아마도 불과 일년전까지 꿈꾸던 은퇴생활이 날아가 버리게 되는 것이다.

결국 우리가 자산배분 투자를 하는? 혹은 해야하는? 이유는 이와같은 최대 손실율을 낮추고 시장 수익률 플러스 알파를 추구하면서 안정적인 운용으로 지속 가능한 투자를 하기를 하기 위함이다.

 

이제 TMF와 일정 비율을 혼합한 전략의 결과를 살펴본다. TQQQ vs TMF의 비중을 9:1 ~ 1:9 로 바꿔가며 백테스트를 수행하였다

def FixedWeight_BT(asset, start_day, weights, run_on_end_of_period=False, lag=1, name='Fixed Weighted'):
    s = bt.Strategy(name, [bt.algos.RunAfterDate(start_day),
                           bt.algos.RunQuarterly(run_on_first_date=False, run_on_end_of_period=run_on_end_of_period, run_on_last_date=False),
                           bt.algos.SelectAll(),
                           bt.algos.WeighSpecified(**weights),
                           bt.algos.Rebalance()])
    return bt.Backtest(s, assets, initial_capital=100000000.0)

init=9
fixedWeights = {}
for i in range(0,9):
    weights = {tickers[0]:init/10,tickers[1]:(10-init)/10}
    fixedWeights[i] = FixedWeight_BT(assets[tickers], start_day, weights, False, lag, name='FW_{}:{}'.format(init,(10-init)))
    init = init - 1
fw_report = bt.run(*fixedWeights.values())

fw_report.prices[start_day:].rebase(1).plot(figsize=(20,7), grid=True, logy=True, title="Fixed Weight")
fw_report.prices[start_day:].calc_stats().display()

위 성과지표를 보면 어떤 비율로 투자해도 MDD가 -77% ~ -83% 에 다다른다. 원문에서 글쓴이는 1987 ~ 2018년까지 더 오랜기간을 UPRO와 TMF로 백테스트를 했는데도 MDD는 -50%가 되지 않는데 말이다. 하지만 연도별 수익률과 기간별 DD(drawdown)를 살펴보면 그 이유를 알 수가 있다.

fw_report.backtests['FW_4:6'].stats.drawdown_details.sort_values('drawdown').head(20)
fw_report.backtests['FW_4:6'].stats.yearly_returns

TQQQ:TMF의 4:6 고정비율 백테스트의 기간별 DD를 높은 순서로 표시한 것과 연도별 수익률을 보면 최근 일년의 하락이 현재의 전체 누적 수익률에 가장 크게 영향을 미친 것을 알 수 있다. 올해를 제외하면 연도별 수익률은 2018년 -5.8%였던 때를 제외하고 모두 플러스 였으며 MDD 또한 절반 넘게 줄어든 -42%를 기록하고 있음을 확인할 수가 있다. 코로나 시기 마저 제외한다면 20여년 간의 연평균 수익률은 24.58%의 높은 수익률을 기록하면서 MDD는 -31.37% 밖에 되지 않는다.

 

지금까지 TQQQ와 TMF의 고정 비중 전략을 살펴보았다. 두 자산을 혼합한 레버리지 투자전략은 나에게 나름 꽤나 호기심이 생기는 전략임에 틀림없다. 결국은 2021년 하반기 이후 인플레이션 위기를 헷지할 수 있는 자산군이나 마켓타이밍 전략을 다시 검토해 볼 필요가 있음을 확인했다. 다음 글에서는 TQQQ와 TMF의 모멘텀에 따른 투자전략을 백테스트한 결과를 작성할 예정이다.

 

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
반응형

'자산배분' 카테고리의 다른 글

TQQQ, TMF 절대 모멘텀 백테스트(1)  (3) 2022.12.15
TQQQ, TMF 상대 모멘텀 백테스트  (1) 2022.12.14
고정 비중 포트폴리오  (10) 2022.11.07
고정비중 포트폴리오 백테스트  (19) 2022.11.03
자산배분이 필요하다  (22) 2022.10.31