2020년 7월 6일 월요일

키움증권 Open API 사용 (기본 정보 조회)


https://toptrader.tistory.com/9 <=여기 설명으로 설치에 도움을 받았습니다.
https://github.com/quantylab/systrader <=이 소스를 바탕으로 예제 코드가 수정되었습니다.
위 게시글을 바탕으로 작성하였으며, 게시자의 허락을 받지 않고 작성되었기 때문에, 중복이되는 내용은 최대한 기록 하지 않았으며, 위 링크에서 확인하도록 바랍니다.


간략하게 정리
0. Open API 서비스 신청하기
    제일 아래쪽 Open API 또는 홈페이지 > 트레이딩 채널 > Open API > 키움 Open API+
    https://www2.kiwoom.com/nkw.templateFrameSet.do?m=m1408000000 (공인인증서 필요)

1. Open API 설치하기
    https://www2.kiwoom.com/nkw.templateFrameSet.do?m=m1408000000

2. 키움증권 모의투자 신청
    1 키움증권 홈페이지

3. KOA Studio 설치하기
    1. KOA StudioSA라는것은 API Set을 미리 확인해 볼 수 있는 도구 
    2. 실행한번 시켜보기 
        1. 실행 후 파일-OpenAPI 접속 명령으로 로그인
        2. 그후에 TR 목록에서 원하는 TR선택 후 속성 정보 입력하고 조회 버튼 
            039490 종목 opt10001 : 주식기본정보 요청 화면


4. Python 개발환경 구축하기
    Anaconda 32bit
    Python 32bit ( 여기에서는 anaconda를 설치하지 않고 테스트 하였습니다. )
        설치후 아래와 같은 batch 파일을 만들어서 사용하였습니다.

set path=C:\Users\USER\AppData\Local\Programs\Python\Python38-32;C:\Users\USER\AppData\Local\Programs\Python\Python38-32\Scripts;%PATH%
cmd

    필요 모듈 설치
        pip install PyQt5 

5. Python 으로 Open API 이용하여 키움증권 로그인 해보기

여기 기본 소스에 마지막 한줄 추가하면 KOA Studio에서 예제로 사용한 기본 정보 조회가 가능합니다.

~ 위쪽 코드 생략 ~

if __name__ == '__main__':
    app = QApplication(sys.argv)
    hts = Kiwoom()

    # login
    if hts.kiwoom_GetConnectState() == 0:
        logger.debug('로그인 시도')
        res = hts.kiwoom_CommConnect()
        logger.debug('로그인 결과: {}'.format(res))
        if res.get('result') != 0:
            print("Login failed")
            sys.exit()

    # something
    pass
    hts.kiwoom_TR_OPT10001_주식기본정보요청("039490")


실행 화면
C:\Users\USER\Documents\python\stock>python logintest.py
2020-07-06 00:23:39 DEBUG    로그인 시도
2020-07-06 00:23:39 DEBUG    초기 요청 준비
2020-07-06 00:23:39 DEBUG    요청 실행: kiwoom_CommConnect () {}

[GetPCIdentity] VER 3.2.0.0  build 2015.8.12

[GetPCIdentity] VER 3.2.0.0  build 2015.8.12
2020-07-06 00:23:49 DEBUG    요청 콜백: kiwoom_OnEventConnect (0,) {}
2020-07-06 00:23:49 DEBUG    로그인 성공
2020-07-06 00:23:49 DEBUG    로그인 결과: {'result': 0}
2020-07-06 00:23:49 DEBUG    초기 요청 준비
2020-07-06 00:23:49 DEBUG    요청 실행: kiwoom_TR_OPT10001_주식기본정보요청 ('039490',) {}
2020-07-06 00:23:49 DEBUG    요청 콜백: kiwoom_OnReceiveTrData ('1234', '주식기본정보', 'OPT10001', '', '0', 0, '', '', '') {}
2020-07-06 00:23:49 DEBUG    주식기본정보: 039490, {'종목명': '키움증권', '현재가': '+85500', '등락율': '+0.35', '거래량': '44175'}





댓글 없음:

댓글 쓰기