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

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

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

안녕하세요?


어떻게 하다보니 이래저래 시간이 지체되는 일이 많아져서 포스팅을 올리는 것이 늦어졌습니다. 아무튼 일단 [파이썬으로 배우는 알고리즘 트레이딩]이라는 책에서 pytrader라는 것을 만들어서 어떻게 증권사-그것도 키움증권의 Open API와 Pycharm으로 만든 프로그램을 연동시키는 것을 보여 주었습니다.


물론 제가 하고자 하는 것은 RLTrader라고 해서 강화학습을 이용한 모델을 가지고서 주식 인공지능을 만들어 보는 것이지만, 그냥 이 책에서 키움증권 Open API와 연동하는 부분만을 쏙 빼서 먹기에는 너무 내용이 방대하고, 해야 할 것도 많다는 생각이 듭니다. 그래서 일단 다른 사람들이 만든 프로그램인 pytrader를 구현하는 실습을 해보고 나서, 이를 보고서 한번 제 RLTrader에 적용을 시켜 보고자 합니다.



먼저해야 할 일은 이 pytrader는 컴퓨터가 24시간 켜져 있다고 하면, 자동으로 로그인을 해서 증권사의 서버로 접속을 하는 것을 보여 줍니다. 그런데 이 작업을 위해서는 먼저 pywinauto라는 라이브러리가 필요합니다. 다만 아나콘다가 이 pywinauto를 지원하지 않기 때문에, pip를 이용해서 설치를 해 줍니다.


pip install pywinauto



그리고 여기서 중요한 것으로, PyCharm을 관리자 권한으로 실행을 시켜 주도록 해야 합니다.



그렇게 해서 기존의 PyQtTest라는 프로젝트에 autorun.py라는 파이썬 파일을 생성하도록 합니다.



먼저 위 스크린샷과 같이 pywinauto의 모듈들을 import해 오도록 하며, 키움증권의 번개3를 실행시킬 수 있도록 경로도 지정해 주도록 합니다. 이렇게 하는 이유는 키움증권의 서버에 접속하기 위해서는 매번 Open API를 업데이트 해야 하는데, 이를 위해서 가장 간편한 해결방법이 바로 번개3를 실행하는 것 입니다.




그 다음으로는 SWARY라고 해서, 번개3와 같이 윈도우상에서 실행이 되고 있는 프로그램의 각각의 버튼이나 항목을 파이썬으로 만들어진 프로그램이 자동으로 작업을 해주기 위해서, 먼저 실행되고 있는 프로그램의 각각의 버튼이나 입력창의 위치를 알려주는 프로그램을 먼저 다운로드 받도록 합니다.



그렇게 다운로드를 받고 있는 사이에, 다음으로는 번개3종료시 종료확인창이 나타나지 않도록 환경설정에서 바꾸어 주도록 합니다. 이렇게 하는 이유는 이런 확인을 위한 윈도우가 자동화를 하는데는 많은 장애가 되기 때문입니다.



그런데 여기서 예상치 못한 한가지 난관에 부딪치게 되었습니다. 윈도우 8.1k를 쓰는 제 컴퓨터의 환경과 무언가가 맞지 않은 탓인지는 몰라도, SWARY가 아예 작동을 하지 않는 문제가 발생하게 된 것입니다. 그래서 하는 수 없이 더 최신의 버전으로 나온 PyInspector를 사용할 수 있는지 알아보러 갑니다.



이를 위해서는 아예 새로운 파이썬의 가상환경을 하나 만들어야 하기 때문에, 위 스크린샷처럼 PyInspect라는 이름의 가상환경을 하나 만들어 주도록 하고, 다음으로는 python의 버전을 3.5로 고정을 시켜 주어서 작동이 되도록 만들어 주도록 합니다. 일단 너무 많이 오늘은 이런저런 시행착오를 거친다고 너무 피곤한 관계로 여기까지로 줄이겠습니다. 내일부터는 더 많은 양의 데이터를 올리도록 해 보겠습니다.

반응형