자산배분 데이터는 어디서 구해야 할까

2021. 6. 3. 00:43Quant Trading & Investment/Asset Allocation

자산배분 관련해서 실험하고 싶은 모델이 있어서 열심히 데이터를 찾기 시작했다.

 

1. Yahoo! Finance

처음은 yahoo finance에서 찾았다. Python 크롤러도 존재하고, 예전에 써본적도 있고 해서 여기에 인덱스 데이터를 기웃거리기 시작했다. 이곳의 데이터들은 주식인덱스 빼고는 전부 선물 데이터를 사용해야 한다. 어차피 자산배분은 한달 이상 단위의 리밸런싱을 하고, 애초에 선물로 운용하는 ETF도 있으므로 선물 데이터를 사용하는 것이 크게 문제가 되지는 않는다.

 

1.1 python yfinance

Python 3 지원

https://github.com/ranaroussi/yfinance

 

 

ranaroussi/yfinance

Yahoo! Finance market data downloader (+faster Pandas Datareader) - ranaroussi/yfinance

github.com

python yfinance 패키지는 yahoo finance(finance.yahoo.com) 에 있는 데이터 긁어다 데이터프레임으로 만들어 준다.

 

기본적인 사용법은 이렇다.

yfinance 기본 사용법

Ticker 모듈에 원하는 심볼 넣고 .history() 호출하면 데이터가 받아진다! 와우!

 

1.2 주식 인덱스

주식 인덱스 데이터는 꽤 많다. (https://finance.yahoo.com/world-indices)에 들어가면 찾아볼 수 있다. 별 인덱스가 다 있는것 같다. 대부분이 세계 메이저 인덱스인데 코스피도 들어가 있다! 채권 인덱스가 따로 없는 점은 조금 아쉽기는 하다.

 

1.3 선물지수

yahoo finance에서는 다양한 선물 지수 데이터또한 제공한다. 금, 원자재 선물부터 해서 없는게 없다. 아쉬운 점은 대부분의 데이터가 2000년도부터 존재한다는 점. 20년이면 자산배분 백테스트를 하기엔 그리 넉넉치는 않은 양이다. 우리는 진짜 대공황부터 시작해서 온갖 세계대곰왕을 다 테스트 해봐야 하니까!

1.3 사용하지 않기로 한 이유

yahoo finance는 애초에 데이터 쓰라고 만든 곳이 아니라, 예쁘게 뜬 HTML 보라고 만든 곳이다. 필자는 개별주 데이터를 여기서 받아본 적이 있는데 아주 못쓸 수준이다. 특히 한국 주식은 말이다. 그래서 나는 이곳의 데이터에 딱히 신뢰가 가지는 않는다. 대충대충 편하게 한번 돌리고 마는 용으로 사용할 수는 있어도, 연구용으로는 그닥인 것 같다.

 

2. TRADING ECONOMICS

사실 조금 다양한 무료 데이터 벤더를 소개해 보고자 했는데, 괜찮은 것을 너무 일찍 찾아버려 블로그 소재가 줄어들었다. 절대 글쓰기 귀찮아서 그런 것이 아니니 오해하지는 마시길.

 

2.1 소개

여기는 데이터를 쓰라고 만든 곳이다. yahoo finance가 근본 없다는 말은 아니지만 여기는 근본부터 다르다는 말이다. 그리고 데이터 시퀀스가 말도 안되게 길다. 주식/채권/금 뭐 이런 아주 전통적인 자산으로만 테스트 해보려면 진짜 1930년대 세계대공황때부터 백테스트가 가능하다! WoW! 심지어 제공하는 데이터의 범위 또한 아주 넓다. 원자재 있을거 다 있고... 주식 인덱스는 없어도 될 것 까지 있고... 채권 인덱스 또한 없어도 될 것까지 있다. 아주 멋있는 사이트다. (tradingeconomics.com)

 

물론 옥의 티를 잡자면 채권 데이터가 수익률로만 존재한다. 이거 역산해서 채권 인덱스로 바꾸는 방법이 있는데 새로운 글로 포스팅 할거다.

100년간의 자본주의 기록, 아름답다
처음 보는 인덱스가 많다.

 

2.2 공식 API

심지어 공식 API도 존재하는데다 무료다. Python API는 pip으로 다운받을 수 있다.

기본적으로 무료긴 한데 돈 내면 당연히 기능이 더 많다.

2.2.1 API 사용법

사실 정말 방대한 범위(주식, 인덱스, 매크로, 환율 등등)의 데이터를 커버하다 보니 엄청 뭐가 많다. 근데 자산배분용 데이터 받으려고 하면 딱 중요한 피쳐는 두가지다. 

 

먼저 어떤 마켓이 있는지는 다음과 같이 알아낼 수 있다. marketsField에 다른 값을 넣으면 원자재, 채권 등도 조회 가능하다

 

과거 데이터 받는건 다음과 같이 한다. 심볼 여러개도 한번에 받을 수 있나보다.

 

2.2.2 결론

이거 진짜 괜찮다. 그런데 개인이 쓰기에는 조금 비쌀 수도 있을거 같다.

 

3. FRED

세상의 모든 데이터가 다 있다. API는 없지만 URL 파싱해서 적절히 받기 좋을 거 같다. https://fred.stlouisfed.org 여기 가면 뭔가 받을수 있는게 엄청나게 많다. 웬만한건 다 여기서 100% 무료로 받을 수 있을 것 같다.

 

검색창은 대충 이렇게 생겼다

 

 

저기다 뭔가를 검색하고 이렇게 필터링 걸어가며 찾을 수 있다.

 

 

클릭해보면 이런 화면이 나오는데 우측상단 Download 누르면 받아질 것이다.

 

 

Disclaimer: 필자는 trading economics, yfinance 관련자 아님, FRED는 관련자 더더욱 아님