체결 정보를 수신하면 호출되는 함수가 _on_receive_real_data고 그 안에서 데이터를 얻어 올 때는 GetCommRealData를 사용합니다. 어느 종목의 데이터를 얻어 올지는 종목 코드를 의미하는 s_code를 매개변수로 전달하여 결정되며, 이 값은 프로그래머가 정한 것이 아니라 _on_receive_real_data 함수가 호출될 때 전달받은 매개변수 s_code 값 그대로입니다. (set_real_reg에서 체결 정보를 수신하기로 등록한 종목들의 데이터를 얻어 올 수 있습니다. set_real_reg에서 등록하지 않았던 종목들은 _on_receive_real_data에서도 체결 정보를 수신할 수 없습니다.)
get_fid() 함수는 const.py 파일에서 ‘체결시간, 현재가’ 등 fid를 조회합니다. GetCommRealData를 통해 데이터를 수신할 때 조회하고자 하는 항목 이름을 한글로 전달하는 것이 아니라 fid 값을 전달해야 합니다. 따라서 우리가 알고 싶은 항목 이름이 어느 fid와 연결되어 있는지 조회하는 get_fid() 함수가 필요하며, 이 함수는 const.py 파일에 작성되어 있습니다.
코드를 간단히 살펴보면 ‘fid-항목이름’을 저장해 둔 딕셔너리에서 매개변수로 전달받은 항목 이름이 있는지 확인하고, 전달받은 항목 이름이 있으면 fid 값을 반환합니다.
const.py
(...)
def get_fid(search_value):
keys = [key for key, value in FID_CODES.items() if value == search_value]
return keys[0]