배경
지난번 포스팅에서는 CNN 사이트에서 공개하는 Fear-and-Greed Index의 과거 데이터를 크롤링하여 CSV 파일로 저장하는 방법에 대해 설명해 보았습니다.
이 지수가 미국 주식시장의 심리 상태를 나타내는 지표라면, 이를 활용해서 투자한 성과는 과연 어떨까요?🙄
이번 포스팅에서는 CNN-Fear-and-Greed index를 이용한 간단한 ETF 투자전략을 만들고, Google Spreadsheet 에서 백테스팅 시뮬레이션을 해보도록 하겠습니다~
모든 과정과 결과물이 포함된 Google Spreadsheet를 하단에 공유하니, 보시면서 포스팅 내용을 따라오시면 좋을것 같네요~
사전작업
SPY ETF 주가 데이터 불러오기
S&P 500 지수를 추종하는 ETF는 SPY(SPDR S&P 500 Trust ETF)로 선정하고, 과거 일간 가격데이터를 불러옵니다. googlefinance() 함수를 사용하면 원하는 기간의 데이터를 Google Spreadsheet에서 불러올 수 있으니 공식문서를 참고해 주시고, 저의 경우에는 아래와 같은 함수로 1000일치의 일간 시가("open")와 종가("close") 데이터를 로드하였습니다.
=GoogleFinance("NYSEARCA:SPY", "open", TODAY()-1000, TODAY(),"daily")
CNN-Fead-and-Greed index 과거 데이터 불러오기
Fear-and-Greed 인덱스의 경우 기존 제 포스팅을 통해 얻은 CSV 파일을 Spreadsheet에서 불러와서("파일" > "가져오기") 사용하시면 되는데요, 저의 경우 "index_data_simulation" 시트내 "A"~"C" 열에 데이터를 로딩하였습니다.
("2021-02-01" 이후의 데이타만 유효한 것 같아서 2021-02-01 ~ 2023-02-09까지 약 2년간의 데이터를 사용하였습니다.)
트레이딩 전략 세우기
다양한 가상의 트레이딩 전략을 세우는게 가능하지만, 저는 다음과 같이 현실적이면서 단순한 로직을 적용해보았습니다.
- 전일자 Fear-and-Greed index의 Rating값을 기반으로 금일자 SPY ETF의 투자 비중을 조정함.(투자비중을 제외한 부분은 연 2.00%의 현금수익률로 운용한다고 가정)
- 투자 비중 조정시 ETF 시가("open")로 매매한다고 가정하고, 매매비용은 매매금액의 0.25%로 가정함
- Fear-and-Greed index의 Rating값에 따른 SPY ETF의 비중을 하단과 같음. 기본 철학은 "Fear" 심리가 강할수록 SPY 비중을 확대하고 "Greed" 심리가 강할수록 SPY 비중을 축소하는 전략임.
Rating | Lower | Upper | Position |
---|---|---|---|
Extreme Fear | 0 | 25 | 100% |
Fear | 25 | 45 | 70% |
Neutral | 45 | 55 | 50% |
Greed | 55 | 75 | 30% |
Extreme Greed | 75 | 100 | 0% |
위 전략을 적용한 경우 SPY ETF의 포트폴리오 비중 변화는 하단과 같습니다.
백테스팅 결과
트레이딩 전략 실행에 따른 가상 포트폴리오의 일간성과("daily_ret_strategy"열 참고)를 계산한 후 데이터 기간(2021-02-01 ~ 2023-02-09) 동안의 누적성과를 SPY ETF(benchmark)의 누적성과와 비교해 보았습니다.
SPY ETF가 추세 상승하였던 2021-02-01 ~ 2021년말 기간동안은 유사한 성과를 보였지만, 그 이후 기간에서 누적 +20%를 상회하는 초과 성과를 기록하였네요~!
누적 성과를 Sharp Ratio, Maximum Drawdown 등의 지표들로 비교해 보는 것도 의미있을 것 같으니 Google Spreadsheet에서 개별적으로 한번 연습해 보아도 좋을 것 같습니다~
정리
CNN-Fear-and-Greedy index를 활용하여 전체적인 포트폴리오의 위험자산 비중을 조절한다면, 장기적으로 시장을 Outperform 하는 것도 어렵지 않을 것 같습니다😎
저의 경우에는 Google Spreadsheet로 시뮬레이션 작업을 진행하였지만, Python 코드 등을 통한 백테스팅도 가능하니 참고해주시고, 워렌버핏의 명언과 함께 포스팅을 마치도록 하겠습니다~!
“Be Fearful When Others Are Greedy and Greedy When Others Are Fearful” - Warren Buffett