반응형


      [조회처리(조회요청)]

      키움OpenAPI가 제공하는 데이터중에서 원하는 데이터를 서버에 요청해서 가져오는 것을 말하는데 TR(Transaction)단위로 처리됩니다.

      TR이란 서버와 데이터를 주고받을때 정의한 약속된 규약이며 입력부분(Input)과 데이터를 수신하는 출력부분(Output)을 가지고 있습니다.

      입력부분은 요청하는 데이터에 따라 입력갯수(입력항목)가 달라지며 출력부분은 보통 데이터갯수(출력항목)가 여러개로 구성됩니다.

      

      출력부분은 출력항목이 한번씩만 전달되는 싱글데이터와 복수로 전달되는 멀티데이터가 있고 TR에 따라 싱글데이터(또는 멀티데이터)만

      있거나 둘다 있는 경우도 있습니다.

      키움OpenAPI가 제공하는 TR은 KOA Studio의 TR목록 탭에서 찾아볼 수 있고 각 TR별로 조회도 가능합니다.

      OPT10070 : 당일주요거래원요청 - 싱글데이터

      OPT10081 : 주식일봉차트조회요청 - 싱글 + 멀티데이터

      

      [조회제한]

      키움OpenAPI에서 시세조회는 1초당 5회로 제한되는데 관심종목 조회와 조건검색 조회 횟수가 합산됩니다.

      가령 1초 동안 시세조회2회 관심종목 1회 조건검색 2회 순서로 조회를 했다면 모두 합쳐서 5회이므로 모두 조회성공하겠지만 

      조건검색을 3회 조회하면 맨 마지막 조건검색 조회는 실패하게 됩니다.

      

      [연속조회]

      TR별로 한번에 전달할 수 있는 데이터 갯수가 정해져 있습니다. 그런데 이 갯수보다 데이터가 많을때 연속조회를 써서 모든 데이터를 

      조회하게 됩니다.연속조회는 모든 조회처리에 적용되는 공통사항임을 알려드립니다.

      연속조회하는 방법은 CommRqData()에서 인자값만 바꿔주면 비교적 쉽게 처리할 수 있습니다.

      

      아래처럼 설정해서 맨 처음 조회했을때 추가로 조회할 데이터가 있다면

      axKHOpenAPI.CommRqData("일별데이터조회", "OPT10086" , 0, "0001");

      OnReceiveTRData()이벤트 함수에서 5번째 인자값(sPrevNext)에 "2"가 전달됩니다.

      그렇다면 연속조회하실때는 CommRqData("일별데이터조회", "OPT10086" , 2, "0001"); 3번째 인자값을 2로 설정해서 조회하시면 됩니다.

      정리하면 다음과 같습니다.

      CommRqData("일별데이터조회", "OPT10086" , 0, "0001"); // 처음조회시 혹은 연속데이터가 없을때

      CommRqData("일별데이터조회", "OPT10086" , 2, "0001"); // 연속조회시

      

      [실시간 데이터]

      조회요청이 성공하면 관련 실시간 데이터를 서버에서 자동으로 OnReceiveRealData()이벤트 함수로 전달해줍니다.

      키움OpenAPI에서는 실시간 데이터가 전달될때 실시간 타입단위로 전달됩니다.

      여기서 실시간 타입이란 KOA Studio의 실시간 탭의 실시간 목록에서 Real Type에 주식시세에서 종목프로그램매매까지 나열되어 있는데

      이들 하나하나를 실시간 타입(Real Type)이라고 부릅니다.

      이 실시간 타입은 관련있는 FID를 모아놓은 것입니다.

      예를 들어 실시간 타입 "주식시세"가 전달된다고 하면 현재가 부터 하한가발생시간까지 전달되는 것이며 실시간 타입 "주식체결"가 

      전달될때는 체결시간부터 하한가발생시간까지가 전달되는 것입니다.


      



반응형

+ Recent posts