더북(TheBook)

이 중에서 필요한 정보만 GetCommData를 이용하여 얻어 오겠습니다. 얻어 올 항목들은 다음과 같습니다.

종목 번호

종목명

보유 수량

매입가

수익률(%)

현재가

매입 금액

매매 가능 수량

그러면 _on_receive_tr_data 함수에 다음 코드를 추가합니다.

Kiwoom.py

(...)
elif rqname == "opw00018_req": ------ 보유 종목 정보
    for i in range(tr_data_cnt):
        code = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "종목번호")
        code_name = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "종목명")
        quantity = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "보유수량")
        purchase_price = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "매입가")
        return_rate = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "수익률(%)")
        current_price = self.dynamicCall("GetCommData(QString, QString, int, QString", QString", trcode, rqname, i, "현재가")
        total_purchase_price = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "매입금액")
        available_quantity = self.dynamicCall("GetCommData(QString, QString, int, QString", trcode, rqname, i, "매매가능수량")

        code = code.strip()[1:] ------ 데이터 형변환 및 가공
        code_name = code_name.strip()
        quantity = int(quantity)
        purchase_price = int(purchase_price)
        return_rate = float(return_rate)
        current_price = int(current_price)
        total_purchase_price = int(total_purchase_price)
        available_quantity = int(available_quantity)

        self.balance[code] = {
            '종목명': code_name,
            '보유수량': quantity,
            '매입가': purchase_price,
            '수익률': return_rate,
            '현재가': current_price,
            '매입금액': total_purchase_price,
            '매매가능수량': available_quantity
        }

    self.tr_data = self.balance
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.