반응형
주식 자동 매매 시스템
파이썬을 이용한 주식 자동 매매 시스템을 학습했습니다. 교재는 '길벗 출판사'의 박준성 저자의 책으로 실습을 했습니다. 수십 번의 시행착오를 거쳐 성공했습니다.
코드 문제점
계속 실패했던 이유는 파이썬 비트 버전이었습니다. 키움에서 제공하는 '키움 Open API'는 32비트만 지원됩니다. 64비트 버전으로 했더니 계속 실패할 수밖에 없었습니다. 제 경우는 파이썬 3.8 버전의 32비트 인스톨 버전으로 파이썬을 설치하고 파이참에서 인터프리터로 이 버전을 연결했습니다. 파이썬 32비트 버전 링크는 아래와 같습니다.
https://www.python.org/ftp/python/3.8.8/python-3.8.8rc1.exe
코드
프로젝트의 구조는 다음과 같습니다. 'main.py' 파일과 파이썬 패키지로 'api', 'util', 'strategy'를 둡니다. 'api' 패키지 내에 'Kiwoom' 클래스가 정의된 'Kiwoom.py' 파일을 배치합니다.
파이썬 코드(main.py)
from api.Kiwoom import *
import sys
app = QApplication(sys.argv)
kiwoom = Kiwoom()
app.exec_()
파이썬 코드(Kiwoom.py)
from PyQt5.QAxContainer import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Kiwoom(QAxWidget):
def __init__(self):
super().__init__()
self._make_kiwoom_instance()
self._set_signal_slots()
self._comm_connect()
def _make_kiwoom_instance(self):
self.setControl("KHOPENAPI.KHOpenAPICtrl.1")
def _set_signal_slots(self):
self.OnEventConnect.connect(self._login_slot)
def _login_slot(self, err_code):
if err_code == 0:
print("connected")
else:
print("not connected")
self.login_event_loop.exit()
def _comm_connect(self):
self.dynamicCall("CommConnect()")
self.login_event_loop = QEventLoop()
self.login_event_loop.exec_()
정리
프로젝트에 사용하는 파이썬 비트 버전이 32비트 버전이라는 것을 유념해야 합니다. 그리고 pyqt5 라이브러리를 사용하기 때문에 'pip install pyqt5'를 설치하는 것입니다. 나머지 키움증권에 회원 가입 등의 기본 절차는 필수적입니다.
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
아나콘다 64비트 버전 삭제 (28) | 2024.11.28 |
---|---|
주식자동매매에서 자동 로그인 (30) | 2024.11.27 |
파이썬을 통한 자동 완성 프로그램의 크롬드라이버 다운로드 (29) | 2024.11.25 |
[전자책] 전자책 만들기 단축키 연습 (24) | 2024.11.21 |
IPython에서 'I'는? (29) | 2024.11.20 |
댓글