키움 OpenAPI의 TR OPT10002 (주식거래원요청)을 요청하는 코드를 작성하고 테스트한 내용을 정리합니다.
TR 요청을 위해서는 키움 OpenAPI에 로그인이 되어야 하고 데이터 조회와 처리를 처리할 수 있는 코드가 사전에 작성이 되어야 합니다.
- [키움 OpenAPI] 기본 개발 가이드 ‘로그인 버전처리’ 코드 (in Python)
- [키움 OpenAPI] 기본 개발 가이드 ‘조회와 실시간 데이터 처리’ 코드 (in Python)
OPT10002 (주식거래원요청)
‘KOA StudioSA’ 에서는 아래와 같이 설명하고 있습니다.
[ opt10002 : 주식거래원요청 ]
1. Open API 조회 함수 입력값을 설정합니다.
종목코드 = 전문 조회할 종목코드
SetInputValue("종목코드" , "입력값 1");
2. Open API 조회 함수를 호출해서 전문을 서버로 전송합니다.
CommRqData( "RQName" , "opt10002" , "0" , "화면번호");
Input 정보는 위 KOA 설명에 포함되어 있습니다.
Output 정보는 아래 Config.py의 정보/목록으로 대체하여 기록합니다.
파일 구조
ㄴ Config.py
ㄴ KiwoomAPI.py
ㄴ KiwoomMain.py
Config.py
TR 요청 시, 조회할 OUTPUT 데이터를 정의 합니다.
output_list = {
'OPT10002': ['종목코드',
'종목명',
'현재가',
'등락부호',
'기준가',
'전일대비',
'등락율',
'매도거래원명1',
'매도거래원1',
'매도거래량1',
'매수거래원명1',
'매수거래원1',
'매수거래량1',
'매도거래원명2',
'매도거래원2',
'매도거래량2',
'매수거래원명2',
'매수거래원2',
'매수거래량2',
'매도거래원명3',
'매도거래원3',
'매도거래량3',
'매수거래원명3',
'매수거래원3',
'매수거래량3',
'매도거래원명4',
'매도거래원4',
'매도거래량4',
'매수거래원명4',
'매수거래원4',
'매수거래량4',
'매도거래원명5',
'매도거래원5',
'매도거래량5',
'매수거래원명5',
'매수거래원5',
'매수거래량5',
],
}
KiwoomMain.py
import sys
from PyQt5.QtWidgets import *
import KiwoomAPI
from Config import *
class KiwoonMain:
def __init__(self):
self.kiwoom = KiwoomAPI.KiwoomAPI()
self.kiwoom.CommConnect()
def OPT10002(self):
self.kiwoom.output_list = output_list['OPT10002']
self.kiwoom.SetInputValue("종목코드", "005930")
self.kiwoom.CommRqData("OPT10002", "OPT10002", 0, "0101")
return self.kiwoom.ret_data['OPT10002']
실행
app = QApplication(sys.argv)
api_con = KiwoonMain()
result = api_con.OPT10002()
print(result['Data'][0])
결과
[GetPCIdentity] VER 3.2.0.0 build 2015.8.12
[GetPCIdentity] VER 3.2.0.0 build 2015.8.12
0
0101 OPT10002 OPT10002 0 0
count : 1
{'종목코드': '005930', '종목명': '삼성전자', '현재가': '+77800', '등락부호': '2', '기준가': '73900', '전일대비': '+3900', '등락율': '+5.28', '매도거래원명1': '삼 성', '매도거래원1': '030', '매도거래량1':
'-3762175', '매수거래원명1': '미래대우', '매수거래원1': '005', '매수거래량1': '+3637704', '매도거래원명2': '키움증권', '매도거래원2': '050', '매도거래량2': '-3732348', '매수거래원명2': '키움증권', '매수거
래원2': '050', '매수거래량2': '+3456499', '매도거래원명3': '한 화', '매도거래원3': '021', '매도거래량3': '-2954292', '매수거래원명3': '삼 성', '매수거래원3': '030', '매수거래량3': '+3414871', '매도거래원
명4': 'BNK증권', '매도거래원4': '086', '매도거래량4': '-2683333', '매수거래원명4': '한 화', '매수거래원4': '021', '매수거래량4': '+2936251', '매도거래원명5': '미래대우', '매도거래원5': '005', '매도거래량5': '-2447367', '매수거래원명5': 'BNK증권', '매수거래원5': '086', '매수거래량5': '+2672204'}
연관 포스트
[키움API] 기본 개발 가이드 내용 및 샘플 코드 (in Python) / OpenAPI 오류코드
[키움API] TR 목록 및 샘플 코드 (in Python)
1 thought on “[키움 OpenAPI] TR OPT10002 (주식거래원요청) 코드 in Python”