[키움 OpenAPI] TR OPT10001 (주식기본정보요청) 코드 in Python




키움 OpenAPI의 TR OPT10001 (주식기본정보요청)을 요청하는 코드를 작성하고 테스트한 내용을 정리합니다.


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


OPT10001 (주식기본정보요청)

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

[ opt10001 : 주식기본정보요청 ]

1. Open API 조회 함수 입력값을 설정합니다.
	종목코드 = 전문 조회할 종목코드
	SetInputValue("종목코드"	,  "입력값 1");


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

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

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


파일 구조

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

Config.py

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

output_list = {
    'OPT10001': ['종목코드',
                 '종목명',
                 '결산월',
                 '액면가',
                 '자본금',
                 '상장주식',
                 '신용비율',
                 '연중최고',
                 '시가총액',
                 '시가총액비중',
                 '외인소진률',
                 '대용가'
                 'PER',
                 'EPS',
                 'ROE',
                 'PBR',
                 'EV',
                 'BPS',
                 '매출액',
                 '영업이익',
                 '당기순이익',
                 '250최고',
                 '250최저',
                 '시가',
                 '고가',
                 '저가',
                 '상한가',
                 '하한가',
                 '기준가',
                 '예상체결가',
                 '예상체결수량',
                 '250최고가일',
                 '250최고가대비율',
                 '250최저가일',
                 '250최저가대비율',
                 '현재가',
                 '대비기호',
                 '전일대비',
                 '등락율',
                 '거래량',
                 '거래대비',
                 '액면가단위',
                 '유통주식',
                 '유통비율',
                 ],
}

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

        self.kiwoom.SetInputValue("종목코드", "005930")
        self.kiwoom.CommRqData("OPT10001", "OPT10001", 0, "0101")

        return self.kiwoom.ret_data['OPT10001']

실행

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

result = api_con.OPT10001()
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 OPT10001 OPT10001  0 0
count :  0
{'종목코드': '005930', '종목명': '삼성전자', '결산월': '12', '액면가': '100', '자본금': '7780', '상장주식': '5969783', '신용비율': '+0.07', '연중최고': '+78800', '시가총액': '4644491', '시가총액비중': '', 
'외인소진률': '+55.89', '대용가PER': '', 'EPS': '3166', 'ROE': '8.7', 'PBR': '2.07', 'EV': '6.52', 'BPS': '37528', '매출액': '2304009', '영업이익': '277685', '당기순이익': '217389', '250최고': '+78800', '250최저': '-42300', '시가': '+74100', '고가': '+78800', '저가': '+74000', '상한가': '+96000', '하한가': '-51800', '기준가': '73900', '예상체결가': '-0', '예상체결수량': '0', '250최고가일': '20201224', '250 
최고가대비율': '-1.27', '250최저가일': '20200319', '250최저가대비율': '+83.92', '현재가': '+77800', '대비기호': '2', '전일대비': '+3900', '등락율': '+5.28', '거래량': '32502870', '거래대비': '+167.44', '액
면가단위': '원', '유통주식': '4704966', '유통비율': '78.8'}

연관 포스트

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

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




4 thoughts on “[키움 OpenAPI] TR OPT10001 (주식기본정보요청) 코드 in Python”

    • 안녕하세요 저도 ret_data 값을 못받아와서 KiwoomAPI.py 소스를 찾고있는데
      혹시 찾으셨나여?

      응답

Leave a Comment