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

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

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

안녕하세요?

 

지난번 포스팅에서 어떻게 날짜를 계산해서 키움증권 서버에서 데이터를 더 이상은 가져오지 않도록 만드는 것을 했는데, 이 작업이 다 마무리가 되지 않고, 포스팅이 너무 길어지기 때문에 중간에 끊었습니다. 그래서 이번 포스팅에서 그 관련된 내용을 이어서 들어가도록 해 보겠습니다.

일단 처음에는 제대로 작동하는 것처럼 보였습니다. 그런데 점점 문제가 들어나기 시작했는데, 저렇게 잘 가기는 가는데, 정작 주식 종목의 정보는 제대로 저장하지 못하는 것 입니다.

어디가 문제인지 몰라서 한번 확인해 보니,  ArrowOfHunter.py를 작동 시켜서 나오는 결과가, 일단 형식이 어딘가 잘못 되었다는 것을 나타내고 있습니다.

먼저 어디가 잘못되었는지 말하자면, 지금까지는 opt10081이라고 해서, 키움증권에서 일봉차트라고 해서 하루 단위로 끊어지는 캔들차트를 가지고 오고 있었다는 오류가 지금까지 있었습니다. 물론 이것만으로도 작동은 충분하지만, 그래도 문제는 문제입니다.

그래서 이번에는 하는 김에 opt10080이라고 해서, 키움증권 서버에다가 TR이라는 요청을 보내서 분봉차트-그 중에서 1분봉을 가지고 오도록 하려고 합니다.

 

 

그런데 여기서 1분봉까지는 너무 낭비라는 생각이 들었습니다. 일단 분봉차트로 바꾼 김에, 분봉에서 가장 큰 단위인 60분 = 1시간 단위의 봉차트를 가지고 와서, 현재가를 구하도록 합니다.

그런데 이렇게 해도, 역시 format이 맞지 않는다는 에러가 뜨는데, 이때까지는 정확하게 알지 못했습니다만, 자세히 보니, 무언가 잘못된 것을 알 수 있었습니다.

바로 %를 넣어야 하는 자리에 $를 넣어서 생긴 오류가 하나 있어서 제대로 형식을 변환하지 못하고 있었던 것 입니다. 이제 이 오류는 해결했으니 다시한번 더 시도를 해 봅니다.

그러자 이번에는 str형식의 문자열을 요구하지, 시간 형식의 데이터를 요구하지 않는다는 것을 나타내면서 또 다른 오류 메세지가 뜨는 것을 볼 수 있었습니다.

 

이 상황을 타개해 보기 위해서, 일단 위 스크린샷에서 나와 있는 것처럼 gapDate라고 해서, 현재 날짜에서 10일 이전의 날짜로 가서, 이 날짜 자체를 str()함수를 붙여서 문자열로 만들어 주었습니다.

그런데 이번에는 yyyy-mm-dd 라는 형식의 데이터를 바꿀 수 없다는 식으로 나오는 것 입니다. 이 에러를 어떻게 해서 원하는 형식으로 바꿀 수 있는지 처음에는 몰라서 많이 헤메었는데, 해결책은 의외로 가까운 곳에 있었습니다.

바로 이 gapDate에서 년도, 월, 날짜 등을 하나하나 빼서, 2자리가 안될 경우에는 앞에 0을 붙여 주도록 하고, 이렇게 해서 날짜를 다시 형식을 변환하도록 하는 것 입니다. 그렇게 해서 이 결과를 한번 살펴보면.........

이렇게 해서 나오는 결과가 위 스크린샷에서 나오는 것처럼, 제대로 제가 원하는 yyyymmdd형식으로 나와 주는 것을 확인할 수 있었습니다. 다만, 이렇게 지금까지는 형식을 바꾸었다는 것 뿐이지 아직 문제를 100% 해결하지는 못하고, 해결하기 위한 방향으로 한발 더 다가섰다고 할 수 있습니다.

반응형