# KiwoomOpenAPI
Windows COM 기반으로 파이썬 32비트로만 동작하는 키움증권 오픈API 패키지.
KiwoomTraderV2 프로젝트 패키지의 내부 모듈을 독립적인 패키지로 분리하는 작업 완료.
## 사용법
데이터 요청할 때는 패키지의 함수들을 사용해야 한다.
import kiwoomapi as api
api.CommConnect()
데이터 수신할 때는 PyQt-QAxWidget 객체인 'OpenAPI'의 pyqtSinal 을 사용해야 한다.
키움증권으로부터 메시지를 수신하기 위해서는 아래와 같이 코드를 작성해야 한다.
from kiwoomapi import OpenAPI
OpenAPI.OnReceiveMessage.connect(YOUR_METHOD)
로그인 객체 구현 예시:
from PyQt5.QtWidgets import QApplication
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QEventLoop
import kiwoomapi as api
from kiwoomapi import OpenAPI
class LoginAPI(QObject):
LoginSucceeded = pyqtSignal()
def __init__(self):
super().__init__()
OpenAPI.OnReceiveMessage.connect(self.__recv_msg__)
OpenAPI.OnEventConnect.connect(self.__recv_login__)
@pyqtSlot(str, str, str, str)
def __recv_msg__(self, ScrNo, RQName, TrCode, Msg):
print([ScrNo, RQName, TrCode, Msg])
@pyqtSlot(int)
def __recv_login__(self, ErrCode):
print(ErrCode)
if ErrCode == 0:
self.LoginSucceeded.emit()
else:
print('로그인 실패)
self._event_loop.exit()
def login(self):
api.CommConnect()
self._event_loop = QEventLoop()
self._event_loop.exec()
app = QApplication(sys.argv)
LoginAPI = LoginAPI()
LoginAPI.login()
sys.exit(app.exec())
## 개발 가이드 문서
[로그인-버전처리\기본설명](/Docs/로그인-버전처리/기본설명.md)
[모의투자](Docs\모의투자.md)
[로그인-버전처리](Docs\로그인-버전처리\기본설명.md)
[조건검색](Docs\조건검색\기본설명.md)
[조회와-실시간데이터처리](Docs\조회와-실시간데이터처리\기본설명.md)
[주문과-잔고처리](Docs\주문과-잔고처리\기본설명.md)
[OpenAPI-오류코드](Docs\OpenAPI-오류코드.md)
[OpenAPI-사용제한](Docs\OpenAPI-사용제한.md)
Raw data
{
"_id": null,
"home_page": "https://github.com/innovata/KiwoomOpenAPI",
"name": "kiwoomapi",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "innovata sambong",
"author_email": "iinnovata@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/f1/1f/1df1c1d840451f5f5e95d9a913b6b9bb04bdb333f556784ea65bd6fa7926/kiwoomapi-0.5.4.tar.gz",
"platform": null,
"description": "# KiwoomOpenAPI\r\n\r\nWindows COM \uae30\ubc18\uc73c\ub85c \ud30c\uc774\uc36c 32\ube44\ud2b8\ub85c\ub9cc \ub3d9\uc791\ud558\ub294 \ud0a4\uc6c0\uc99d\uad8c \uc624\ud508API \ud328\ud0a4\uc9c0.\r\n\r\nKiwoomTraderV2 \ud504\ub85c\uc81d\ud2b8 \ud328\ud0a4\uc9c0\uc758 \ub0b4\ubd80 \ubaa8\ub4c8\uc744 \ub3c5\ub9bd\uc801\uc778 \ud328\ud0a4\uc9c0\ub85c \ubd84\ub9ac\ud558\ub294 \uc791\uc5c5 \uc644\ub8cc.\r\n\r\n\r\n\r\n\r\n## \uc0ac\uc6a9\ubc95\r\n\r\n\ub370\uc774\ud130 \uc694\uccad\ud560 \ub54c\ub294 \ud328\ud0a4\uc9c0\uc758 \ud568\uc218\ub4e4\uc744 \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.\r\n\r\n import kiwoomapi as api\r\n api.CommConnect()\r\n\r\n\ub370\uc774\ud130 \uc218\uc2e0\ud560 \ub54c\ub294 PyQt-QAxWidget \uac1d\uccb4\uc778 'OpenAPI'\uc758 pyqtSinal \uc744 \uc0ac\uc6a9\ud574\uc57c \ud55c\ub2e4.\r\n\r\n\ud0a4\uc6c0\uc99d\uad8c\uc73c\ub85c\ubd80\ud130 \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc544\ub798\uc640 \uac19\uc774 \ucf54\ub4dc\ub97c \uc791\uc131\ud574\uc57c \ud55c\ub2e4. \r\n\r\n from kiwoomapi import OpenAPI\r\n OpenAPI.OnReceiveMessage.connect(YOUR_METHOD) \r\n\r\n\r\n\ub85c\uadf8\uc778 \uac1d\uccb4 \uad6c\ud604 \uc608\uc2dc:\r\n\r\n from PyQt5.QtWidgets import QApplication\r\n from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QEventLoop\r\n import kiwoomapi as api\r\n from kiwoomapi import OpenAPI\r\n \r\n class LoginAPI(QObject):\r\n\r\n LoginSucceeded = pyqtSignal()\r\n\r\n def __init__(self):\r\n super().__init__()\r\n OpenAPI.OnReceiveMessage.connect(self.__recv_msg__)\r\n OpenAPI.OnEventConnect.connect(self.__recv_login__)\r\n\r\n @pyqtSlot(str, str, str, str)\r\n def __recv_msg__(self, ScrNo, RQName, TrCode, Msg):\r\n print([ScrNo, RQName, TrCode, Msg])\r\n \r\n @pyqtSlot(int)\r\n def __recv_login__(self, ErrCode):\r\n print(ErrCode)\r\n if ErrCode == 0:\r\n self.LoginSucceeded.emit()\r\n else:\r\n print('\ub85c\uadf8\uc778 \uc2e4\ud328)\r\n self._event_loop.exit()\r\n\r\n def login(self):\r\n api.CommConnect()\r\n self._event_loop = QEventLoop()\r\n self._event_loop.exec()\r\n\r\n\r\n app = QApplication(sys.argv)\r\n \r\n LoginAPI = LoginAPI()\r\n LoginAPI.login()\r\n\r\n sys.exit(app.exec())\r\n\r\n\r\n\r\n\r\n\r\n## \uac1c\ubc1c \uac00\uc774\ub4dc \ubb38\uc11c\r\n\r\n[\ub85c\uadf8\uc778-\ubc84\uc804\ucc98\ub9ac\\\uae30\ubcf8\uc124\uba85](/Docs/\ub85c\uadf8\uc778-\ubc84\uc804\ucc98\ub9ac/\uae30\ubcf8\uc124\uba85.md)\r\n\r\n[\ubaa8\uc758\ud22c\uc790](Docs\\\ubaa8\uc758\ud22c\uc790.md)\r\n\r\n[\ub85c\uadf8\uc778-\ubc84\uc804\ucc98\ub9ac](Docs\\\ub85c\uadf8\uc778-\ubc84\uc804\ucc98\ub9ac\\\uae30\ubcf8\uc124\uba85.md)\r\n\r\n[\uc870\uac74\uac80\uc0c9](Docs\\\uc870\uac74\uac80\uc0c9\\\uae30\ubcf8\uc124\uba85.md)\r\n\r\n[\uc870\ud68c\uc640-\uc2e4\uc2dc\uac04\ub370\uc774\ud130\ucc98\ub9ac](Docs\\\uc870\ud68c\uc640-\uc2e4\uc2dc\uac04\ub370\uc774\ud130\ucc98\ub9ac\\\uae30\ubcf8\uc124\uba85.md)\r\n\r\n[\uc8fc\ubb38\uacfc-\uc794\uace0\ucc98\ub9ac](Docs\\\uc8fc\ubb38\uacfc-\uc794\uace0\ucc98\ub9ac\\\uae30\ubcf8\uc124\uba85.md)\r\n\r\n[OpenAPI-\uc624\ub958\ucf54\ub4dc](Docs\\OpenAPI-\uc624\ub958\ucf54\ub4dc.md)\r\n\r\n[OpenAPI-\uc0ac\uc6a9\uc81c\ud55c](Docs\\OpenAPI-\uc0ac\uc6a9\uc81c\ud55c.md)\r\n\r\n\r\n\r\n",
"bugtrack_url": null,
"license": "",
"summary": "Windows COM \uae30\ubc18\uc73c\ub85c \ud30c\uc774\uc36c 32\ube44\ud2b8\ub85c\ub9cc \ub3d9\uc791\ud558\ub294 \ud0a4\uc6c0\uc99d\uad8c \uc624\ud508API \ud328\ud0a4\uc9c0",
"version": "0.5.4",
"project_urls": {
"Homepage": "https://github.com/innovata/KiwoomOpenAPI"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "53beca5502709f22a510548082f15a83b7ee23b2a01b299a9e343b2301bf7960",
"md5": "5b785420b86cd47158077c9b818799e7",
"sha256": "f3aee4723eb00d3f7118d4dafc51b8347a0825fb859a3d06123bc54ccb8a5c92"
},
"downloads": -1,
"filename": "kiwoomapi-0.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5b785420b86cd47158077c9b818799e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 12105,
"upload_time": "2023-08-18T06:22:43",
"upload_time_iso_8601": "2023-08-18T06:22:43.174761Z",
"url": "https://files.pythonhosted.org/packages/53/be/ca5502709f22a510548082f15a83b7ee23b2a01b299a9e343b2301bf7960/kiwoomapi-0.5.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f11f1df1c1d840451f5f5e95d9a913b6b9bb04bdb333f556784ea65bd6fa7926",
"md5": "98e07f2416eeb717c4cd93fe61f769fc",
"sha256": "1a4172b5f7675ce1b2ca731dba83f86b364a5c06659de92e3be244b50c8332de"
},
"downloads": -1,
"filename": "kiwoomapi-0.5.4.tar.gz",
"has_sig": false,
"md5_digest": "98e07f2416eeb717c4cd93fe61f769fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11468,
"upload_time": "2023-08-18T06:22:44",
"upload_time_iso_8601": "2023-08-18T06:22:44.397665Z",
"url": "https://files.pythonhosted.org/packages/f1/1f/1df1c1d840451f5f5e95d9a913b6b9bb04bdb333f556784ea65bd6fa7926/kiwoomapi-0.5.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-18 06:22:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "innovata",
"github_project": "KiwoomOpenAPI",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "kiwoomapi"
}