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

키움증권 Open API를 이용해서 전체 분봉차트를 가지고 오는 시도-3-

by 인터넷떠돌이 2019. 3. 17.
반응형

안녕하세요?


지난번 포스팅에서 어떻게 가지고 오고자 하기는 했는데, 전혀 데이터가 저장이 되지 않는 문제점이 발생하였다고 언급을 하였습니다. 그래서 이번 포스팅에서는 이 문제점을 해결해서 어떻게 해서든 간에 현재 거래가 되고 있는 주식의 1분봉 차트를 단체로 가지고 오고자 하는 것인데, 처음 생각에는 상당히 쉬울 줄 알았습니다만, 이것도 어느정도 제 노력과 땀을 요구하는 작업이라고 할 수 있었습니다.



혹시나 한개의 데이터 베이스 파일에 모두 집어넣어서 발생한 문제가 아닌가 하는 생각이 들어서, 이번에는 각각의 데이터 베이스에 각각 저장을 하도록 만들어 주고자 합니다.



일단 조금 삑사리가 나기는 나서, 중간에 /를 넣어주지 않은 것 때문에 저런 일이 발생하고 말았습니다. 일단 여기서 나온 것으로 봐서는 1종목당 데이터 베이스 파일 1개씩 만들어 지는 것을 볼 수 있었습니다.



그런데 데이터 베이스 파일을 열어보니, 데이터의 형식이 이상하게 되어 있는 것을 확인할 수 있었습니다. 보통이라면 text같은 형식으로 지정이 되어야 합니다.



이번에는 어떻게 된 일인지 모르겠습니다만, 일단 제대로 데이터가 하나도 저장이 되지 않는 것을 목격할 수 있었습니다. 일단 이 경우에는 어떻게 된 것인지는 모르겠지만, 1종목만 데이터가 제대로 들어오는 것을 확인할 수 있었습니다.




다음으로는 위 스크린샷에서 보이는 것처럼, 혹시 종목자체에 무슨 문제가 있는 것이 아닌가 싶어서 pytrader를 작동시킨 다음에, 위 스크린샷에 보이는 것처럼 문제를 일으킨 종목의 1분봉 데이터를 가지고 오도록 합니다.



그런데 단체로 데이터를 긁어 올 때와는 다르게, 이번에는 위 스크린샷에서 보이는 것처럼 어떻게 해서 데이터를 제대로 가지고 오는 것을 확인할 수 있었습니다.



그래서 이번에는 for문에서 오로지 단 한번에 한 종목코드만 요청을 하면 나아질 지도 모른다는 생각이 들어서, 한번 for문을 바꾸어서 시도해 봅니다.



일단 위 스크린샷처럼 일련의 데이터 베이스 파일들이 생성이 되는 것은 맞는데, 문제는 단 한종목만 빼고 데이터가 제대로 들어오지 않는 문제점이 벌어졌습니다. 그런데 가만히 보다보니, 무언가 이상한 것이 보입니다.




그래서 먼저 위 스크린샷처럼 처음으로 나오는 0번 인덱스의 요소만 나오는 것이 아니라, 10번과 20번의 인덱스를 가지고서 같이 print()를 이용해서 나오도록 만들었습니다.



그러자, 저는 몰랐습니다만, 어떻게 된 것인지 모르겠습니다만, 쓸데없는 공백이 하나 나와있는 것을 확인할 수 있기는 있었습니다.



그래서 이번에는 아예 위 스크린샷에서 보이는 것처럼 replace()함수를 이용해서 공백을 제거하도록 만들어 보도록 합니다. 단순히 for문에 하나 집어 넣어 주는 것만해도 충분합니다.



이번에는 제대로 공백이 사라져서 모두 제대로 된 종목코드로 나오는 것을 확인할 수 있었습니다. 이제까지 데이터가 제대로 모아지지 않은 이유가 바로, 이 공백을 처리하지 못해서 벌어진 에러라고 할 수 있습니다.



전에는 문제를 일으켜서 전혀 데이터가 집계되지 않았는 종목의 1분봉 차트가 제대로 나오는 것을 확인할 수 있기는 있었습니다. 늦기는 했지만, 그래도 어떻게 해서 이 작업을 할 수 있기는 있었고, 다음으로는 제대로 dataharvester를 작동시켜서 현재 거래가 되고 있는 종목의 1분봉 차트에 대해서는 어떻게 가지고 올 수 있기는 있었습니다.

반응형