주식자동매매 12강. 로그인시 계좌번호 GUI에 전시하기
본문 바로가기

주식 자동매매 강의/기초반(모든 코딩의 뿌리)

주식자동매매 12강. 로그인시 계좌번호 GUI에 전시하기

반응형

로그인이 완료된 후 계좌번호를 가져온 후 관련 정보를 GUI에 전시하도록 하겠습니다. 계좌번호는 차 후 매수/매도 뿐만아니라 다양한 곳에서 사용될 예정이니 필수적인 값입니다.

 

[유튜브 강의, 링크]와 같이 보시면 많은 도움이 되실 겁니다.

 

반응형

1. 계좌정보 가져오는 코드

11강에 공개해드린 코드에 4줄만 추가해 주시면 됩니다. 각 코드들이 의미하는 뜻을 해석해 보도록 하겠습니다.

 

계좌정보 가져오는 코드
계좌정보 가져오는 코드

    def login_slot(self, errCode):
        if errCode == 0:
            print("로그인 성공")
            self.statusbar.showMessage("로그인 성공")
            self.get_account_info()                    # 로그인시 계좌정보 가져오기

        elif errCode == 100:
            print("사용자 정보교환 실패")
        elif errCode == 101:
            print("서버접속 실패")
        elif errCode == 102:
            print("버전처리 실패")
        self.login_event_loop.exit()  # 로그인이 완료되면 로그인 창을 닫는다.

    def get_account_info(self):
        account_list = self.k.kiwoom.dynamicCall("GetLoginInfo(String)", "ACCNO")

        for n in account_list.split(';'):
            self.accComboBox.addItem(n)

 (1) self.get_account_info()함수 실행하기

  self.get_account_info() 함수를 실행하라는 의미입니다. self.get_account_info()함수를 사용하지 않고 관련정보를 다 일일이 적어도 되나 이렇게 가독성 높게 구성하는 것이 코딩의 기본입니다.

 

 (2) def get_account_info(self): 함수 가동

  - account_list = self.k.kiwoom.dynamicCall("GetLoginInfo(string)", "ACCNO")

  - 이제 키움증권에 특정 명령을 전송할 때 항상 사용하는 self.k.k의 뜻은 아셔야 합니다.

  - self.k의 k는 앞서 정의한 메타클레스기반 싱글턴을 의미하는 것입니다.

  - self.k의 능력을 이용하여 키움증권에 계좌정보를 요청하겠습니다.

  - 특정 정보 요청 시 kiwoom.dynamicCall을 사용하며, 요청하는 정보는"GetLoginInfo(string)", "ACCNO"입니다.

    (만약 보유계좌 갯수가 알고 싶다면 self.k.kiwoom.dynamicCall("GetLoginInfo(string)", "ACCOUNT_CNT") 라고 하시면 됩니다.)

 

KOA Studio 로그인정보 가져오기
KOA Studio 로그인정보 가져오기

 - 위의 KOA Studio를 살펴보면 요유계좌 목록을 반환하기 위해서 ACCNO를 싸용한다고 되어 있습니다.

 - account_list에 본인이 보유하고 계신 모든 계좌 정보가 입력됩니다.

2. 계좌정보 GUI에 입력하기

 (1) GUI에 ComboBox 만들기

   - ComboBoX를 본인의 GUI에 넣어 주세요.

   - 그리고 boject 이름에 accComboBox을 반드시 입력해 주세요

GUI에 ComboBox 넣기
GUI에 ComboBox 넣기

 (2) ACC_N의 이름을 가지는 ComboBox에 계좌 번호 넣는 코드

  위에서 정의한 코드를 그대로 가져오돌록 하겠습니다.

계좌 정보 ComboBox에 넣기
계좌 정보 ComboBox에 넣기

 - for n in account_list.split(;):

   n에다가 acoount_list에 들어 있는 값을 세미클론(;)으로 구분하여 하나씩 집어 넣는 코드입니다.

   예를 들어 acoount_list에 [1;2;3;4]가 들어 있다면 n에 순차적으로 1, 2, 3, 4의 값이 들어가게 됩니다.

 - self.accComboBox.addItem(n)

   앞서 GUI에서 정의한 accComboBox에 n 함수에 들어 있는 계좌번호를 addItem을 사용하여 하나씩 전시한다.

 

3. 최종화면

아래 콤보박스안에 각자의 계좌번호가 나열된 것을 확인할 수 있습니다. 수고하셨습니다.

최종 GUI 화면
최종 GUI 화면

13강 바로가기 : 계좌평가잔고내역 요청을 위한 KOA Studio에 대하여 알아볼까요?

반응형

.link_tit