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

pytrader를 만드는 실습에 들어가기-7-

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

안녕하세요?


지난번 시간에 Open API+에서 예상치 못한 에러가 났는 것 까지 포스팅을 하기는 했습니다. 이제는 pytrader의 개발 2일차에 해당하는 내용을 올리고자 하는데, 일이 간단하지 않다면, 정말 간단하지 않았습니다.



먼저 키움증권 Open API+를 삭제하고 다시 설치해야 했습니다. 이런 과정을 거치고 나서 다음 단계로 넘어 가고자 합니다.



KOA studio를 통해서 실행시킨 Open API+의 계좌 비밀번호 입력 항목이 있는데, 여기다가 공개를 할 수는 없지만, 계좌번호와 비밀번호를 입력해서 한번 작업해 보도록 합니다. 그리고 아래에 있는 AUTO라는 항목도 눌러서 한번 앞으로 접속할 때는 일일히 비밀번호를 누를 일이 없도록 만들어 보도록 합니다.



그리고 나서 pytrader.py로 가서, 한번 위 스크린샷처럼 form_class라는 변수를 만들어 주도록 해서, 이전에 만들어 둔 Qt Desinger에서 만들어둔 pytrader.ui를 지정해 주도록 합니다. 일단 loadUiType("ui파일의 이름")이라는 메소드는 바로 GUI파일을 불러오는 기능을 하는 것으로 보입니다.



그리고 권한 실행을 할 때마다 일일히 물어봐야 하는 항목이 뜨는데, 이런 것도 자동화를 하는데 상당히 걸림돌이 되기는 되니까, 하는 수 없이 위험한 면이 있기는 하지만, 그래도 알리지 않음으로 만들어 주도록 합니다.




그런데 어떻게 된 것인지 전혀 Open API를 이용해서 로그인을 하지 않고서 그냥 pytrader의 UI가 뜨는 현상이 벌어졌습니다. 계속 이런 상황이 나오게 되어서 위 스크린처럼 print함수를 써서 이 부분이 실행이 되기는 되는 것인지 한번 알아 보았습니다. 그리고 전혀 실행이 되지 않았습니다.




그래서 이게 어떻게 된 것인가 했더니, 먼저 변수 = 클래스명() 이라는 식으로 클래스의 객체화라고 하는데, 일단 제가 해본 체감상의 역할은 바로 그 클래스를 실행하는 역할을 하는 것 같습니다. 즉, kiwoom.py에 있는 Kiwoom클래스를 실행시키기 못해서 이런 에러가 벌어진 것이였습니다.



그래서 이런 생각이 들자, 위에서 print("print") 라는 메세지가 전혀 작동하지 않은 이유가 바로 여기에 있었습니다. 즉, pytrader.py에 있는 클래스의 이름은 MyWindow인데, 이 클래스를 전혀 실행시키기 않아서 이런 사단이 벌어진 것이였습니다. 그래서 위 스크린샷처럼 SH = MyWindow()라는 명령을 if __name__ == "__main__": 이라는 메소드에서 플레이 버튼을 누르면, 그 여기서 부터 실행이 되는데, 여기서 변수 = 클래스명() 이라는 형식으로 클래스를 실행시키는 작업에 들어갔습니다.



그렇게 해서 Open API를 이용해서 한번 로그인이 되려고 하는 것은 좋은데, 문제는 위 스크린샷과 같은 문제가 생기면서 아예 종료가 되는 현상이 벌어지는 것 입니다. 이건 PyCharm에서 에러 메세지가 뜨는 것도 아니고 해서 처음에 생기는 순간, 상당히 당황했습니다. 거기다가 무엇이라고 검색을 해서 이 에러에 대한 자료를 찾아봐야 하는 지도 잘 모르기는 했습니다. 일단 포스팅의 길이 문제로 여기서 끊지만, 이 에러까지 다음 포스팅에서 해결할 것을 약속드리며, 여기서 마치도록 하겠습니다.

반응형