더북(TheBook)

이 코드는 API 서버로 삼성전자의 상장일부터 2021년 07월 26일까지 일봉 데이터를 요청합니다. 하지만 응답을 받기까지는 몇 가지 단계가 더 남았습니다.

앞서 설명했듯이 요청을 보냈으면 응답을 수신하는 데 필요한 슬롯을 만들어야 합니다. 이전에 만들었던 _login_slot 함수는 로그인 요청에 대한 응답을 받는 역할을 했고, 지금부터 만들 slot 함수는 TR 요청에 대한 응답을 받는 역할을 합니다. 어느 요청에 어느 slot 함수를 사용하겠다는 설정은 _set_signal_slots 함수에서 수행하기로 한 것을 떠올리기 바랍니다. 그러면 3.6절에서 만든 _set_signal_slots 함수에 TR 요청에 대한 응답 슬롯을 추가해 보겠습니다.

Kiwoom.py

(...)
def _set_signal_slots(self):
    self.OnEventConnect.connect(self._login_slot)

    self.OnReceiveTrData.connect(self._on_receive_tr_data) ------ TR의 응답 결과를 _on_receive_tr_data로 받도록 설정 

self.OnReceiveTrData.connect(self._on_receive_tr_data)는 요청했던 TR 조회가 성공했을 때 _on_receive_tr_data 함수를 호출하겠다는 것을 의미합니다.

여기서도 마찬가지로 KOA에서 제공하는 정보를 토대로 함수의 매개변수를 만들겠습니다. 다시 한 번 말하자면 KOA에서 설명하는 매개변수를 확인해야 하는 이유는 API를 제공하는 키움증권과 제공된 정보를 사용하는 고객 간 일종의 약속이기 때문입니다. 이는 키움증권이 ‘우리 API를 이용하면서 이런 매개변수들을 사용해야 함수가 제대로 동작할 수 있다’고 설명하는 것이기에 우리는 이 내용에 맞게 _on_receive_tr_data 함수의 매개변수를 만들어야 API를 이용할 수 있습니다.

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