[키움 OpenAPI] TR OPT10030 (당일거래량상위요청) 코드 in Python




키움 OpenAPI의 TR OPT10030 (당일거래량상위요청)을 요청하는 코드를 작성하고 테스트한 내용을 정리합니다.


TR 요청을 위해서는 키움 OpenAPI에 로그인이 되어야 하고 데이터 조회와 처리를 처리할 수 있는 코드가 사전에 작성이 되어야 합니다.


OPT10030 (당일거래량상위요청)

‘KOA StudioSA’ 에서는 아래와 같이 설명하고 있습니다.

[ opt10030 : 당일거래량상위요청 ]

1. Open API 조회 함수 입력값을 설정합니다.
	시장구분 = 000:전체, 001:코스피, 101:코스닥
	SetInputValue("시장구분"	,  "입력값 1");

	정렬구분 = 1:거래량, 2:거래회전율, 3:거래대금
	SetInputValue("정렬구분"	,  "입력값 2");

	관리종목포함 = 0:관리종목 포함, 1:관리종목 미포함, 3:우선주제외, 11:정리매매종목제외, 4:관리종목, 우선주제외, 5:증100제외, 6:증100마나보기, 13:증60만보기, 12:증50만보기, 7:증40만보기, 8:증30만보기, 9:증20만보기, 14:ETF제외, 15:스팩제외, 16:ETF+ETN제외
	SetInputValue("관리종목포함"	,  "입력값 3");

	신용구분 = 0:전체조회, 9:신용융자전체, 1:신용융자A군, 2:신용융자B군, 3:신용융자C군, 4:신용융자D군, 8:신용대주
	SetInputValue("신용구분"	,  "입력값 4");

	거래량구분 = 0:전체조회, 5:5천주이상, 10:1만주이상, 50:5만주이상, 100:10만주이상, 200:20만주이상, 300:30만주이상, 500:500만주이상, 1000:백만주이상
	SetInputValue("거래량구분"	,  "입력값 5");

	가격구분 = 0:전체조회, 1:1천원미만, 2:1천원이상, 3:1천원~2천원, 4:2천원~5천원, 5:5천원이상, 6:5천원~1만원, 10:1만원미만, 7:1만원이상, 8:5만원이상, 9:10만원이상
	SetInputValue("가격구분"	,  "입력값 6");

	거래대금구분 = 0:전체조회, 1:1천만원이상, 3:3천만원이상, 4:5천만원이상, 10:1억원이상, 30:3억원이상, 50:5억원이상, 100:10억원이상, 300:30억원이상, 500:50억원이상, 1000:100억원이상, 3000:300억원이상, 5000:500억원이상
	SetInputValue("거래대금구분"	,  "입력값 7");

	장운영구분 = 0:전체조회, 1:장중, 2:장전시간외, 3:장후시간외
	SetInputValue("장운영구분"	,  "입력값 8");


2. Open API 조회 함수를 호출해서 전문을 서버로 전송합니다.
	CommRqData( "RQName"	,  "opt10030"	,  "0"	,  "화면번호"); 

Input 정보는 위 KOA 설명에 포함되어 있습니다.

Output 정보는 아래 Config.py의 정보/목록으로 대체하여 기록합니다.


파일 구조

ㄴ Config.py
ㄴ KiwoomAPI.py
ㄴ KiwoomMain.py

Config.py

TR 요청 시, 조회할 OUTPUT 데이터를 정의 합니다.

output_list = {
    'OPT10030': ['종목코드',
                 '종목명',
                 '현재가',
                 '전일대비기호',
                 '전일대비',
                 '등락률',
                 '거래량',
                 '전일비',
                 '거래회전율',
                 '거래금액'
                 ],
}

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 OPT10030(self):
        self.kiwoom.output_list = output_list['OPT10030']

        self.kiwoom.SetInputValue("시장구분", "0")
        self.kiwoom.CommRqData("OPT10030", "OPT10030", 0, "0101")

        return self.kiwoom.ret_data['OPT10030']

실행

app = QApplication(sys.argv)
api_con = KiwoonMain()

result = api_con.OPT10030()
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 OPT10030 OPT10030  2 0   
count :  100
{'종목코드': '252670', '종목명': 'KODEX 200선물인버스2X', '현재가': '-2750', '전일대비기호': '5', '전일대비': '-120', '등락률': '-4.18', '거래량': '252984898', '전일비': '-92.89', '거래회전율': '+32.86', '거래금액': '705208'}

연관 포스트

[키움API] 기본 개발 가이드 내용 및 샘플 코드 (in Python) / OpenAPI 오류코드

[키움API] TR 목록 및 샘플 코드 (in Python)




1 thought on “[키움 OpenAPI] TR OPT10030 (당일거래량상위요청) 코드 in Python”

Leave a Comment