IT쟁이 블로그
스파르타 코딩클럽 주식자동매매 종합반 - 3주차 본문
3주차 목표: 키움 API 실습을 통해 API 사용법 습득
1) KOA Studio
- 키움 API 사용 설명을 위한 실행파일
- 다운로드(Link)
- KOA Studio 실행 전에 Visual C++ 2010 재배포 가능 패키지 다운로드 (Link)
-> vcredist_x86.exe 선택 후 설치
- KOA Studio 실행 후 '개발 가이드' 학습
-> 각 항목별 '기본설명', '기본동작', '관련함수'가 분류되어 있고, 클릭 시 각 항목 별 설명이 가운데 창에 나옴
2) 키움 API 기초
- 키움 API는 일반 함수와 이벤트 함수로 구성
- 일반 함수: 호출 시 바로 반환 값을 받을 수 있는 함수, 키움서버에 데이터를 전송하지 않음
- 이벤트 함수: 호출 시 다른 함수에서 결과를 받게 되는 함수, 키움서버에 데이터를 전송
모든 이벤트 함수는 비동기 방식(데이터 가공이 끝나는대로 키움서버에서 응답 전송)
=> 요청-응답이 순서대로 일어나게 하기 위해 키움 API 비동기 함수 데코레이터인 SyncRequestDecorator 를 함수 단위로 설정하여 사용함.
3) 키움 API 를 이용한 로그인
- commConnect() 를 이용하여 로그인을 시도하고, GetLoginInfo() 를 통해 로그인 성공 시까지 대기
※ GetConnectState()는 단순 서버 접속을 뜻하므로 로그인 성공여부 파악이 안됨.
4) 키움 API 를 이용한 주식 기본정보 가져오기
- 데이터를 요청하는 TR(Transaction) 으로 SetInputValue() → CommRqData() → [이벤트] OnReceiveTrData() 을 사용
- KOA Studio에서 관련 함수를 사용하여 작성
5) 키움 API 를 이용한 조건식 결과 가져오기
- 키움 HTS(Home Traiding System)에서 먼저 조건식을 생성(조건검색, 0150)
- GetConditionLoad() - 사용자 조건검색 목록을 요청
- GetConditionNameList() - 조건식 고유번호와 조건식 이름 리스트 요청
- SendCondition() - 조건검색결과 요청
- [이벤트] OnReceiveTrCondition() - 조검검색결과 응답
6) 키움 API 를 이용한 여러 주식종목에 대한 정보를 한 번에 가져오기
- CommKwRqData() - 한 번에 100종목까지 조회할 수 있는 복수종목 조회함수
- GetRepeatCnt() - OnReceiveTRData() 안에서 복수종목의 갯수를 얻는 함수