블로그 이미지
shadowchaser
이곳 저곳 이것 저것

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

'Python/03_Data Sources 처리하기 (Google Finance 등)'에 해당되는 글 2

  1. 2017.10.08 2. Quandl을 사용하여 주식정보 가져오기1
  2. 2017.10.08 1. Pandas와 Google API를 이용하여 주식 정보 가져오기2

Quandl에 대해서 공부를 하는 시간을 갖도록 하겠다.

한국에서는 quandl이 별로 유명하지 않다. 몇몇 애널리스트들이나 data scientist들에겐 익숙하긴 한데..
일반 사람들에게는 딱히 유명하지 않다. 
google api나 키움 api나.. 그런 것 몇개만 있으면 충분히 주식 자동 매매를 돌릴 수 있으니까..
헌데 Quandl은 그런 쪽의 perspective 뿐만이 아니라 굉장히 다양한 경제, 주식, 의료, 집값등.. 정말 다양한 perspective를 제공한다.

왜냐면, 하나의 Market이기 때문이라 그렇다.
아 걱정하지 않아도 된다. 내가 얘기하고 싶은 것은 Quandl을 어떻게 사용하느냐에 대해서 안내해주고 싶은 것이지,
무조건 주식 거래 자동화하는 것을 하기 위해서 quandl에 있는 특정 data를 사야한 다거나 하는 것은 아니기 때문이다.

Quandl 사이트 알아보기

일단 quandl site에 들어가보면 대략 어떤 느낌인지 알 것이다.
이 사이트를 이용하려면 우선 가입이 필요하다. 구글 계정등 다양한 계정을 통해 가입을 할 수 있으니 일단 가입을 해보자.

가입후 다시 정신을 차려다 보면 아래와 같이 두가지 메뉴가 있다.
alternative data는 일단 모두 유료니까 Core Financial Data를 들여보도록 하자.


일단 화면으로 들어가면 바로 Free를 클릭하자. 일단 테스트용이니까.... 나중에 데이터가 마음에 든다면, 이것을 통해 뭔가를 진행해도 된다. 


Wiki EOD Stock Prices를 나는 선택했다. 

선택을 하면 바로 다음과 같은 데이터가 뜬다.

그렇다. 모든 주식들에 대한 데이터가 있다.

Quandl을 모든 주식 데이터를 조회할 수 있는 것이다! 

googleapi와 같다고 생각하면 되겠다.


또한 이 사이트는 data를 csv, xls등의 다운로드 타입이라던지 query 타입이라던지, 다양한 방식으로 정보를 제공한다. 짱이다!


아래에 있는 USAGE 화면을 보면, 일단 PYTHON을 클릭해보자. 

내게 고유의 key가 제공이되는데, 내가 갖고 있는 API key를 통해서 작업을 할 수 있다. (특정 작업의 경우 키 없이도 가능함)



이제 진짜로 quandl을 통해 데이터를 가져와보도록 하자.

Quandl을 import를 해보자.

quandl.get은 하나의 함수다. 그 안에 들어있는 IEA/PET_RWTC_D는 세계 유가 지수이다.

심플하게도 그날의 지수를 모두 가져올 수 있다.

엄청 심플하지 않나? 대박이다~


물론 데이터를 통해 matplotlib를 통해 차트로 만들어서 보여줄 수도 있다. 아마 지금까지 내 강의를 봤다면, 문제없이 따라 할 수 있었을것이라 믿는다.. (아닌가.. --;;)


방금 quandl.get을 했을 때는 그냥 data값들만 우르르 내려 왔는데, 이번엔 아예 array로 받아와보자.

그렇다 returns 파라메터에 원하는 속성의 값만 쓰면 바로 array 값으로 원하는 형태로서의 return type을 맞춰줄 수 있다.

아래 보이면 1986, 1, 2, 0, 0이라고 써있는데 이 것은 1986년 1월 2일 이라는 의미이다.


조금 화제를 바꾸어보자.

Quandl을 통해 부동산 정보 조회하기

아까 주식 차트 뿐만 아니라고 했었던 것 기억하는지 모르겠다.

샌프란시스코의 평당렌탈비를 알아보도록 하자.


zillow에서 제공하는 real estate 가격를 추출해보자. 

1억1천만이 넘는 가구에서 발생한 데이터들이니까 믿을 수 있겠지.

아쉽게도 약 1~1개월 반정도 늦은 정보로 업데이트가 된다. 그래도 추이를 보는데는 큰 무리가 없다. 

