파이썬 금융데이터 수집, quantmod이용하기

목차

    2019. 5. 15. 07:08

    금융 데이터는 돈과 관련되어 있기 때문에 많은 사람들이 관심을 가지고 있다. 금융사 뿐만 아니라 일반인들도 다양한 알고리즘과 데이터 분석을 시도하고 있다. 최근에는 퀀트 투자가 각광을 받으면서 파이썬으로 금융 데이터 분석을 많이 시도한다. 금융 데이터를 분석하는데 있어서 가장 기초적이고 힘든 일이 데이터 수집이다.

    오늘은 파이썬에서 금융데이터 수집을 쉽게 도와주는 quantmod라는 패키지에 대해서 알아보도록 하겠다.


    파이썬_금융데이터



    이전 포스팅에서 R의 quantmod 라이브러리에 대해서 알아보았다. 코드 한줄로 필요한 금융 데이터를 가져올 수 있어서 굉장히 유용한 라이브러리이다. 자세한 내용이 궁금하다면 아래 포스팅을 참조해보자.
    ( 참조: R과 QUANT투자 - quantmod로 금융데이터 수집하기 )


    파이썬에도 동일한 quantmod 패키지가 있다. 비록 데이터는 pandas-datareader모듈을 이용해서 수집하지만, 코드는 훨씬 간단한 듯 하다. 


    quantmod패키지를 설치하기 위해서는 pip install quantmod를 실행하면 되는데, 최신 버전의 파이썬에서는 위의 방법으로 설치가 되지 않는다. 업데이트가 아직 이루어지지 않는 듯 하다. github페이지에서 패키지를 다운받고, python setup.py install을 실행해서 설치해야 한다.github주소는 아래와 같다.
    ( 참조: quantmod패키지 github주소 )


    패키지를 설치하고 모듈을 불러오면 에러가 발생한다. 

     ModuleNotFoundError: No module named 'quantmod.theming'


    여기저기 찾아보니 setup.py파일에 에러가 있다. setup.py코드를 아래와 같이 수정하고 설치하니, 정상적으로 모듈이 정상적으로 로드된다.

    1) "packages=['quantmod'],"를 "packages = find_packages()"로 변경

    2) "from setuptools import setup" 뒤에 find_packages 추가하여 from setuptools import setup, find_packages로 변경


    금융데이터를_위한_파이썬


    사용 방법은 R에서 사용하는 것과 약간 비슷한 듯하면서 다르다. R에서 불러왔던 금융데이터들을 동일하게 하나씩 알아보도록 하자.


    1) 주가데이터 불러오기

    주가데이터는 야후를 통해서 불러올 수 있으며, 판다스 데이터프레임으로도 가능하다. 주가 종목코드 검색방법이 궁금하다면, 이전에 다루었으니 아래 포스팅을 참조해보자.
    ( 참조: R과 QUANT투자 - quantmod로 금융데이터 수집하기 )

    # quantmod data타입

    df = quantmod.get_symbol(ticker="096770.KS", src = "yahoo", start= "2017-01-01", end = "2017-05-01")


    # 판다스 데이터프레임

    df = quantmod.get_symbol(ticker="096770.KS", src = "yahoo", start= "2017-01-01", end = "2017-05-01", to_frame=True)


    2) 환율데이터 불러오기

    R에서 사용했던 oanda를 파이썬에의 quantmod에서는 사용할 수 없다. 그러다보니 환율데이터를 찾기가 어려웠다. fred에서 원달러 환율은 찾았지만, 나머지 엔화나 위완화 환율은 찾지 못했다. 혹시 해당 환율을 찾았다면, 댓글로 남겨주면 좋겠다.

    cur_df = quantmod.get_symbol(ticker="DEXKOUS", src = "fred", start= "2018-01-01", end = "2018-05-01", to_frame=True)


    3) 그외 원자재 가격 등

    많은 금융데이터들이 FRED싸이트에 올라와 있다. 그래서 해당 싸이트의 데이터만 수집할 수 있어도 꽤 많은 데이터들을 수집할 수 있다. 파이썬의 quantmod패키지도 FRED싸이트에 있는 데이터 수집이 가능하다. FRED에 대해서 궁금하다면, 이전 포스팅을 참조해보자.
    ( 참조: R과 QUANT투자 - quantmod로 금융데이터 수집하기 )

    # 원유 가격

    df = quantmod.get_symbol(ticker="DCOILWTICO", src = "fred", start= "2017-01-01", end = "2017-05-01", to_frame=True)


    파이썬 quantmod패키지에서 소스로 활용할 수 있는 곳은 아래와 같다. 결국 pandas-datareader모듈과 동일하다. 일부 소스는 API키가 있어야 한다.

    yahoo, google, iex, iex-tops, iex-last, bankofcanada, stooq, iex-book, enigma, fred, famafrench, oecd, eurostat, nasdaq, quandl, moex, morningstar, robinhood, tiingo, yahoo-actions, yahoo-dividends, av-forex, av-daily, av-daily-adjusted, av-weekly, av-weekly-adjusted, av-monthly, av-monthly-adjusted



    오늘은 이렇게 파이썬에서 금융데이터 수집을 쉽게 할 수 있도록 도와주는 quantmod패키지에 대해서 알아보았다. oanda가 제공되지 않는 것이 조금 아쉽기는 하지만, 파이썬에도 금융데이터를 쉽게 수집할 수 있는 방법이 있다는 것은 좋은 일이다.


    몇 가지 팁이나 방법을 알면 파이썬을 더 효율적으로 코딩할 수 있는 방법들이 있다. 자세한 내용이 궁금하다면, 아래 링크를 참조해보자.
    ( 참조: 파이썬 효율적인 코딩팁과 방법들 )