실시간 검색 관련 내용 - newsight78/ABot GitHub Wiki
-
실시간 시세 등록할 종목코드가 없는 경우라면 SetRealReg()함수는 실패할 것입니다. 그리고 SendCondition함수로 실시간 조건검색설정하면 종목편입/이탈시 OnReceiveRealCondition이벤트가 호출되며 종목편입, 종목이탈 여부와 종목코드가 전달됩니다.
-
만약 실시간 조건검색을 요청했으면 종목편입이나 종목이탈 될 때마다 OnReceiveRealContion이벤트가 발생하며 종목코드와 종목이탈인지 종목편입인지 구분값이 전달됩니다. 물론 실시간 종목편입, 이탈이 발생할때만 OnReceiveRealCondition이벤트가 발생합니다.
-
묻고 답한 내용. 문) 실시간 종목이 0개 일때 는 어떻게 되는지를 알고 싶은데요? 실시간 종목이 0개 일때 화면 등록을 하면 어떻게 되는지가 주요 질문 내용이에요... 답) SetRealReg()함수는 아시겠지만 화면번호, 종목코드 리스트 FID리스트 실시간타입값을 인자로 사용해서 종목 실시간 시세를 등록하는데 여기서 화면번호는 실시간 등록 요청을 구별하기 위한 값으로 사용합니다. OnReceiveRealCondition()이벤트 함수는 편입(I), 이탈(D)값이 들어오므로 이 이벤트 함수가 호출될때 편입(I)상태이면 SendCondition()함수를 호출하시되 플래그를 둬서 최초등록여부를 판단하시면 될 것으로 보입니다.
-
실시간 조건검색 요청은 장전 거래가 시작되는 오전 7시30분 이후부터 가능합니다. 그러나 실시간 조건검색 결과는 체결데이터가 내려오는 시점부터 걸러지므로 장시작 후에 수신됩니다. 참고로 예상체결은 실시간 검색대상이 아니므로 예상체결이 수신된다고 해서 실시간 조건검색결과가 수신되지는 않습니다. 정리해서 말씀드리면 장전거래가 시작되는 7시반 이후에 실시간 조건검색을 요청하면 장 시작 후 조건이 일치하는 종목에 한해서 실시간 조건검색결과를 수신할 수 있습니다.
-
키움OpenAPI 이용시 조건검색 조회를 과도하게 요청하는 사용자들이 있어 조건검색 서버에 부하를 일으키는 현상이 발생하고 있어 초당 5회로 조회제한(1초당 시세조회 횟수와 합산합니다.)하고 조건별 1분당 1회로 제한하는 정책이 지난 4월 28일부터 적용되었는데 이 영향은 아닌지 확인바랍니다. (지난 4월 25일 고객공지를 참조하세요.) SendCondition()함수호출시 위 사항에 해당하면 함수호출 실패의미로 0을 리턴하게 됩니다. 만일 이 경우에 해당하면 초당 조회횟수를 조절하셔야 합니다. 참고로 말씀드리면 실시간 조건검색식을 요청했는데 조건검색된 종목수가 100종목을 넘게 되면 실시간 조건검색은 무시됩니다.(영웅문HTS와 동일함) 조건검색 조회횟수 제한을 좀더 설명드리면 다음과 같습니다. 사용자 조건검색식이 10개이며 한번에 이 10개 조건식을 모두 조회처리하는 프로그램이 있으며 조건검색만 시도한다고 가정하고 설명드리면 다음과 같습니다.
첫번째 제한조건 : 1초에 5회만 조회가능 두번째 제한조건 : 조건별 1분당 1회로 제한(실시간 조건검색 수신에는 영향없음)
09:00:00 조회 시작 1번부터 5번 조건식은 조회성공(첫번째 제한조건, 두번째 제한조건 모두 만족) 6번부터 10번 조건식은 조회실패(두번째 제한조건)
09:00:01 조회 재시작(1초후 재조회) 1번부터 5번 조건식은 조회실패(두번째 제한조건) 6번부터 10번 조건식은 조회성공(첫번째 제한조건, 두번째 제한조건 모두 반족) ... ... ...
09:01:00 조회시작 (첫조회 1분후) 1번부터 5번 조건식은 조회성공(첫번째 제한조건, 두번째 제한조건 모두 반족) 6번부터 10번 조건식은 조회실패(첫번째 제한조건)
09:00:01 조회 재시작(1분 1초후 재조회) 1번부터 5번 조건식은 조회실패(두번째 제한조건) 6번부터 10번 조건식은 조회성공(첫번째 제한조건, 두번째 제한조건 모두 반족)