더북(TheBook)

따라서 종목 코드(s_code)와 조회하고 싶은 항목의 fidself.dynamicCall에 전달하면 응답으로 해당 종목의 실시간 데이터를 얻어 옵니다. 예를 들어 다음 코드는 get_fid 함수를 사용하여 ‘체결시간’의 fid를 찾아 전달하므로 ‘체결시간’을 얻어 와 signed_at 변수에 저장합니다.

signed_at = self.dynamicCall("GetCommRealData(Qstring, int)", s_code, get_fid("체결시간"))

이처럼 ‘주식체결’ 부분 아래로 이어지는 코드는 같은 방법으로 조회할 항목들을 얻어 온 후 미리 만들어 놓은 self.universe_realtime_transaction_info 딕셔너리에 저장합니다. 눈여겨볼 점은 주문, 잔고 조회 후 order, balance 딕셔너리에 값을 할당했던 방식과 달리 체결 데이터는 프로그램 실행 동안 계속해서 갱신된다는 의미의 update를 이용하여 값을 저장했다는 것입니다.

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