주식자동매매 17강. 계좌평가잔고내역요청(5), 서버에 내역 요청하기(opw00018)
본문 바로가기

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

주식자동매매 17강. 계좌평가잔고내역요청(5), 서버에 내역 요청하기(opw00018)

반응형

앞서 14강 스레드 구성부터 16강 종목가져오기까지 공부하였습니다. 이번 강의에서는 키움서버에 계좌평가잔고내역을 요청하는 명령을 코딩하도록 하겠습니다.

 

13강에서 계좌평가잔고내역요청을 위해 KOA Studio를 어떻게 사용하는지 아주 자세히 설명되어 있기 때문에 반드시 선행학습을 하시고 17강을 보시길 추천 드립니다.

 

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

opw00018을 이용하여 계좌평가잔고내역 요청하기

계좌평가잔고내역 요청하기
계좌평가잔고내역 요청하기

코드 확인하기

def detail_acount_mystock(self, sPrevNext="0"):

    print("계좌평가잔고내역 조회")
    account = self.parent.accComboBox.currentText()  # 콤보박스 안에서 가져오는 부분
    self.account_num = account
    print("최종 선택 계좌는 %s" % self.account_num)

    self.k.kiwoom.dynamicCall("SetInputValue(String, String)", "계좌번호", account)
    self.k.kiwoom.dynamicCall("SetInputValue(String, String)", "비밀번호", "0000")  # 모의투자 0000
    self.k.kiwoom.dynamicCall("SetInputValue(String, String)", "비밀번호입력매체구분", "00")
    self.k.kiwoom.dynamicCall("SetInputValue(String, String)", "조회구분", "2")
    self.k.kiwoom.dynamicCall("CommRqData(String, String, int, String)", "계좌평가잔고내역요청", "opw00018", sPrevNext, self.Acc_Screen)
    self.detail_account_info_event_loop.exec_()

self.detail_acount_mystock() : detail_acount_mystock이라는 함수를 호출하는 기능입니다.

sPrevNext="0" : 키움서버에서 조회할 데이터가 30개 이상이면 2를 반환하고 그 이하면 0을 반환합니다.

◈ account = self.parent.accComboBox.currentText() : 앞서 GUI에 일력된 계좌번호를 account에 상속하기 위한 코드입니다. parent를 이용하여 부모 GUI에 접근할 수 있는 권한을 할당 받았으며, accComboBox에 입력된 데이터를 불러오기 위해 currentText()를 사용합니다. 이 코드를 완성하면 account에 우리 계좌번호가 입력됩니다.

◈ self.account_num = account : Qthread_1 스크립트 내 어디에서든 계좌번호를 조회할 수 있도록 self를 붙인 self.account_num에 저장합니다.

◈ self.k를 이용해 키움 함수(클레스)를 사용할 수 있는 권한을 받았으며, dynamicCall 함수를 이용해 키움에 명령을 전송합니다. 이때 13강의 KOA Studio에 적힌거와 동일하게 SetInputValue를 설정합니다. 모든 입력/반환 값을 string 구조 입니다. Qstring이 되어도 무방합니다.

 

KOA Studio 계좌평가잔고내역요청
KOA Studio 계좌평가잔고내역요청

◈ 계좌번호는 저희가 저장한 self.account_num을 입력하시고, 비밀번호는 0000, 매체구분은 00, 조회구분은 개별입니다. 

◈ 조회 함수를 서버로 전송하기 위해 CommRqData를 사용하고 "RQName"은 본인이 하고싶은 값을, 다음으로 opw00018을 입력하시고 처음 sPrevNext는 0을 입력합니다(차 후 30개 이상의 데이터가 있을 경우 2가 입력됩니다). 화면번호는 16강에서 설명드린 1000을 넣습니다.

◈ detail_account_event_loop.exec() : 계좌평가잔고내역요청을 키움 서버로 전송한 후 모든 처리가 완성될 때 까지 다음 코드가 진행되지 않도록 막아주는 이벤트 루프 입니다.

반응형

다음 강의에서는 키움 서버에서 보내온 계좌평가잔고내역을 저희 컴퓨터에 받아 보도록 하겠습니다. 15강에서 설명드린 Tr 슬롯에 모든 데이터를 저장할 예정입니다.

 

18강 바로가기 : 싱글데이터 받아오기

반응형

.link_tit