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

프로그램의 시운전과 에러잡기 -1-

by 인터넷떠돌이 인터넷떠돌이 2020. 11. 30.
반응형

안녕하세요?

 

이래저래 말도 많고 탈도 많았습니다만, 아무튼 간에 프로그램은 대략이라도 완성을 하고서 시운전에 들어가 보기는 보았습니다. 다만, 이렇게 시운전이라고 해도, 이게 100% 제 의도대로 작동할 수 있다고 생각하기는 힘든데, 아무튼 그래도 일단 해봐야 하기는 해야 하는 일이기는 합니다.

 

일단 가장 먼저 할일은 필요한 이 텍스트 파일하나 빼고서는 그냥 다 제거해서 처음부터 시작하는 것이라는 것을 보여 주도록 해야 합니다.

 

그런데 시작하자 마자 생각지도 못한 에러가 나오는 것을 보았습니다. 일단 어떻게 된 것인지 매수가를 제대로 float형태로 변형하지 못하는 것 입니다.

 

 

그래서 일단 이 값을 일단은 문자열로 취급해서 쉽표를 모두 제거해 주도록 했습니다. 이렇게 했는 다음에 이 값을 모두 합쳐 보도록 했습니다.

 

그리고 나서 다음으로 해야 하는 것으로는 이제 처음으로 작동한 경우가 아닌 = 이미 한번 프로그램을 돌린 적이 있는 경우라면, 일단 저장이 되어 있는 Stored_PA라는 데이터 베이스 파일로 부터 하나씩 가져오도록 합니다.

 

그리고 나서 다음으로 봐야 하는 것으로는 바로 위 스크린샷처럼 일단 문제가 하나 생겼습니다. 바로 키움증권 서버와 연결되어 있는 시간이 짧기 때문에, 체장 데이터가 송출되는 시점에서 접속이 언제나 끊겨 있습니다. 그래서 위 스크리냣에서 볼 수 있는 것처럼 항상 체결이 되었는지 체크할 필요가 있습니다.

 

그리고 이렇게 체결이 확인이 되는 정보를 가져오기 위해서는 위 스크린샷에서 볼 수 있는 것처럼, 일단 kiwoom.py에서 해당하는 정보를 가지고 올 수 있어야 합니다.

 

이렇게 해서 매수인지 매도인지 일단 체결되는 정보를 가지고 오는데는 겨우겨우 성공했는데, 일단 여기서 부터 시운전에서 무언가가 삐걱거리기는 했습니다. 물론, 에초에 모든게 설계대로 다 돌아가면 좋지만, 실제로는 그렇지 못해서 문제이기는 합니다. 일단 이에 맞춰서 하나하나 변형해야 합니다.

반응형

댓글2

  • 슈마갤 2021.02.17 02:29

    오랜만에 또 들러봅니다. 주인장님 덕분에 코딩의 즐거움도 알게되고 항상 감사합니다.
    str -> float 변환때문에 for문을 돌리셨던데 아래와 같은 코드를 적용해보시면 코드수를 줄일 수 있겠더라구요.
    total_buy = deposit['buyPrice'].map(lambda x : x.replace(',', '')).astype(int)
    항상 응원합니다. 좋은 하루되세요.
    답글

    • 안녕하세요?

      오오 정말 좋은 조언 감사합니다. 저도 파이썬이라든가 컴퓨터를 제대로 배운적은 없기에, 그냥 무식하게 하고 있는 중 입니다.
      그러다 보니, 저렇게 for loop같은걸 쓰는데, 조언 감사드립니다.