[키움 자동매매 프로그램] - 기본 클래스 선언 및 UI 제작
1. Kiwoom 클래스 정의 (자동매매를 위한 프로그램의 기본 클래스)
키움 자동매매를 위해 필요한 기본 클래스를 선언한다.
self.kiwoom은 OpenAPI의 ActiveX 컨트롤을 불러와 API와 직접 통신할 수 있도록 하는 변수를 지정한다.
그 외에는 주식 및 계좌 정보를 저장할 수 있도록 list와 dictionary를 초기화한다.
초기화한 데이터는 프로그램을 구성할 때마다 늘어날 수 있다.
from PyQt5.QtWidgets import *
from PyQt5.QAxContainer import *
from PyQt5Singleton import Singleton
class Kiwoom(QWidget, metaclass=Singleton) :
def __init__(self, parent=None, **kwargs) :
print("로그인")
super().__init__(parent, **kwargs)
self.kiwoom = QAxWidget('KHOPENAPI.KHOpenAPICtrl.1')
self.All_Stock_Code = {} # 종목 정보
self.acc_portfolio = {} # 계좌 정보
self.portfolio_stock_dict = {} # 종목 포트폴리오
self.not_account_stock_dict = {} # 미체결 잔고
self.jango_dict = {} # 보유 종목 정보
self.buy_jogon = {} # 매수 조건
self.tody_stock = [] # 오늘 거래된 종목
self.condition_list = {'index' : [], 'Name' : []} # 키움조건식 목록
2. UI 제작
UI는 Anaconda에 포함되어있는 Qdesigner로 구성하였고,
가운데 윈도우 창 제작 장소 기준 왼편에 위젯 상자와 오른편의 객체 탐색기 및 속성 편집기로 다음과 같은 화면을 제작해주었다.
현 포스팅에서는 어떤 UI인지만 소개하고, 다른 포스팅에 기능들을 자세히 소개한다.
2.1 기본 매매 페이지 제작(pytrader.ui)

2.2 시황 분석 페이지 제작(pytrader2.ui)

2.3 자동매매 페이지 제작(pytrader3.ui)
pytrader3.ui에서는 매매 종목을 수동으로 직접 지정하여 해당 종목에 대한 익절 및 손절을 자동으로 매매한다.

2.4 조건식 자동매매 페이지 제작(pytrader4.ui)
pytrader4.ui에서는 조건식을 검색하여 해당 조건식에 해당하는 종목으로 익절 및 손절을 자동으로 매매한다.
