더북(TheBook)

_on_receive_tr_data는 모든 TR에 대한 응답을 받을 수 있는 함수이기에 어느 TR에 대한 응답을 받아 왔는지 알 수 있도록 첫 줄에 print 함수를 사용하여 출력되도록 했습니다. 응답을 수신할 때마다 함수 첫 줄에 print 문이 호출되면서 화면 번호(screen_no), 사용자 구분명(rqname), TR 이름(trcode)이 출력됩니다.

이후 tr_data_cnt에 저장되는 값은 현재 호출한 TR의 응답 개수를 의미하며, 이 개수만큼 반복하여 데이터를 가져올 수 있습니다.

다음 줄의 if 문은 함수에 전달되는 next 값으로 더 받아 올 값이 있는지 없는지 확인합니다. next 값이 2self.has_next_tr_dataTrue로 저장하여 다음 번 호출이 필요함을 알립니다. 예를 들어 SK하이닉스(00060)의 일봉을 조회하면 첫 번째 호출에서 600일 치 데이터를 얻어 옵니다. 하지만 SK하이닉스는 상장한 지 20년이 넘은 종목으로 600개를 훨씬 넘는 일봉 데이터를 가지고 있습니다. 그러므로 현재 받아 온 일봉 개수 600이 tr_data_cnt 변수에 저장되고, 앞으로도 받아 올 데이터가 있으므로 next에는 2가 전달됩니다.

이어서 TR별로 데이터를 가져오는 코드까지 추가해 보겠습니다.

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