저는 데이터 분석을 위해 SQL을 반드시 배우라고 떠들고 다닙니다. 이와 함께 미는 언어가 하나 더 있습니다. 바로 파이썬입니다.

파이썬은 데이터를 분석하고 다루기 위해 연구하고 공부할 매력있는 언어입니다.

파이썬을 처음 접한게 2016년 말이었습니다. 주식 데이터를 어떻게 분석할까 헤매이다 접하게 되었습니다. 그때 든 생각은.. '아.. 파이썬은 개발자는 물론 비 개발자 직군에도 필요한 언어가 되겠구나'였습니다. 아니나 다를까 현재 일부 회사의 경우 비 개발자도 파이썬을 배우게 하고 시험도 보는 경우가 있습니다. 저 역시 좀 더 파이썬 공부에 열을 올려볼까 생각하고 있습니다.

 

주식을 분석하기 위해서 필요한 기본적인 정보 두가지는 재무 정보와 주가(가격) 정보입니다.

오늘은 일별 주가 정보를 파이썬을 이용해 얻는 방법을 소개합니다.

일별 주가 정보를 얻는 다양한 방법이 있지만, pandas_datareader를 사용합니다. 그리고 얻은 주가 정보를 엑셀 파일로 저장하는 기능까지 구현합니다.

 

제가 개발한 환경은 아래와 같습니다. 반드시 아래와 같은 환경이 아니어도 됩니다.

 - Anaconda 3.1

 - Pycharm

 

아나콘다는 파이썬에 많이 쓰는 모듈을 모아 놓은 파이썬 버젼이라 생각하시면 됩니다. 그리고 파이참은 개발을 편하게 해주는 개발툴입니다. 반드시 이와 같이 환경을 구성할 필요는 없습니다. 그냥 파이썬만 다운받아 하셔도 됩니다.

 

여기서는 파이썬 프로그램 파일명을 "SIMPLE_STOCK_HISTORY.py"로 했습니다. 간단한 주가 이력 가져오기 정도의 의미입니다. 먼저 아래와 같이 필요한 모듈을 Import합니다.

import datetime
import time
from pandas_datareader import data as pdr

 

필요한 모듈을 Import 한 후에, 아래와 같이 getHistory라는 특정 종목의 주가 정보를 오늘자까지 가져오는 함수를 구현합니다.

def getHistory(_code,_excelSaveYN):
    start = datetime.datetime(2000,1,1)
    end = datetime.datetime(int(time.strftime("%Y")),int(time.strftime("%m")),int(time.strftime("%d")))
    print(start, end)

    history =pdr.get_data_yahoo(_code,start)
    print(history)

    if _excelSaveYN == 'Y':
        saveExcel(_code,history)

 

getHistory와 _code와 _excelSaveYN이라는 변수를 넘겨 받습니다. _code는 종목코드이고 _excelSaveYN은 엑셀 저장 여부입니다.

start에 주가 정보를 가져올 시작 시점을 입력하고, end에는 오늘 일자를 입력합니다. pdr.get_data_yahoo를 사용해 주가 정보를 바로 가져옵니다. _excelSaveYN이 Y면 엑셀 저장을 처리합니다.

 

아래는 엑셀 저장 함수 소스코드입니다. 저장하는 엑셀의 파일명은 _code명에 오늘의 날자를 더해서 구성합니다.

def saveExcel(_code,_history):
    file_nm = _code + '_' + time.strftime("%Y%m%d%H%M%S") + '.xls'
    print(file_nm)
    _history.to_excel(file_nm)

 

최종 소스코드는 아래와 같습니다.

import datetime
import time
from pandas_datareader import data as pdr

def getHistory(_code,_excelSaveYN):
    start = datetime.datetime(2000,1,1)
    end = datetime.datetime(int(time.strftime("%Y")),int(time.strftime("%m")),int(time.strftime("%d")))
    print(start, end)


    history =pdr.get_data_yahoo(_code,start)
    print(history)

    if _excelSaveYN == 'Y':
        saveExcel(_code,history)

def saveExcel(_code,_history):
    file_nm = _code + '_' + time.strftime("%Y%m%d%H%M%S") + '.xls'
    print(file_nm)
    _history.to_excel(file_nm)

if __name__ == "__main__":

    getHistory('005930.KS','Y') #코스피는 .KS, 코스닥은 .KQ

 

위 소스를 실행하면 해당 소스코드가 있는 폴더에 아래와 같이 주가 정보를 가져온 엑셀이 만들어 집니다.

 

오늘은 여기까지입니다. 모두 파이썬 한 번 접해보시길 바랍니다~!

 

 

SQL과 주식에 관심이 있다면 아래 책을 참고해주세요.

※ 주의 사항

  ▶ 절대 특정 종목을 추천하거나 투자를 권유하는 책이 아닙니다.

  ▶ 데이터 분석을 공부하기 위한 MySQL 책입니다.

  ▶ 책의 내용을 통해 얻은 종목에 투자해 발생한 손해는, 저를 비롯한 책 관계자 누구도 책임지지 않습니다.

※ 책 소개: https://sweetquant.tistory.com/243

※ 책 미리보기: https://sweetquant.tistory.com/257

※ 완전판 E-Book

  ▶ 유페이퍼: https://www.upaper.net/ryu1hwan/1142997

  ▶ 알라딘: https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=273701425 

  ▶ Yes24: http://www.yes24.com/Product/Goods/102264444?OzSrank=1 

  ▶ 교보문고: https://digital.kyobobook.co.kr/digital/ebook/ebookDetail.ink?selectedLargeCategory=001&barcode=4801167630019&orderClick=LAG&Kc=

 

 

 

+ Recent posts