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

PyMon을 만드는 실습에 들어가기-2-

by 인터넷떠돌이 2018. 12. 5.
반응형

안녕하세요?


지난번 포스팅에서 어떻게 조회횟수 제한이라고 키움증권 서버가 걸어놓은 에러가 나왔는데, 이런 에러를 해결한다고 해야 할지, 피한다고 해야 할지 일련의 문제해결을 위해서 가지가지 시도를 하였고, 그 과정을 이번 포스팅에서 올리고자 합니다.



혹시나 싶어서 buy_list.txt에 그대로 종목에 대한 자료라도 들어왔는가 싶어서 봤지만, 한 개도 들어온 것이 없다는 것을 볼 수 있었습니다. 그래서 이 문제는 좀 심각하다는 생각이 듭니다.



일단 키움증권 서버에서 일봉차트 데이터를 요청하는 항목에 있는 time.sleep()함수를 0.2초에서 만드는 것을 0.5초로 더 올려서 한번 시도를 했습니다.



그러나 이런 노력에도 불구하고 또 다시 키움증권 서버에서는 위 스크린샷과 같은 조회횟수 제한이라는 에러 메세지를 내 보내고 있습니다.



한번 어떤 기록이 나왔는지 한번 보도록 합니다. 그래도 뭐라고 해야 할까요? 일단 지난번 보다는 더 많은 종목의 일봉차트를 조회한 것은 맞다는 생각이 듭니다.




일단 혹시나 몰라서, 위 스크린샷처럼 원래는 ("매수;", code, ";시장가;10;0;매수전")이라고 ,로 띄워져 있어서 에러 메세지가 PyCharm에서 떠 있었는데, 위 스크린샷처럼 바꾸어 주도록 합니다. 왜냐하면, 이게 에러가 나올 가능성이 있는데, 한번에 몇 분은 기다려야 하는 과정을 이렇게 마냥 기다리는 것은 비효율적이라는 생각이 듭니다.



그리고 나서 다음으로는 위 스크린샷처럼 0.8초로 더 지체되는 시간을 늘려서 이번에는 키움증권 서버의 조회횟수 제한을 피할 수 있으리라 생각을 했습니다.



하지만 이번에도 1000번째 종목의 일봉차트를 가지고 오고 나서, 위 스크린샷처럼 조회횟수 제한이라는 에러 코드가 뜨는 것을 확인할 수 있었습니다.



그래서 이번에는 클래스 변수라고 해서, 클래스를 선언하는 부분에서 첫 메소드가 시작하기 전에 변수를 선언하고, 위 스크린샷의 붉은색 박스에 보이는 것처럼 클래스명.변수명 이라는 식으로 클래스 변수를 사용할 수 있습니다. 당연 이 클래스 변수는 클래스 내부라면 어디서든지 사용이 가능한 변수리라 생각이 됩니다.




그러나 이런 작업에도 불구하고 또 다시 문제가 발생하고 말았습니다. 즉 500번째와 1000번째에 3분씩 쉬는 시간을 주기는 주었어도, 결국 이런 조회횟수 제한에 걸리는 문제를 발생시키고 말았습니다.



너무 욕심을 부려서 0.2초로 시간을 주었는 것이 문제였을 까요? 다시한번 시도를 하는데, 이번에는 위 스크린샷처럼 0.5초로 더 시간을 늘려서 작업을 하도록 해 봅니다.



그래도 이런 에러는 해결이 되지 않고서, 계속해서 이런 조회횟수 제한에 걸렸습니다.



그런데 자세히 보니까, 이번에도 1000번째 종목의 일봉차트를 가지고 오고 나서, 이런 에러가 발생한 것을 확인할 수 있었습니다. 그래서 혹시나 하고 추측한 것이 아무래도 1초에 5회를 넘어가는 조회횟수 때문이 아니라, 한번에 Open API로 접속해서 가지고 올 수 있는 데이터의 총량에 문제가 있는 것이 아닌가 하는 생각이 들기 시작했습니다.

반응형