주식투자

[데이터 분석 1] 주가 데이터를 불러와서 그래프로 그려보자 (구글 시트 편)

오렌지사과키위 2025. 1. 5. 14:42

주식, ETF, 환율과 같은 여러 투자 자산의 과거 가격 데이터를 얻어, 자산 배분 또는 투자 결정에 도움을 줄 수 있는 통계량을 추출하고, 그래프로 표현하는 방법을 연재합니다. 자산 배분에 참고할 수 있는 평균-분산(Mean-Variance) 그래프를 그려보는 정도까지 계획하고 있습니다. 무료로 사용할 수 있는 구글 시트로 설명하지만, 마이크로소프트 엑셀로도 같은 결과를 얻을 수 있습니다.

개인적으로는 파이썬(Python) 프로그래밍 언어를 이용합니다. 이 연재에서 구글 시트로 설명하는 이유는 대개의 개인 투자자는 파이썬이나 R과 같은 데이터 처리에 효율적인 프로그래밍 언어보다는 구글 시트나 마이크로소프트 엑셀에 더 익숙하기 때문입니다. 아마 저보다 잘 다루시는 분도 많을 것입니다. 차후 연재가 어느 정도 완료되면, 파이썬으로 데이터를 처리하는 방법도 소개할 계획입니다.

데이터를 처리하고 분석할 때에는 데이터 그 자체에 과한 의미를 부여하지 않아야 합니다. 대개의 데이터는 과거 특정 시점의 사실을 나열한 것일 뿐입니다. 데이터를 가공하여 어떤 결과를 얻었다는 것은 그 데이터를 다르게 표현한 것에 불과합니다. 가공한 결과는 미래에 대한 예측이 아닙니다. 밀가루에 각종 부재료를 첨가하여 굽거나 튀겨 과자를 만들면 원재료보다 맛있어집니다. 하지만 열량이 더 많아지는 것은 아닙니다. 투자자는 본인의 미래 예측을 보조하기 위해 데이터를 사용해야 합니다.

투자에서 데이터가 무엇인지, 특정 데이터 분석 결과와 표현이 어떤 의미를 가지는지에 대해서는 제 책 <왜 위험한 주식에 투자하라는 걸까? - 장기 투자와 분산 투자에 대한 통계학적 시각>을 참고하면 도움이 될 수 있습니다. 제 책이 아니더라도 비슷한 종류의 책이 있으면, 학창 시절에 시험 준비를 하듯 진지하게 여러 번 읽어보길 권합니다. 투자를 포함한 모든 결정이 그렇듯, 기본 철학과 방향이 잘못 설정되면, 기대와 상당히 다른 결과를 얻을 수 있기 때문입니다.

구글 시트는 무료로 사용 가능한 스프레드시트 프로그램입니다. 이 프로그램의 가장 큰 장점은 클라우드에 데이터가 자동 저장되고, 휴대폰, 노트북, PC 등 다양한 환경에서 손쉽게 접근할 수 있다는 점입니다. 작업물을 공유하거나 공동 작업자와의 협업도 편리합니다.

이 연재는 처음부터 순서대로 차근차근 보는 게 좋습니다. 앞의 연재에서 나온 결과를 이용하여 설명하며, 경우에 따라서는 앞선 결과의 문제점을 소개하고 보완하는 방식으로 진행되기 때문입니다. 작업에 사용한 구글 시트는 의도적으로 공유하지 않습니다. 이런 작업은 직접 해보고 약간이라도 시행착오를 격지 않으면, 숙달되기 어렵기 때문입니다.

참고: 이 연재는 책 <왜 위험한 주식에 투자하라는 걸까? - 장기 투자와 분산 투자에 대한 통계학적 시각>에서 소개한 주요 분석 방법을 구글 시트로 적용해 보는 부록의 성격을 가집니다. 책의 초고에 해당되는 블로그 글이나 읽기 편하게 정리하고 편집한 책을 한두 번 차근차근 읽어 분석 방법의 의미를 이해한 후에 보면 더욱 좋습니다. 연재 그 자체만으로도 따라 하기에 별 무리가 없는 수준으로 설명하려고 하지만, 세부적인 설명이 일부 생략되어 있을 수 있고, 분석 방법의 의의를 이해한 상태에서 보면 좀 더 도움이 될 수 있기 때문입니다.

주의: 이 글은 특정 상품 또는 특정 전략에 대한 추천의 의도가 없습니다. 이 글에서 제시하는 수치는 과거에 그랬다는 기록이지, 앞으로도 그럴 거라는 예상이 아닙니다. 분석 대상, 기간, 방법에 따라 전혀 다른 결과가 나올 수 있습니다. 데이터 수집, 가공, 해석 단계에서 의도하지 않은 오류가 있을 수 있습니다. 일부 설명은 편의상 현재형으로 기술하지만, 데이터 분석에 대한 설명은 모두 과거형으로 이해해야 합니다.

구글 시트에서 현재 주가 불러오기

다음은 구글 시트에서 미국 S&P 500 지수를 추종하는 SPY의 가격을 불러온 결과입니다. A5 셀에 =GOOGLEFINANCE("SPY")라고 입력하면, SPY의 최근 가격이 해당 셀에 나타납니다.