아래 보이는 바와 같이 2012년을 기점으로 큰 폭으로 상승하고 있다는 사실... 



암튼 위 상단의 내용과 같이 quandl에 대한 code가 ZILLOW/C9_ZRIFAH임을 확인했으니, 이것도 그대로 가져와보자.

오오... 너무 쉽게 뽑힌다.




자 그럼 Quandl을 통해, 애플 주식 회사의 정보를 가져와볼까?

문제 없다.  

음 느끼는게 있는지 모르겠는데, 이전 강좌에서 배웠던, pandas-datareader보다 조금 더 자세한 값들을 제공한다.

사실 모든 컬럼에 대한 내용을 가져오면, query를 가져오는 데 시간이 오래걸리겠지.

그래서 아래와 같이 특정컬럼만 가져올 수도 있다. .1, .2, .3 이런 식으로 선택적으로 조회하기 원하는 column을 선택할 수 있다.


지난 3일 동안 많은 내용을 알아본 것 같다. 



나름대로 알고있었던 사항, 모르고 있었던 사항 테스트 해가면서 상세히 써봤는데, 이해가 쉽게 되려는지 모르겠다.

사실 사람들이 이 사이트 강좌를 얼마나 보는지도 모르겠고...

궁금한 사항 있으면 알려주세요~

posted by shadowchaser

조금씩 우리가 하려던 것을 진행할 때가 된 것 같다.


지금까지 좀 먼 길을 걸어왔다. 


pands와 matplotlib를 통하여 엑셀 파일, csv 파일, 혹은 웹사이트에 있는 데이터를 가져와서 차트로 만들어보기도 했다.


차트를 만들 때 그냥 그래프가 아니라 plot, scatter, histogram 등 다양한 방식의 그래프를 제공했었다.


아, numpy와 pandas의 차이에 대해서 물어보는 사람이 있었다.


numpy수치배열등의 계산을 빠르게 하기 위해 만들어진 패키지이다. 파이썬의 기본 리스트 성능이 느려서이기 때문이다.


반면 pandasnumpy 기반으로 만들어진, 통계와 관련된 기능을 수행하는 패키지이다. 즉 pandas를 잘 다루려면 numpy의 기본을 잘 알고 있어야 한다.

Pandas와 Google API를 이용하여 주식정보 가져오기!

주식정보를 python으로 편하게 가져오는 방법도 여러가지지만,

그 중 가장 편하게 사용할 수 있는 두 가지는 바로 Google API를 사용하는 방법과 Quandl을 사용하는 방법일 것이다.

예전엔 Yahoo Finance API을 많이 쓰기도 했었는데.. 이젠 거의 안쓰이는 듯 하다.


잡설이 길었다.


금일의 목표

특정 시간의 facebook 주식차트를 google API를 통해 가져와서 차트로 만들어보자.


자, 일단 아래와 같이 실행해주자.

pandas_datareader가 설치가 안되었을 수도 있다. 

이럴 땐, pandas-datareader를 설치해주자. (pandas_datareader가 아님)





start, end 를 통해 시간을 설정해주고, web.DataReader 함수를 사용하여 데이터를 가져온 이후, facebook.head()를 입력하면 정상적으로 데이터를 가져온 것을 확인할 수 있다. 


참고로, 각 column에 대한 설명을 하자면

Open: 개장가, High는 고가, Low:저가 Close: 마감가, Volume: 거래량


한국 코스피 정보도 확인할 수 있다.!

그렇다면 나스닥에 있는 정보만 가져올 수 있는것이냐? 라고 물으신다면 절대 아니다. 한국도 된다.

선물 옵션 정보도 가져올 수 있다.

pandas는 주식정보가 아니라 선물 옵션 정보 또한 제공한다. 아래와 같이 call, put들에 대한 정보를 확인할 수 있다. 엄청 편하다.
아까전과 다르게 아래 커맨드 입력이 필요하다.
from pandas_datareader.data import Options


챠트 그리기로 마무리

아래와 같이 matplotlib를 import한뒤 facebook의 시가 종가 그래프를 한 번 차트로 작성해보았다.


충분한 설명이 되었을지 모르겠다.


다음편엔 quandl (http://www.quandl.com)을 통해서 정보 가져 오는 것을 진행해 보도록 하겠다.


진행하다가 궁금하시거나 막히는 부분있으면 언제든지 댓글로 남겨주세요~ 


posted by shadowchaser
prev 1 next