기존 Xing Api에 비하여 Open Api가 사용하기 간편합니다. 우선 32bit cuda 설치할 필요가 없는 것이 엄청난 장점이고요. 그외 코드가 간단하기 때문에 앞으로는 Open API를 주로 사용할 듯 합니다.

 

이번에는 Open API를 이용하여 선물 tick 데이터를 받는 방법에 관하여 정리합니다. 

간단하게 생각하고 개발을 시작했는데, tick 데이터를 받는 API에 버그가 있어서 회피 코드 만들고 확인하느라 시간이 좀 많이 걸렸습니다. API 버그는 이전 글 참고하세요.

 

Xing API도 마찬가지지만 Open API도 10분 최대 qeury는 200회 횟수 제한이 있습니다. 문제는 tick 데이터는 200회 이상 받아야 하는 점인데요. 10분 기다렸다가 남은 부분 받으면 되지만 10분 기다리는 것이 아까운 것 같아서 약간의 편법을 동원했습니다. 다시 실행하는 경우에는 다시 10분에 200회 다운이 가능하다는 점을 활용하여 200회 query 후 종료한 후 다시 실행하는 방식을 사용합니다.

 

다시 실행할 때 이전에 받던 시간 다음부터 받아야하기 때문에 과거 정보가 필요합니다. 이것은 실행 중에  생성했다가 삭제하므로 신경쓰지 않으셔도 됩니다.

그래서 download 프로그램을 2번 연속으로 실행하여야 하므로 프로그램에서 알려주는 메세지에 따라서 진행하시면 됩니다. python이 없으시다면 python 부터 설치하세요.

 

OpenAPI를 이용하기 위해서는 key를 생성해야합니다. 아래 글은 꿈에님의 글에서 캡쳐해왔습니다.

 

KEY를 발급받으셨다고 가정하고 사용방법을 설명합니다.

 

우선 아래 깃허브에서 파일 두개를 다운 받은 후 다음의 절차대로 실행하시면 됩니다.

 

1. pip install websockets

 

2. tick-down.py 파일을 열어서 본인의 KEY 정보 추가

    APP_KEY = "본인의 key"
    SECRET_KEY = "본인의 sec key"

 

3. down하고자 하는 일자와 ticker(참고로 선물 ticker는 mts에서 선물을 클릭해보면 나옵니다.)

    date   = '20240125'
    ticker = '101V3000'

4. tick-download.py 실행

   python tick-download.py
   한번 더 실행하라는 메세지가 나오면 "위 화살표"를 눌러서 한번 더 실행


5. download 끝났으면 tick-download .py 실행
   python tick-download.py


6. down 받은 tick data는 future_tick 폴더에 있음

 

실행화면입니다.

tick-down.py 첫 번째 실행

 

두 번째 실행

 

tick-merge 실행

 

사용하기 최대한 간단하게 만들었으니, 사용 중 문제가 생기면 댓글 달아주세요. 바로 조치하도록 하겠습니다.

 

그리고 중간에 download받은 각각의 파일은 future_tick_seq 폴더에 기록이 되는데 계속 파일이 쌓입니다. 주기적으로 들어가셔서 지워주세요.

 

merge된 최종 tick 데이타는 future_tick 폴더에 차곡차곡 쌓입니다.

 

Ebest API 오류로 우여곡절을 겪었으나 코드가 완성이 되어서 기쁩니다. 그 과정에 많은 도움을 주신 꾸준님과 OpenAPI 샘플을 공유해주신 꿈에님께도 감사드립니다. 

 

소스코드가 있는 곳

https://github.com/multizone-quant/api_ex/tree/main

 

 

반응형

설정

트랙백

댓글