SPY의 최근 가격을 불러오기
SPY의 최근 가격을 불러오기

2025년 1월 5일 일요일에 작성한 것이기에, 미국 날짜로 2025년 1월 3일 SPY의 종가 591.95달러가 표시되었습니다. 장중에는 이 가격이 주기적으로 바뀝니다. 미국 주식의 경우 변경되는 시점의 데이터는 실시간에 가깝지만, 한국의 경우 20분 지연된 데이터가 표시됩니다.

GOOGLEFINANCE() 함수는 다음과 같은 인자를 설정할 수 있습니다. []로 둘러싼 인자는 선택 사항입니다. 

  • 시세_표시(ticker): 종목 코드입니다.
  • [속성(attribute)]: 무엇을 표시할지 지정합니다.
  • [start_date]: 시작일입니다. 
  • [end_date]: 종료일입니다.
  • [간격(interval)]: 일단위 또는 주단위로 지정할 수 있습니다.

종목 코드는 여러 거래소에서 중복으로 사용될 수 있습니다. SPY보다는 거래소 명칭을 붙여 NYSEARCA:SPY와 같이 지정하면 혼동을 피할 수 있습니다. 거래소 명칭은 구글 파이낸스에서 해당 종목을 검색하면 알 수 있습니다. 다음 스크린샷에서 Google 금융 아래에 있는 SPY 오른쪽에 붙어있는 NYSEARCA가 거래소 명칭입니다

구글 파이낸스에서 SPY 거래소 명칭 찾기
구글 파이낸스에서 SPY 거래소 명칭 찾기

구글 시트에서 과거 주가 불러오기

이 연재에서는 특정 종목의 현재 가격보다는 과거 경향을 살펴보는 것이 목적이므로 주어진 기간 동안의 과거 데이터를 이용하는 방법 위주로 설명합니다.

다음과 같이 TICKER, START_DATE, END_DATE를 지정하고, 이를 변수로 =GOOGLEFINANCE(B1, "all", B2, B3)와 같이 입력하면 지정한 기간 동안의 주가 목록을 얻을 수 있습니다.

2024년도 SPY의 주가
2024년도 SPY의 주가

6개 항목이 나타납니다. 날짜(Date), 시가(Open), 고가(High), 저가(Low), 종가(Close), 거래량(Volume)이 나옵니다. 이 중에서 날짜는 시각이 필요 없으니 연월일만, 가격은 소수점 2자리까지, 거래량은 콤마(,)를 사용하고, 항목 이름을 굵게 변경하면 다음과 같이 됩니다.

서식을 조정한 2024년도 SPY의 주가
서식을 조정한 2024년도 SPY의 주가

과거 주가를 이용한 그래프 그리기

종가(Close)를 기준으로 그래프를 그리면, 다음과 같이 SPY 주가 흐름 그래프를 얻을 수 있습니다. 시트의 탭 이름은 데이터를 가지고 있는 Data와 그래프를 표시한 Chart로 나누었습니다.

SPY의 2024년 종가 흐름
SPY의 2024년 종가 흐름

시작 날짜를 조정해서 1990년 1월 1일로 맞추면, SPY의 상장일인 1993년 1월 22일에 가까운 1993년 1월 29일자부터 데이터가 나오고, 그래프도 이에 맞춰 자동 조정됩니다.

1993년 1월 29일부터 본 SPY 종가 흐름

그래프에서는 첫 날짜 기준으로 1년 정도치 밖에 표시되지 않고 있습니다. Data 시트에서 행을 9,999개 또는 그 이상으로 늘이고, 그래프의 데이터 범위를 Data!A5:F9999로 수정하면 됩니다.

그래프에 제목을 넣고, 선이 조금 부드럽게 보이도록 부드러운 선 차트로 변경하고, 세로축을 로그 스케일(log scale)로, 숫자 형식은 소수점을 없애기 위해 없음으로 선택하면 다음과 같이 됩니다.

만들어진 차트는 다운로드가 가능합니다. PNG 파일로 받을 수도 있고, 고해상도 이미지가 필요한 경우에는 SVG 벡터 형식으로 받아 적절히 크기로 바꾸면 됩니다. 참고: 개인적으로 구글 시트를 데이터 분석에 사용하지 않는 이유가 여럿 있습니다. 구글 시트는 기본적인 그래프 생성에는 큰 제약이 없지만, 세부 설정 조정에는 한계가 있기 때문입니다. 

PNG로 변환한 SPY의 주가 흐름
PNG로 변환한 SPY의 주가 흐름

정리하며

구글 시트를 이용하여 특정 종목의 주가 데이터를 가져오고, 종가를 이용하여 그래프로 나타내는 기초적인 방법을 살펴보았습니다.

이어지는 글: [데이터 분석 2] TR 데이터를 받아 그래프로 그려보자 (구글 시트 편) 

목록: 자산 배분 분석 방법과 사례 글 모음 [목록] (순서대로 차근차근 읽기를 권합니다)

함께 읽으면 좋은 글:

 

도움이 되었다면, 이 글을 친구와 공유하는 건 어떻까요?

facebook twitter kakaoTalk naver band