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

주식 정보사냥꾼에 있는 오류 수정기-1-

by 인터넷떠돌이 2020. 1. 4.
반응형

안녕하세요?

일단 분봉차트 데이터 수집기를 어떻게 완성하고 나서, 이제는 본격적으로 움직여 보기 위해서 일단 코스피 부터 종목의 코드를 가지고 오고, 얘네들을 모두 데이터 수집하기에는 양이 너무 많기 때문에 일단 펀드와 같은 종목은 제외하고 그 다음으로는 모의투자에 적합하지 않은 1000원 미만의 주식도 제외하도록 하려고 합니다. 그런데 이 과정에서 생각지도 못한 오류가 발생하고 말았습니다.

먼저 코드 리스트 생성기를 통해서 코스피의 리스트를 가지고 오는 작업에 착수해 보도록 합니다. 일단 가지고 오는 것은 어렵지 않았습니다.

일단 그냥 보기에도 상당히 많은 양의 숫자들이 들어온 것을 볼 수 있습니다. 이걸 전부 다 어떻게 하려고 하면 상당히 비효율적이기는 합니다.

일단 이렇게 해서 얻은 종목의 코드 리스트에다가 코스피라는 표식을 해서 따로 빼 놓도록 합니다. 이제 다음 단계에 들어가도록 합니다.

 

 

그런데 여기서 예상치 못한 문제가 발생하는 것을 하나 확인할 수 있었습니다. 일단 왜인지 모르게 잘 주식의 현재가와 이름만 가지고 오는데 중간에 프로그램이 멈추어 버린 것 입니다. 컴퓨터가 멈춘 프리징이 아니라, 키움증권 서버에서 더 이상 정보를 보내주지 않아서 생기는 오류입니다.

이런 식으로 나오는 오류가 문제는 한번만 나오는 것도 아니고, 위 스크린샷처럼 또 나오는 것을 확인할 수 있었습니다. 어딘가 이상이 생긴 것이 아닌가 하는 생각이 듭니다.

일단 먼저 살펴보도록 한 것이 바로 이 while문인데, 왜냐하면 여기서 데이터를 쓸데없이 너무 많이 가져오기 때문에 발생하는 과다한 접속으로 인해서, 키움증권 서버에서 자꾸 차단을 시킨게 아닌가 합니다.

일단 이 문제를 해결하기에 앞서서, 전체적으로 얼마나 시간이 걸렸는지를 알아보아야 하기에 StockInformation.py로 가서, 정보를 수집하기 시작하는 버튼의 메서드 아래에, 시작 시간을 기록하도록 합니다.

 

그리고 나서 혹시나 통신장애가 생겨서 그냥 끊겼는 것을 대비하기 위해서, 하나하나 주기가 지날때 마다 기록을 하도록 만들어 주고, 그 다음에는 끝이 나면, 끝이난 시간과, 그 시간 사이의 간격을 계산해 주도록 만들어 줍니다.

이제 다음으로 위 스크린샷처럼 ArrowOfHunter.py로 가서, 현재 날짜를 계산한 다음에, 10일 이전까지의 데이터만 가지고 오고, 만약에 10일 이전보다 더 데이터가 오면, 그대로 while문을 멈추라는 지시를 내립니다.

다으믕로 해야 할일은 이 while문 마져도 사실은 1차적으로 데이터를 가져오고 나서, 10일 이전보다 현재 날짜가 더 크다 = 더 이른 날짜라면, 들어가도록 개조를 하였습니다. 이렇게 하는 것으로 일차적인 작업이 끝이 났는데, 너무 포스팅의 내용이 길어지기 때문에, 여기서 한번 끊어 주도록 하겠습니다.

반응형