koos808

대신증권 API를 이용한 분/일봉 전종목 주가데이터 저장하기-2 본문

Stock/주가 데이터 수집

대신증권 API를 이용한 분/일봉 전종목 주가데이터 저장하기-2

koos808 2020. 7. 5. 01:43
728x90
반응형

이전 포스팅 대신증권 API를 이용한 분/일봉 주가데이터 저장하기-1에 이어서 분봉, 일봉 주가 데이터를 수집하기 위한 환경을 설정하도록 하겠습니다.


1. 파이참(PyCharm)에서 파이썬 32비트 가상환경 설정

설치한 파이참 PyCharm Community Edition을 실행하면 아래와 같은 창이 나옵니다. 새로운 프로젝트를 하나 생성해줍시다.

 

이제 만들어준 파이썬 32비트를 설치한 가상환경을 설정해주도록 합시다.

저는 Project 이름을 DaishinAPI라고 지정했습니다. 그리고 아래처럼 Existing interpreter를 체크해주시고 만들어놨던 파이썬 32비트 python을 넣어줍니다.

 

저는 다음과 같은 경로에 가상환경이 생성됐습니다.

C:\Users\Djkoo\Anaconda3\envs\py36_32\python.exe


2. 파이썬 코드 내려받기

대신증권 API를 이용해 주가 데이터를 내려받는 파이썬 코드를 거의 다 실행해보고 테스트해본 것 같습니다.

아래 깃허브 코드는 PyQt 기반의 프로그램으로 코드가 구현되어있어서 굉장히 편리하더라구요.

정말 많은 도움이 됐습니다. 감사합니다.

 

https://github.com/gyusu/Creon-Datareader

 

gyusu/Creon-Datareader

대신증권(Creon) PLUS API를 이용한 지속적인 주가 데이터 DB 구축 프로그램. Contribute to gyusu/Creon-Datareader development by creating an account on GitHub.

github.com

참고로, 앞으로 이 코드를 참조해서 다양한 고가, 저가 등의 기본적인 데이터말고도 실시간으로 틱데이터, 분봉 데이터를 다운받을 수 있는 코드를 구현해보겠습니다.

 

위의 깃허브 주소에 들어가서 코드를 다운받아 줍니다. [ Code - Download ZIP ]

 * 다운 받으실 때 Star를 눌러서 개발자에게 고마움을 표시해주세요.

 

깃허브 코드를 프로젝트 경로에 통채로 넣어주시면 준비는 끝납니다.

creon_datareader.py를 실행시켜주면 다운받을 수 있는 PyQt 창이 열리게 됩니다.

실행 단축키는 <Ctrl+Shift+F10> 입니다.

아마 실행시키면 pandas 모듈이 없다고 에러가 뜰겁니다.


3. 필요 module 설치

모듈을 설치해줘야 정상적으로 실행이 됩니다.

 

Anaconda Prompt 실행 후 아래 코드 실행해서 가상환경을 들어가 준 뒤 모듈을 설치해줍니다.

conda activate py36_32 # 32bit 파이썬 설치된 가상환경 활성화
pip install pandas
pip install tqdm
pip install PyQt5
pip install pypiwin32

모듈을 설치하고 creon_datareader.py를 실행시켜주면 아래와 같이 PyQt GUI 창이 열립니다. 이제 데이터만 다운받으면 끝납니다.

 


4. 테스트

1) DB 경로 연결

위 그림처럼 DB 경로를 연결하면 stock_price(5min).db에 데이터가 다운받아지도록 연결됩니다.

db이름은 원하시는 대로 지정하시면 됩니다.

 

2) 종목리스트 경로[선택사항]

원하는 종목이 담긴 엑셀파일을 연결한 뒤 <검색 결과만 다운로드>를 실행하게 되면, 엑셀 파일에 있는 종목만 다운받아지게 됩니다.

 

3) 종목 필터에 <삼성전자>입력

1분봉/5분봉/일봉/주봉/월봉 등 원하는 데이터 선택

 

4) <검색결과만 다운로드> 클릭

데이터는 파이참 프로젝트 경로 내의 db폴더에 생성되게 됩니다.

 

 

5) DB 확인

"DB Browser (SQLite) 프로그램"을 사용하면 csv로 변환하기도 편하고 한눈에 보기가 쉽습니다.

 

자! 끝났습니다. 분봉/일봉/주봉 주가 데이터를 db에 저장했습니다. 

 

파일 - 내보내기 메뉴를 이용하면 분석과 이용하기 편하신대로 SQL과 csv로 내보내서 사용하시면 됩니다.

 

간편하게 db에 전종목 데이터를 다운받고 축적할 수 있는 장점이 있습니다.

하지만, 분봉에서는 API에서 제공해주는 기간제한때문에 2년, 5년 밖에 가져올 수 없다는 단점도 있네요.

 

추후, 시가와 종가 등 일반적인 주가 데이터 뿐만 아니라 여러 기술적 지표와 다양한 데이터도 함께 가져올 수 있도록 하는 코드를 구현하고 포스팅하겠습니다. 또한, 틱데이터도 받아올 수 있는 방법을 생각해봐야겠습니다.

 

 


참고 사이트 : https://github.com/gyusu/Creon-Datareader

728x90
반응형
Comments