머신러닝과 기술적 분석

60/40 포트폴리오 python 백테스트 (1) : SPY/TLT 본문

백테스트

60/40 포트폴리오 python 백테스트 (1) : SPY/TLT

BetterToday 2020. 8. 1. 16:37
728x90

자산배분의 가장 기본적인 포트폴리오는 주식 60%, 채권에 40%를 배분하는 60/40 포트폴리오다. portfoliovisualizer.com 이라는 좋은 백테스트 사이트가 있지만, free로 이용하기에는 몇가지 제한이 있어서 python으로 자산배분 백테스트를 구현해 보았다.

테스트 조건

  • 주식 : S&P 500을 추종하는 SPY etf 데이터를 사용
  • 채권 : TLT etf 데이터를 사용
  • 자산배분 : 주식(60%), 채권(40%)
  • 리밸런싱 주기 : 60거래일(약3달) 마다 리밸런싱
  • 백테스트 기간 : 2002-07-30~2020-07-31

결과

연평균 수익률(CAGR), 최대낙폭(MDD)

[Portfolio]::2002-07-30~2020-07-31::Final Valance: 506501333, CAGR: 9.5%, MDD: -30.8%  
[SPY]::2002-07-30~2020-07-31::Final Valance: 508317881, CAGR: 9.5%, MDD: -55.2%  
[TLT]::2002-07-30~2020-07-3160::Final Valance: 396696496, CAGR: 8.0%, MDD: -26.6%
  • 자산배분한 것과 SPY에 올인한것이 연평균 수익률(CAGR)은 9.5%로 비슷하게 나왔다.
  • 그러나 MDD는 -55% -> -30%로 대폭 축소되었다

상관계수

  • 월단위 변화량으로 상관계수도 뽑아보았다.

          SPY       TLT
SPY  1.000000 -0.214081
TLT -0.214081  1.000000

소스코드

https://github.com/penny4860/backtest/blob/master/scripts/bt_60_40.py

728x90
반응형
Comments