더북(TheBook)

Kiwoom.py

(...)
    def _on_receive_real_data(self, s_code, real_type, real_data): ------ 실시간 데이터 수신
        if real_type == "장시작시간":
            pass

        elif real_type == "주식체결":
            signed_at = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid("체결시간"))

            close = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid("현재가"))
            close = abs(int(close))

            high = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('고가'))
            high = abs(int(high))

            open = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('시가'))
            open = abs(int(open))

            low = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('저가'))
            low = abs(int(low))

            top_priority_ask = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('(최우선)매도호가'))
            top_priority_ask = abs(int(top_priority_ask))

            top_priority_bid = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('(최우선)매수호가'))
            top_priority_bid = abs(int(top_priority_bid))

            accum_volume = self.dynamicCall("GetCommRealData(QString, int)", s_code, get_fid('누적거래량'))
            accum_volume = abs(int(accum_volume))

            print(s_code, signed_at, close, high, open, low, top_priority_ask, top_priority_bid, accum_volume) ------ 5장에서는 삭제할 코드(출력부에 너무 많은 데이터가 나오기 때문에 여기서만 사용)

            if s_code not in self.universe_realtime_transaction_info: ------ universe_realtime_transaction_info 딕셔너리에 종목 코드가 키 값으로 존재하지 않으면 생성(해당 종목 실시간 데이터를 최초로 수신할 때)
                self.universe_realtime_transaction_info.update({s_code: {}})

            self.universe_realtime_transaction_info[s_code].update({ ------ 최초 수신 이후 계속 수신되는 데이터는 update를 이용해서 값 갱신
                "체결시간": signed_at,
                "시가": open,
                "고가": high,
                "저가": low,
                "현재가": close,
                "(최우선)매도호가": top_priority_ask,
                "(최우선)매수호가": top_priority_bid,
                "누적거래량": accum_volume
            })
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.