본문 바로가기
파린이의 퀀트 투자

퀀트 투자_주식: S&P500과 ETS model(2)

by 꿈꾸는 피터팬 2024. 4. 9.
반응형

해당 블로그에서 다루는 '퀀트 투자'는 일반적으로 알려진 퀀트 투자와는 사뭇 다를 수 있다. 일반적으로는 퀀트 투자는 주식만 이용한 포트폴리오를 전제로 하고 재무제표와 여러 재무지표들에 대한 분석을 통하여 계량적으로 투자를 하는 것을 의미한다. 이에 블로그 독자들은 해당 부분을 참고하여 읽기를 권장한다.


 

  시장 포트폴리오를 구성하는 자산들을 분석하기 위해서 자산들이 속한 시장들을 먼저 분류하여 파악하였다. 시장에 나와있는 모든 투자 가능한 자산(Every type of Asset available in the Investment Universe)에서 '시장 종류(type)'를 크게 주식(Stock), 채권(Bond), 부동산(Real Estate), 대체 투자(Alternative Investments), 이렇게 네 가지로 정의하였다. 이때, 시장 포트폴리오의 가정으로 위 네 가지 시장이 전체 투자 시장 파이를 차지하고 있다고 전제하였으며 그 외의 투자자산은 고려대상에서 제외하였다. 이제 시장 포트폴리오를 도출해내기 위해서는 각 시장의 기대수익률, 위험(표준편차), 그리고 크기를 산출한 뒤 각 시장의 크기 기준 비율로 포트폴리오를 구성하여야 한다.

  먼저 주식 시장의 규모를 도출하기 위해서 고려하여야 할 사항도 몇 가지가 있는데 범위를 국내로 한정할 건지 해외 주식까지 포함할 것인지 결정하는 것이 제일 우선이다. 모든 해외 주식을 고려하는 것은 현실적으로는 불가능할 뿐만 아니라 그만큼의 효익도 나오지 않을 것으로 판단된다. 따라서 이번 시도에서는 미국 주식 시장까지만 포함한다. 그 중에서도 우리가 중점적으로 고려할 것은 국내 투자에 대한 포트폴리오이므로 미국 주식 시장 역시 전체를 다 고려할 것이 아니라 미국 내 시가총액 기준 상위 500개의 기업에 대한 지표인 S&P500을 기준으로 고려하는 것이 효과적일 것으로 보인다. (이후 S&P500이 아닌 미국 주식 시장 전체에 대한 지표들로 다시 셋팅하여 백테스트를 시행하여 비교하는 작업이 필요할 것으로 보인다.)

 

  기대수익률이란 말 그대로 '투자 자산에서 일반적으로 기대되는 수익률'을 의미하는데 일반적으로 '기대값', 즉 평균을 이용한다. 다만, 과연 과거 평균수익률을 기대수익률로 전제하는 것이 최선인지 확인하기 위하여 예측 모델을 사용하여 예상수익률을 도출하여 보았다. 사용할 수 있는 예측 모델은 여러가지가 있을 수 있겠으나 애초에 본 블로그의 목적은 퀀트 투자에 있으므로 예측 모델 역시 계량적인 지표들만 이용하고자 한다. 필자는 주식 시장의 기대수익률을 계산하기 위한 계량적 예측 모델 중 시계열 회귀 분석을 채택하였다. 시계열 회귀 분석도 단순 이동평균법보다는 최근 데이터에 더 많은 자료를 주는 지수평활화법(Exponential Smoothing)을 사용하였고 주식 시장에는 추세(Trend)와 계절성(Seasonality)이 존재할 것이라고 판단하여 그 중에서도 ETS기법(Holt-Winters Exponential Smoothing; Error-Trend-Seasonality 기법)을 사용하였다.

 

  이를 바탕으로 먼저 S&P500 데이터를 이용하여 예측 모델을 간단하게 만들어보고자 하였다. 다만 이때 세 가지 문제가 발생하였는데 첫번째는 공휴일에는 S&P500의 데이터가 부재한다는 사실이었고 두번째는 산점도(Scatter Plot) 상에서도 계절성이 명확히 확인된 것은 아니라는 점이었다. 첫번째 문제는 공휴일에 가상의 임시 데이터를 공휴일 앞뒤로 4일 간, 8일 동안 데이터의 평균값을 배정해주며 해결하였다. 그러나 두번째 문제는 온전히 해결하지 못하였는데 계절성이 주 단위로 있다고, 즉 요일 별로 계절성이 있다고 가정한 경우와 연 단위로 있다고 가정한 경우로 나누어 각각의 프로그램을 실행하여 결과치를 비교하였다.

 

  이제 프로그래밍을 본격적으로 시작하기 전에 익숙한 엑셀 프로그램으로 지수 평활화 기법의 예측 모델을 만들어 값을 먼저 확인하도록 하자. 평활화 지수인 알파(α; Error 지수), 베타(β; Trend 지수), 감마(γ; Seasonality 지수) 값은 엑셀 기능 중 해찾기 기능으로 지정하였고 이때 목표는 MAD값 최소화(Minimization of Mean Absolute Deviation)로 설정하였다. 또한 연 단위 계절성을 상정하였을 때는 데이터 로드를 간소화하기 위하여 주별 평균값으로 예측을 진행하였다.

 

  다음은 주 단위로 계절성이 있다고 가정하였을 때 결과값이다. (기간은 Jan 06, 2020 - March 25, 2024로 진행하였고 지수 값은 각각 알파(α = 0.93), 베타(β = 0.01), 감마(γ = 0.20)로 도출되었다. MAD값은 35.62이다. 그래프의 경우 데이터가 너무 많아 November 03, 2023 ~ March 26, 2024의 기간만 나타내었다.)

  다음은 연 단위로 계절성이 있다고 가정하였을 때 결과값이다. (기간은 동일하게 Jan 06, 2020 - March 25, 2024로 진행하였고 지수 값은 각각 알파(α = 0.92),베타(β = 0), 감마(γ = 1)로 도출되었다. MAD값은 120.76이다. 베타 값이 0으로 나온 것이 상당히 흥미로운데 첫 Trend 값을 계속 사용하는 것이 Level 값의 변화를 반영하는 것보다 예측 오차를 줄이는 것에 더 효과적이었다는 사실을 알 수 있다. 참고로 첫 Trend값은 2020년 마지막 주 평균값인 3,698.19에서 2020년 첫주차 평균값인 3,255.31을 빼고 전체 주수인 51로 나누어 계산하였다.)

 

반응형