프로그래밍/프로젝트

투자봇 만들기

roquen4145 2020. 6. 14.

투자봇 만들기를 진행하고 있다.

친구들 몇 명을 모아서 개별 진행하고 있으며 따로 스터디는 안하고 있다.

 

프로젝트를 시작하게 된 계기는 투자봇 관련 강의 광고를 본 것 때문이다.

커리큘럼에서 파이썬관련 내용을 필요없고 API관련 사용법만 조금 공부하면 될 것 같았다.

자료를 수집해본 결과 키움증권을 사용하여 봇을 만드는 과정에 대해 정보가 제일 많은 것 같았고

홈페이지에도 API 사용법들에 대해 꽤나 상세하게 설명이 되어있어서 키움증권을 사용하기로 하였다.

 

찾은 자료 중에 제일 참고할만한 자료가 있어서 첨부한다.

https://wikidocs.net/book/110

 

종종 프로젝트 진행사항에 대해 본 게시글을 수정하여 업데이트 할 예정이다.

[2020-06-14]
기본적으로 API 사용하는 예제를 만들어보았다
앞으로는 원하는 기능과 UI를 설계하고 개발해야겠다

 

 

[2020-06-28]

크롤링 구현하기

① 크롤링의 목적

 무엇을 크롤링 할 것인가?

 어디서 크롤링 할 것인가?

어떻게 저장할 것인가?

 

- 크롤링을 통해 주식 종목의 재무제표를 획득하여 분석하고 시장 정보를 획득하여 거래에 참고한다.

- 투자가능한 코스피/코스닥 종목과 그에 영향을 줄 수 있는 NASDAQ 종목을 크롤링 해야한다.

- 해당 종목들에 대해서 DART(전자공시시스템)의 Open API를 이용하거나 웹페이지를 Parsing 하도록 한다.

- 재무제표는 정형 데이터이기 때문에 MySQL이나 엑셀 등을 사용하여 저장한다.

 

[2020-07-05]

DART Open API : https://opendart.fss.or.kr/intro/main.do

 

전자공시 OPENDART 시스템 | 오픈API 소개 | 오픈API 소개

오픈API 소개 오픈API 소개 오픈API 소개 DART에 공시되고있는 공시보고서 원문 등을 오픈API를 통해 활용할 수 있습니다. 활용을 원하시는 누구든지(개인, 기업, 기관 등) 이용하실 수 있습니다. DART

opendart.fss.or.kr

 

 

Open API를 사용하기 위해서는 우선 API 인증키를 발급받아야하고 위 링크의 두번째 메뉴에서 신청할 수 있다.

 

그 이후에는 개발가이드를 참고하여 원하는 정보를 얻을 수 있다.

예를들어 상장기업의 재무정보 중 단일회사 주요계정 정보를 얻으려면 아래 링크에 적혀있는 Open API 주소를 사용하면 된다.

https://opendart.fss.or.kr/guide/detail.do?apiGrpCd=DS003&apiId=2019016

 

페이지의 맨 아래있는 다음 주소에 자신의 정보를 넣어 요청하면 된다.

https://opendart.fss.or.kr/api/fnlttSinglAcnt.json?crtfc_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&corp_code=00126380&bsns_year=2018&reprt_code=11011

Python을 사용할 경우 다음과 같이 사용하면 된다.

import urllib.request

url = "https://opendart.fss.or.kr/api/fnlttSinglAcnt.json?crtfc_key=xxxxxxxxxxxxxxxxxxxx&corp_code=00126380&bsns_year=2018&reprt_code=11011"
pageinfo = urllib.request.urlopen(url).read().decode('utf-8')
print(pageinfo)

콘솔창에 API 페이지의 예시처럼 데이터가 출력되는 것을 볼 수 있다.

 

이제 재무제표 정보를 얻어올 수 있게 되었다.

재무제표 정보를 얻어올 때 요청인자(corp_code)로 회사 고유번호가 필요한데 이것도 Open API로 제공하고 있다.

문제는 API로 받은 파일이 zip 파일형식의 바이너리인데 다운받아질 때는 xml 확장자로 생성되어있어서

xml을 zip으로 확장자 변환을 한 후에 압축을 풀어야한다.

'프로그래밍 > 프로젝트' 카테고리의 다른 글

[안드로이드 프로젝트] Blue Print  (0) 2017.07.13

댓글