Skip to main content

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.api.Kiwoom

키움증권 OPEN API+ ActiveX Control의 함수와 이벤트를 관리하는 class입니다.

데이터 수신 및 주문집행과 관련된 클래스의 생성자의 매개변수로 Kiwoom 클래스의 instance를 받습니다.


kiwoom_api.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.api import Kiwoom, DataFeeder

if __name__ == "__main__":

    app = QApplication(sys.argv)

    kiwoom = Kiwoom() # Kiwoom 인스턴스 생성
    kiwoom.commConnect() # API 접속
    feeder = DataFeeder(kiwoom)

    code = "005930" # 삼성전자

    # TR요청(request)에 필요한 parameter는 KOAStudio를 참고하시길 바랍니다.
    # OPT10004: 주식호가요청
    params = {"종목코드": code}
    data = feeder.request(trCode="OPT10004", **params)

    # OPT10059: 종목별투자자기관별요청
    params = {
            "일자": "202003013",
            "종목코드": code,
            "금액수량구분": "1",  # 1:금액, 2:수량
            "매매구분": "0",  # 0:순매수, 1:매수, 2:매도
            "단위구분": "1",  # 1:단주, 1000:천주
        }
    data = feeder.request(trCode='OPT10059', **params)

    # OPTKWFID: 관심종목정보요청 
    # ※ 예외적으로 requestOPTKWIFID 메서드를 호출
    params = {
            "arrCode": "005930;023590", # 종목코드를 ;로 구분
            "next": 0, # 0 연속조회여부 (0: x)
            "codeCount": 2, # 종목코드 갯수
    }
    data = feeder.request(**params)


---

### kiwoom_api.api.Executor

주문 정보(order specification) 생성  제출과 관련된 기능을 담당하는 class입니다. **생성자의 매개변수로 Kiwoom 인스턴스(instance) 받습니다.**

#### Test Code
```python
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiwoom_api_handler-1.0.6.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

kiwoom_api_handler-1.0.6-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

Details for the file kiwoom_api_handler-1.0.6.tar.gz.

File metadata

  • Download URL: kiwoom_api_handler-1.0.6.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for kiwoom_api_handler-1.0.6.tar.gz
Algorithm Hash digest
SHA256 1cc9da1b887f81c3c120a7d4803bcc0c7ed67f39eb5ebcae71a6d3bf22f354db
MD5 f13eb8487f385d748be3dd6bd77e6594
BLAKE2b-256 46230a8bc261407a5e0bd3e8422c56ae2c41c3777c3b0c2fee10f68d672f6039

See more details on using hashes here.

File details

Details for the file kiwoom_api_handler-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: kiwoom_api_handler-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 49.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191030 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.9

File hashes

Hashes for kiwoom_api_handler-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 efea97eb4904da43ce62f565819881a771d3a25702e1bb4e50de597bf9368c02
MD5 b9dbaf554930293c99313146838d4bc3
BLAKE2b-256 d8575e32f1e6b7e23f74f1e9de01fe1805202c13b636e7dcf6b736dd2be794e5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page