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.2.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

kiwoom_api_handler-1.0.2-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kiwoom_api_handler-1.0.2.tar.gz
  • Upload date:
  • Size: 21.7 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.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for kiwoom_api_handler-1.0.2.tar.gz
Algorithm Hash digest
SHA256 596fb06a643c8ec134fdc2b5a97fca182474066b863c78aa49e4a1be226a3fe4
MD5 745d9fcd32b46f12bceed34f446265dd
BLAKE2b-256 5bf2920791b0f1795cbb1e617e7338fb8148619f7a37cdebc0051a8bf7a561bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kiwoom_api_handler-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 48.2 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.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for kiwoom_api_handler-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dfcdfa24038712de3cf920905d84cbbd23be29bbe569c5c59616b625f57605a9
MD5 aea0f7a164cf685b2e5700047a5f0293
BLAKE2b-256 c7aa8ba26bec8512d37d696777370ab7c882f7664d67f0adcaa489155f4f6d50

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