본문 바로가기

키움증권 자동매매를 위한 pykiwoom 설치하기

감성적인돌멩이 2024. 6. 11.

키움-pykiwoom-설치
키움-pykiwoom-설치

이번 포스팅은 키움증권 자동매매를 위한 파이썬 패키지 pykiwoom을 설치하고 예제를 통해 삼성전자 현재가 정보 및 계좌의 예수금을 조회해 보겠습니다. 테스트를 위해서 사전 준비로 키움증권 OpenAPI+와 파이썬이 설치되어 있어야 합니다.

[ 키움증권 OpenAPI+ 설치 ]

 

키움증권 자동매매를 위한 OpenAPI+ 설치하기

파이썬 와 Chatgpt를 활용한 주식 자동매매 프로그램을 만들기 위해 키움증권의 OpenAPI+, pykiwoom를 사용합니다. 키움증권의 OpenAPI+ 는 주식 거래 및 데이터 수집을 자동화하는 데 사용되는 강력한 도

emotionalstone.co.kr

[ 파이썬 설치 ]

 

파이썬 설치부터 VS Code 활용까지: 초보자를 위한 가이드

파이썬 설치부터 VS Code 활용까지: 초보자를 위한 가이드파이썬 설치부터 VS Code 활용까지를 초보자를 위한 가이드로 자세히 다루어보겠습니다. 프로그래밍에 관심을 가지고 있는데 시작하기가

emotionalstone.co.kr

키움증권 pykiwoom 설치

pykiwoom을 설치하려면 터미널(명령 프롬프트)에서 다음 명령어를 입력합니다.

pip install pykiwoom

pykiwoom 설치 시 pywin32, PyQt5-Qt5, PyQt5-sip, pyqt5, pykiwoom 패키지가 설치됩니다. 

설치가 완료되면 PyKiwoom을 사용하여 키움증권 OpenAPI+에 로그인하고 간단한 API 호출을 할 수 있습니다. 다음은 PyKiwoom을 사용하여 삼성전자 현재가를 조회하는 간단한 예제 코드입니다.

 

예제. 삼성전자 현재가 조회

from pykiwoom.kiwoom import Kiwoom

# Kiwoom 객체 생성
kiwoom = Kiwoom()

# 키움증권 OpenAPI+ 로그인
kiwoom.CommConnect(block=True)

# 로그인 정보 확인
account_cnt = kiwoom.GetLoginInfo("ACCOUNT_CNT")
accounts = kiwoom.GetLoginInfo("ACCNO")

print(f"계좌 개수: {account_cnt}")
print(f"계좌 번호: {accounts}")

# 종목 코드 리스트 가져오기
kospi = kiwoom.GetCodeListByMarket('0')  # 코스피
kosdaq = kiwoom.GetCodeListByMarket('10')  # 코스닥

print(f"코스피 종목 코드: {kospi}")
print(f"코스닥 종목 코드: {kosdaq}")

# 특정 종목의 현재가 정보 가져오기
code = "005930"  # 삼성전자 종목 코드
df = kiwoom.block_request("opt10001",
                          종목코드=code,
                          output="주식기본정보",
                          next=0)
print(df)

위의 코드에서 Kiwoom 객체를 생성하고 CommConnect 메서드를 호출하여 키움증권 OpenAPI+에 로그인합니다. 로그인 후 GetLoginInfo 메서드를 사용하여 계좌 개수와 계좌 번호를 확인할 수 있습니다.

GetCodeListByMarket 메서드를 사용하여 코스피와 코스닥의 종목 코드를 가져오고, block_request 메서드를 사용하여 특정 종목의 현재가 정보를 가져옵니다.

문제는 여기서 발생하였습니다. 'qaxbase::setcontrol: requested control khopenapi.khopenapictrl.1 could not be instantiated' 에러가 발생하였습니다.

Error-발생
Error-발생

원인은 2가지로 확인되어 한 개씩 확인해 보았습니다.

1. OpenAPI+ 접속 여부 확인 (정상)

OpenAPI+-접속
로그인-정보-입력
로그인-정보-입력
삼성전자-조회
삼성전자-조회

2. 파이썬 실행 버전 32bit 확인 (문제)

기존 파이썬 실행 버전은 python-3.12.4 (64bit) 였습니다. pykiwoom 패키지가 32bit만 지원하여 파이썬을 python-3.8.8 (32bit)로 다운그레이드하였습니다. 다시 예제 파일을 실행하니 정상 동작하였습니다.

로그인
로그인
삼성전자-조회-예제
삼성전자-정상-조회

위와 같이 삼성전자 종목 코드를 통해서 삼성전자 현재가 정보를 출력하였습니다. 키움 pykiwoom 패키지 사용시, 항상 OpenAPI+를 통해 입력 파라미터를 확인하고 파이썬 코드로 구현하기를 추천드립니다.

댓글