a package for hanlding Kiwoom OPEN API+ ActiveX Control with python
Project description
Kiwoom API Hanlder
키움증권 Open API+ ActiveX Control을 Python에서 사용할 수 있도록 만든 package입니다.
Installation
# easy install with pip
pip install kiwoom_api_handler
or
# You can check the latest sources with the command
git clone git clone https://github.com/DonghyungKo/kiwoom_api_handler.git
Requirements
1. python 3.6 or higher (32bit)
키움증권 OPEN API+는 32bit 환경에서만 실행 가능하므로, 기존 64bit 환경을 이용하는 경우에는 32bit 가상환경을 생성하여야 합니다.
# Anaconda Prompt에서 32bit 가상환경을 생성하는 방법
# 1. 관리자 권한으로 Anaconda Prompt를 실행
set CONDA_FORCE_32BIT=1
conda create -n py36_32 python=3.6 anaconda
# 설치 후
conda activate py36_32
2. 필수 패키지 설치
pip install -r requirements.txt
3. Kiwoom API+ 다운로드 및 자동 로그인 설정
kiwoom_api_handler.api.Kiwoom
키움증권 OPEN API+ ActiveX Control의 함수와 이벤트를 관리하는 class입니다.
데이터 수신 및 주문집행과 관련된 클래스의 생성자의 매개변수로 Kiwoom 클래스의 instance를 받습니다.
kiwoom_api_handler.api.DataFeeder
Data 수신과 관련된 기능을 담당하는 class 입니다. 생성자의 매개변수로 Kiwoom 인스턴스(instance)를 받습니다.
현재까지 요청 가능한 TR 목록
TR과 관련된 자세한 사항은 키움증권 공식 OPEN API+ 개발 문서 혹은 KOA StudioSA를 참조하시길 바랍니다.
OPT10004 : 주식호가요청
OPT10005 : 주식일주월시분요청
OPT10059 : 종목별투자자기관별요청
OPT10074 : 일자별실현손익요청
OPT10075 : 실시간미체결요청
OPT10080 : 주식분봉차트조회요청
OPTKWFID : 관심종목정보요청
OPW00001 : 예수금상세현황요청
OPW00004 : 계좌평가잔고내역요청
OPW00007 : 계좌별주문체결내역상세요청
Test Code
import sys
from PyQt5.QtWidgets import QApplication
from kiwoom_api_handler.api import Kiwoom, DataFeeder
if __name__ == "__main__":
app = QApplication(sys.argv)
kiwoom = Kiwoom() # Kiwoom 인스턴스 생성
kiwoom.commConnect() # API 접속
feeder = DataFeeder(kiwoom)
code = "005930" # 삼성전자
print(feeder.getAccNo()) # 계좌번호 요청
print(feeder.getOPT10004(code)) #주식호가요청
print(feeder.getOPT10005(code)) #주식일주월시분요청
kiwoom_api_handler.api.Executor
주문 정보(order specification) 생성 및 제출과 관련된 기능을 담당하는 class입니다. 생성자의 매개변수로 Kiwoom 인스턴스(instance)를 받습니다.
Test Code
import sys
from PyQt5.QtWidgets import QApplication
from kiwoom_api_handler.api import Kiwoom, DataFeeder, Executor
if __name__ == "__main__":
app = QApplication(sys.argv)
kiwoom = Kiwoom() # Kiwoom 인스턴스 생성
kiwoom.commConnect() # API 접속
feeder = DataFeeder(kiwoom)
executor = Executor(kiwoom)
accNo = feeder.getAccNo()
code = "005930" # 삼성전자
orderSpecDict = executor.createOrderSpec(
rqName="test",
scrNo="0000",
accNo=accNo,
orderType=1, # 신규매수
code=code,
qty=1,
price=0, # 시장가 주문은 가격을 입력하지 않음
hogaType="03", # "00":지정가, "03":시장가
originOrderNo="",
)
executor.sendOrder(orderSpecDict) # 삼성전자 1주 신규매수(시장가) 주문 제출
Help and Future Support
Please leave an issue if you find a bug or need future supports.
you can also contact koko8624@gmail.com for support and bug report.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for kiwoom_api_handler-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcbee72cafc5a9542146117d622b29b6be8a55bcef58ac111bcaf54b1ac340f0 |
|
MD5 | 8935e087f9451556dd591c1842e997b0 |
|
BLAKE2b-256 | 93270d6b81ad2f99ef95b15ec05d0f6cba48a53743ee2bd42c6c93b914dad8fc |