이 중에서 필요한 정보만 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