본문 바로가기
무모한 도전-주식 인공지능 만들기

증권사 API를 이용해서 PyCharm에서 주식 데이터 다루기-3-

by 인터넷떠돌이 2018. 11. 25.
반응형

안녕하세요?


지난번 포스팅에서 어떻게 증권사의 API를 이용해서 엑셀같은 프로그램을 사용하지 않고서도 주식 데이터를 PyCharm으로 가지고 오는데는 성공했습니다. 그런데 문제는 이 데이터는 메모리상에서만 있기 때문에 하는 수 없이 SQLite를 이용한 데이터 베이스 파일에 저장을 해야만 합니다. 그래서 이번 포스팅에서는 한번 관련된 내용을 포스팅 하고자 합니다.



먼저 지난번에 만들어 놓은 kiwoom.py에서 pandas와 sqlite3를 import하도록 해 봅니다.



다음으로 def _opt10081()메소드에서 이전에는 그냥 가지고 오기만 했는 일봉 데이터를 이번에는 딕셔너리라고 해서 리스트와 비슷하기는 하나, key가 있고, 그에 해당하는 값이 있는 형태의 자료구조로 만들어 줘야 합니다. 여기서 위에 붉은색 박스를 친 곳에서는 바로 각각 가지고 온 주식의 일봉 데이터를 각각의 key와 그에 매치가 되는 값이 있는 ohlcv라는 딕셔너리로 만드는 작업을 하는 코드입니다.



다음으로는 ohlcv라는 딕셔너리를 DataFrame객체로 만드는 작업을 하는 코드입니다. 먼저 위 스크린샷에서 빨간색 밑줄을 친 부분은 딕셔너리로 본격적으로 만드는 항목이라고 보시면 됩니다. 다만 이 상태에서는 빈 딕셔너리가 되는데, 여기에 def _opt10081()메소드에서 데이터를 집어넣게 되는 것 입니다.




다음으로 있는 while문에서는 이전 포스팅에서는 그냥 print라고만 되어 있었지만, 여기서는 df라고 해서 pandas의 DataFrame객체로 바꾸어 주는 역할을 하는 코드에 집어 넣어 주도록 합니다. 마지막으로 sqlite3의 to_sql()이라는 메소드를 이용해서 테이블을 생성해 주고, 데이터 베이스 파일에 집어넣는 역할을 하도록 합니다.



이제 프로그램을 가동해서 잠깐의 시간이 걸리기도록 합니다.



마지막으로 kospi.db에 가보니까, 새로 생긴 테이블이 있었고, 여기에서 데이터가 저장이 된 것을 볼 수 있었습니다. 이렇게 하는 것으로 이제 PyCharm에서 키움증권의 Open API를 이용해서 주식 데이터를 가지고 오는 것을 연습해 보는 것 까지는 성공했는데, 문제는 제 주식 인공지능인 RLTrader와는 아직도 채워지지 않는 간격이 있습니다. 즉, 이제부터는 이 것을 매우는 작업을 어떻게 시작해 보아야 할 듯 합니다.

반응형