kwcli 0.1.0__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kwcli-0.1.0 → kwcli-1.0.0}/LICENSE.md +0 -1
- {kwcli-0.1.0 → kwcli-1.0.0}/PKG-INFO +56 -12
- {kwcli-0.1.0 → kwcli-1.0.0}/README.md +55 -11
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/_data/kiwoom_api_spec.json +43668 -2835
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/auth.py +2 -2
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/secrets.py +12 -6
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/token_store.py +5 -3
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/specs.py +26 -0
- kwcli-1.0.0/kiwoom_cli/README.md +762 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/argument_maps.py +90 -8
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/arguments.py +45 -6
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/auth.py +20 -8
- kwcli-1.0.0/kiwoom_cli/commands/exchange.py +91 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/groups.py +177 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/mapped.py +23 -2
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/orders.py +41 -1
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/stocks.py +6 -3
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/streams.py +45 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/doctor.py +10 -10
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/condition.py +9 -1
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/main.py +22 -1
- kwcli-1.0.0/kiwoom_cli/maps/README.md +91 -0
- kwcli-1.0.0/kiwoom_cli/maps/api_commands.csv +338 -0
- kwcli-1.0.0/kiwoom_cli/maps/arguments.csv +1384 -0
- kwcli-1.0.0/kiwoom_cli/maps/coupled_arguments.csv +11 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_confirmation_commands.csv +5 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_confirmation_fields.csv +26 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_price_policies.csv +17 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/output.py +23 -1
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/setup.py +10 -7
- {kwcli-0.1.0 → kwcli-1.0.0}/pyproject.toml +1 -1
- kwcli-0.1.0/kiwoom_cli/README.md +0 -671
- kwcli-0.1.0/kiwoom_cli/maps/README.md +0 -99
- kwcli-0.1.0/kiwoom_cli/maps/api_commands.csv +0 -209
- kwcli-0.1.0/kiwoom_cli/maps/arguments.csv +0 -731
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/client.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/errors.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/platform_paths.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/profiles.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/runtime.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/settings.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/types.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/core/ws_client.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/decoders.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/events.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/packets.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/schemas.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom/realtime/stream.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/__main__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/auth_context.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/banner.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/commands/spec.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/errors.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/__init__.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/rest.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/waits.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/executor/websocket.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/order_value_labels.csv +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/maps/positional_arguments.csv +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/order_confirmation.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/registry.py +0 -0
- {kwcli-0.1.0 → kwcli-1.0.0}/kiwoom_cli/safety.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kwcli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: Kiwoom OpenAPI toolkit
|
|
5
5
|
License-File: LICENSE.md
|
|
6
6
|
Requires-Python: >=3.13
|
|
@@ -18,16 +18,21 @@ Description-Content-Type: text/markdown
|
|
|
18
18
|
작업을 수행해야 하는 사람과 AI 에이전트를 위한 **탐색(discovery) 중심**의 운영
|
|
19
19
|
도구입니다.
|
|
20
20
|
|
|
21
|
-
설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
|
|
21
|
+
배포 패키지 이름은 `kwcli` 이며, 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
|
|
22
|
+
|
|
23
|
+
> **키움증권 공식 프로젝트**
|
|
24
|
+
> 본 프로젝트는 **키움증권(Kiwoom Securities)이 공식적으로 제공·관리**하는 도구입니다.
|
|
25
|
+
> PyPI 패키지 [`kwcli`](https://pypi.org/project/kwcli/)는 키움증권이 게시한 공식 배포본입니다.
|
|
26
|
+
> 키움 REST API 공식 포털: <https://openapi.kiwoom.com> (API 가이드: <https://openapi.kiwoom.com/guide/apiguide>)
|
|
22
27
|
|
|
23
28
|
## 설치
|
|
24
29
|
|
|
25
30
|
```sh
|
|
26
|
-
uv tool install
|
|
31
|
+
uv tool install kwcli
|
|
27
32
|
# 또는
|
|
28
|
-
pipx install
|
|
33
|
+
pipx install kwcli
|
|
29
34
|
# 또는
|
|
30
|
-
pip install
|
|
35
|
+
pip install kwcli
|
|
31
36
|
```
|
|
32
37
|
|
|
33
38
|
설치한 뒤 계정과 자격 증명을 초기화합니다.
|
|
@@ -47,6 +52,7 @@ kiwoomcli setup # 온보딩: 별칭, demo/real
|
|
|
47
52
|
kiwoomcli spec search "체결" # 필요한 API/명령 찾기
|
|
48
53
|
kiwoomcli domestic stocks info --code 005930 -h # 매핑된 계약 확인
|
|
49
54
|
kiwoomcli domestic stocks info --code 005930 --format json
|
|
55
|
+
kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL --format json
|
|
50
56
|
kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type limit --confirm
|
|
51
57
|
```
|
|
52
58
|
|
|
@@ -64,8 +70,9 @@ kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type l
|
|
|
64
70
|
현재 프로필), 프로필별 자격 증명/토큰 상태, 권장 조치를 보여줍니다.
|
|
65
71
|
- `--profile NAME`은 저장된 계정 별칭(OS 자격 증명 저장소의 App Key / Secret)을
|
|
66
72
|
사용합니다. `--mode demo|real`은 저장된 별칭을 쓰지 않으며, mode 단독 실행에는
|
|
67
|
-
|
|
68
|
-
|
|
73
|
+
환경변수가 필요합니다. 이때 환경변수 이름은 모드별로 다릅니다 —
|
|
74
|
+
`real`은 `APP_KEY` / `APP_SECRET`, `demo`는 `APP_KEY_MOCK` / `APP_SECRET_MOCK`.
|
|
75
|
+
자격 증명이 없을 때는 진입 방식에 맞는 해결책을 함께 안내합니다.
|
|
69
76
|
|
|
70
77
|
자주 쓰는 인증 명령:
|
|
71
78
|
|
|
@@ -75,14 +82,19 @@ kiwoomcli auth list
|
|
|
75
82
|
kiwoomcli auth switch <alias>
|
|
76
83
|
kiwoomcli auth status [--profile NAME | --mode demo|real]
|
|
77
84
|
kiwoomcli auth refresh [--profile NAME | --mode demo|real]
|
|
85
|
+
kiwoomcli auth revoke [--profile NAME | --mode demo|real]
|
|
78
86
|
kiwoomcli auth clear [--profile NAME | --mode demo|real] [--all]
|
|
79
87
|
kiwoomcli auth remove <alias>
|
|
88
|
+
kiwoomcli auth export [--profile NAME | --mode demo|real] [--dir DIR] [--yes]
|
|
80
89
|
```
|
|
81
90
|
|
|
82
91
|
- `auth clear`는 비밀 정보만 삭제합니다(기본은 토큰 캐시, `--all`을 주면 OS에
|
|
83
92
|
저장된 App Key / Secret까지). 별칭 등록 자체는 유지됩니다.
|
|
84
93
|
- `auth remove <alias>`는 계정을 완전히 등록 해제합니다(프로필 항목, 토큰 캐시,
|
|
85
94
|
저장된 자격 증명 모두).
|
|
95
|
+
- `auth revoke`는 서버에서 현재 토큰을 폐기하고 로컬 토큰 캐시도 삭제합니다.
|
|
96
|
+
- `auth export`는 저장된 App Key/Secret을 화면에 출력하지 않고 `.env` 파일로
|
|
97
|
+
내보냅니다. 비대화형 환경에서는 `--yes`가 필요합니다.
|
|
86
98
|
|
|
87
99
|
## 명령 그룹
|
|
88
100
|
|
|
@@ -111,11 +123,35 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
111
123
|
| `investors` | `kiwoomcli domestic investors by-stock --code 005930` |
|
|
112
124
|
| `short-selling` | `kiwoomcli domestic short-selling trend --code 005930 --from 20260101 --to 20260529` |
|
|
113
125
|
| `securities-lending` | `kiwoomcli domestic securities-lending by-stock --code 005930` |
|
|
114
|
-
| `themes` | `kiwoomcli domestic themes by-stock --code
|
|
126
|
+
| `themes` | `kiwoomcli domestic themes by-stock --code <테마그룹코드> --exchange KRX` |
|
|
115
127
|
| `accounts` | `kiwoomcli domestic accounts holdings --basis total --exchange KRX` |
|
|
116
128
|
| `orders` | `kiwoomcli domestic orders list-open --stock-scope all --side all --exchange ALL` |
|
|
117
129
|
| `streams` | `kiwoomcli domestic streams trades --code 005930 --count 1` |
|
|
118
130
|
|
|
131
|
+
미국주식 리소스는 `overseas` 아래에서 제공합니다.
|
|
132
|
+
|
|
133
|
+
| 그룹 | 예시 |
|
|
134
|
+
| --- | --- |
|
|
135
|
+
| `stocks` | `kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL` |
|
|
136
|
+
| `quotes` | `kiwoomcli overseas quotes info --exchange NASDAQ --code AAPL` |
|
|
137
|
+
| `orderbooks` | `kiwoomcli overseas orderbooks list --exchange NASDAQ --code AAPL` |
|
|
138
|
+
| `candles` | `kiwoomcli overseas candles stock-daily --exchange NASDAQ --code AAPL` |
|
|
139
|
+
| `rankings` | `kiwoomcli overseas rankings today-volume-top --exchange nasdaq` |
|
|
140
|
+
| `sectors` | `kiwoomcli overseas sectors period-returns --exchange NASDAQ` |
|
|
141
|
+
| `investment-info` | `kiwoomcli overseas investment-info research --kind stock` |
|
|
142
|
+
| `accounts` | `kiwoomcli overseas accounts balance --exchange NASDAQ` |
|
|
143
|
+
| `orders` | `kiwoomcli overseas orders orderable-quantity --exchange NASDAQ --code AAPL --price 150` |
|
|
144
|
+
| `exchange` | `kiwoomcli overseas exchange rate --direction krw-to-usd` |
|
|
145
|
+
| `streams` | `kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1` |
|
|
146
|
+
|
|
147
|
+
전체 API 337개(OAuth 2, 국내주식 206, 미국주식 129)가 로컬 스펙과 CLI
|
|
148
|
+
맵에 포함됩니다. 정확한 옵션은 각 명령의 `-h` 출력으로 확인하세요.
|
|
149
|
+
|
|
150
|
+
미국주식 `--exchange` 값의 대소문자는 명령별 API 계약을 따릅니다. 종목·시세·
|
|
151
|
+
호가·캔들·계좌·스트림은 `AMEX|NASDAQ|NYSE`, 순위는
|
|
152
|
+
`all|nyse|nasdaq|amex`, 업종의 `period-returns`는
|
|
153
|
+
`ALL|NYSE|AMEX|NASDAQ`을 사용합니다. 항상 해당 명령의 `-h`를 확인하세요.
|
|
154
|
+
|
|
119
155
|
## 출력 형식
|
|
120
156
|
|
|
121
157
|
도메인 명령은 `--format`과 프로필/모드 선택자를 받습니다.
|
|
@@ -124,12 +160,16 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
124
160
|
--format pretty|json|jsonl|yaml
|
|
125
161
|
--profile NAME
|
|
126
162
|
--mode demo|real
|
|
163
|
+
--pages N
|
|
127
164
|
```
|
|
128
165
|
|
|
129
166
|
- `pretty`(기본값)는 사람이 읽기 좋은 들여쓰기 형식입니다.
|
|
130
167
|
- `json`은 에이전트가 파싱하기 좋은 한 줄 압축 출력입니다.
|
|
131
168
|
- `jsonl`은 한 줄에 JSON 레코드 하나씩 출력합니다(목록 행이나 스트림에 유용).
|
|
132
169
|
- `yaml`은 YAML 형식으로 출력합니다.
|
|
170
|
+
- `--pages`는 REST 연속조회 페이지 수입니다. 기본값은 1이며, 0은 서버가
|
|
171
|
+
제공하는 모든 페이지를 조회합니다. `spec` 명령에는 적용되지 않습니다.
|
|
172
|
+
- REST 명령의 `--named`는 응답 필드 코드를 스펙의 한글명으로 변환합니다.
|
|
133
173
|
|
|
134
174
|
안전장치가 적용된 계좌/주문 조회와 스트림에서는 출력 계층이 계좌 식별자를
|
|
135
175
|
마스킹합니다. 다만 주문번호(`ord_no`, `orig_ord_no` 등)는 `orders modify`/`cancel`
|
|
@@ -143,13 +183,14 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
143
183
|
|
|
144
184
|
```sh
|
|
145
185
|
kiwoomcli domestic streams trades --code 005930 --count 1 --named --format json
|
|
186
|
+
kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1 --named --format json
|
|
146
187
|
```
|
|
147
188
|
|
|
148
189
|
- `--count`는 `REAL` 데이터 메시지만 셉니다. `REG`/`REMOVE`/`SYSTEM`은 제어
|
|
149
190
|
메시지입니다.
|
|
150
191
|
- `--check`는 유한한 등록/수집을 수행하며, `REAL` 틱이 오지 않아도 정상 종료
|
|
151
192
|
합니다.
|
|
152
|
-
- `--named`는
|
|
193
|
+
- 스트림 명령의 `--named`는 키움 스펙 기반 내장 스키마로 `REAL` 프레임 FID를
|
|
153
194
|
변환합니다. 알 수 없는 FID는 `unknown` 아래에 보존됩니다.
|
|
154
195
|
|
|
155
196
|
장시간 구독을 저장하려면 파일로 출력하고 OS 도구로 프로세스를 백그라운드로
|
|
@@ -171,12 +212,15 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
|
|
|
171
212
|
|
|
172
213
|
## 주문 안전장치
|
|
173
214
|
|
|
174
|
-
주문 쓰기 명령(`orders buy/sell/modify/cancel`,
|
|
215
|
+
국내·미국주식 주문 쓰기 명령(`orders buy/sell/modify/cancel`,
|
|
216
|
+
`credit-*`, `gold-*`)과 미국주식 환전 신청(`overseas exchange request`)에는
|
|
175
217
|
안전장치가 적용됩니다.
|
|
176
218
|
|
|
177
219
|
- `--confirm`이 없으면 짧은 미전송 주문 요약을 출력하고 주문 API를 호출하지
|
|
178
220
|
않습니다.
|
|
179
221
|
- `--confirm`이 있으면 실제 엔드포인트로 전송합니다.
|
|
222
|
+
- `overseas exchange request`도 `--confirm`이 없으면 미전송 환전 확인만
|
|
223
|
+
출력하며, `--confirm`이 있어야 실제 환전 API를 호출합니다.
|
|
180
224
|
- 주문 유형별 가격 규칙은 전송 경로 이전에 검증됩니다. 예를 들어
|
|
181
225
|
`--order-type limit`에는 `--price`가 필요하고, `--order-type market`에는
|
|
182
226
|
`--price`를 넣으면 안 됩니다. 잘못된 주문 식별자는 전송 전에 보고됩니다.
|
|
@@ -190,13 +234,13 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
|
|
|
190
234
|
|
|
191
235
|
| 개념 | 옵션 | 예시 |
|
|
192
236
|
| --- | --- | --- |
|
|
193
|
-
| 종목/주식/업종/ETF/ELW 코드 | `--code
|
|
237
|
+
| 종목/주식/업종/ETF/ELW 코드 | `--code` | `--code 005930` |
|
|
194
238
|
| 인증 프로필 | `--profile` | `--profile demo-main` |
|
|
195
239
|
| 실행 모드 | `--mode` | `--mode demo` |
|
|
196
240
|
| 시장/거래소 선택 | `--market` | `--market kospi` |
|
|
197
241
|
| 수량 | `--qty` | `--qty 10` |
|
|
198
242
|
| 가격 | `--price` | `--price 70000` |
|
|
199
|
-
| 매수/매도 구분 | `--side` |
|
|
243
|
+
| 매수/매도 구분 | `--side` | 명령별 값은 `-h`에서 확인 |
|
|
200
244
|
| 주문 유형 | `--order-type` | `--order-type limit` |
|
|
201
245
|
| 주문 식별자 | `--order-id` | `--order-id 123` |
|
|
202
246
|
| 시작 / 종료 일자 | `--from` / `--to` | `--from 20260101 --to 20260529` |
|
|
@@ -5,16 +5,21 @@
|
|
|
5
5
|
작업을 수행해야 하는 사람과 AI 에이전트를 위한 **탐색(discovery) 중심**의 운영
|
|
6
6
|
도구입니다.
|
|
7
7
|
|
|
8
|
-
설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
|
|
8
|
+
배포 패키지 이름은 `kwcli` 이며, 설치 후 사용하는 콘솔 명령은 `kiwoomcli` 입니다.
|
|
9
|
+
|
|
10
|
+
> **키움증권 공식 프로젝트**
|
|
11
|
+
> 본 프로젝트는 **키움증권(Kiwoom Securities)이 공식적으로 제공·관리**하는 도구입니다.
|
|
12
|
+
> PyPI 패키지 [`kwcli`](https://pypi.org/project/kwcli/)는 키움증권이 게시한 공식 배포본입니다.
|
|
13
|
+
> 키움 REST API 공식 포털: <https://openapi.kiwoom.com> (API 가이드: <https://openapi.kiwoom.com/guide/apiguide>)
|
|
9
14
|
|
|
10
15
|
## 설치
|
|
11
16
|
|
|
12
17
|
```sh
|
|
13
|
-
uv tool install
|
|
18
|
+
uv tool install kwcli
|
|
14
19
|
# 또는
|
|
15
|
-
pipx install
|
|
20
|
+
pipx install kwcli
|
|
16
21
|
# 또는
|
|
17
|
-
pip install
|
|
22
|
+
pip install kwcli
|
|
18
23
|
```
|
|
19
24
|
|
|
20
25
|
설치한 뒤 계정과 자격 증명을 초기화합니다.
|
|
@@ -34,6 +39,7 @@ kiwoomcli setup # 온보딩: 별칭, demo/real
|
|
|
34
39
|
kiwoomcli spec search "체결" # 필요한 API/명령 찾기
|
|
35
40
|
kiwoomcli domestic stocks info --code 005930 -h # 매핑된 계약 확인
|
|
36
41
|
kiwoomcli domestic stocks info --code 005930 --format json
|
|
42
|
+
kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL --format json
|
|
37
43
|
kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type limit --confirm
|
|
38
44
|
```
|
|
39
45
|
|
|
@@ -51,8 +57,9 @@ kiwoomcli domestic orders buy --code 005930 --qty 1 --price 70000 --order-type l
|
|
|
51
57
|
현재 프로필), 프로필별 자격 증명/토큰 상태, 권장 조치를 보여줍니다.
|
|
52
58
|
- `--profile NAME`은 저장된 계정 별칭(OS 자격 증명 저장소의 App Key / Secret)을
|
|
53
59
|
사용합니다. `--mode demo|real`은 저장된 별칭을 쓰지 않으며, mode 단독 실행에는
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
환경변수가 필요합니다. 이때 환경변수 이름은 모드별로 다릅니다 —
|
|
61
|
+
`real`은 `APP_KEY` / `APP_SECRET`, `demo`는 `APP_KEY_MOCK` / `APP_SECRET_MOCK`.
|
|
62
|
+
자격 증명이 없을 때는 진입 방식에 맞는 해결책을 함께 안내합니다.
|
|
56
63
|
|
|
57
64
|
자주 쓰는 인증 명령:
|
|
58
65
|
|
|
@@ -62,14 +69,19 @@ kiwoomcli auth list
|
|
|
62
69
|
kiwoomcli auth switch <alias>
|
|
63
70
|
kiwoomcli auth status [--profile NAME | --mode demo|real]
|
|
64
71
|
kiwoomcli auth refresh [--profile NAME | --mode demo|real]
|
|
72
|
+
kiwoomcli auth revoke [--profile NAME | --mode demo|real]
|
|
65
73
|
kiwoomcli auth clear [--profile NAME | --mode demo|real] [--all]
|
|
66
74
|
kiwoomcli auth remove <alias>
|
|
75
|
+
kiwoomcli auth export [--profile NAME | --mode demo|real] [--dir DIR] [--yes]
|
|
67
76
|
```
|
|
68
77
|
|
|
69
78
|
- `auth clear`는 비밀 정보만 삭제합니다(기본은 토큰 캐시, `--all`을 주면 OS에
|
|
70
79
|
저장된 App Key / Secret까지). 별칭 등록 자체는 유지됩니다.
|
|
71
80
|
- `auth remove <alias>`는 계정을 완전히 등록 해제합니다(프로필 항목, 토큰 캐시,
|
|
72
81
|
저장된 자격 증명 모두).
|
|
82
|
+
- `auth revoke`는 서버에서 현재 토큰을 폐기하고 로컬 토큰 캐시도 삭제합니다.
|
|
83
|
+
- `auth export`는 저장된 App Key/Secret을 화면에 출력하지 않고 `.env` 파일로
|
|
84
|
+
내보냅니다. 비대화형 환경에서는 `--yes`가 필요합니다.
|
|
73
85
|
|
|
74
86
|
## 명령 그룹
|
|
75
87
|
|
|
@@ -98,11 +110,35 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
98
110
|
| `investors` | `kiwoomcli domestic investors by-stock --code 005930` |
|
|
99
111
|
| `short-selling` | `kiwoomcli domestic short-selling trend --code 005930 --from 20260101 --to 20260529` |
|
|
100
112
|
| `securities-lending` | `kiwoomcli domestic securities-lending by-stock --code 005930` |
|
|
101
|
-
| `themes` | `kiwoomcli domestic themes by-stock --code
|
|
113
|
+
| `themes` | `kiwoomcli domestic themes by-stock --code <테마그룹코드> --exchange KRX` |
|
|
102
114
|
| `accounts` | `kiwoomcli domestic accounts holdings --basis total --exchange KRX` |
|
|
103
115
|
| `orders` | `kiwoomcli domestic orders list-open --stock-scope all --side all --exchange ALL` |
|
|
104
116
|
| `streams` | `kiwoomcli domestic streams trades --code 005930 --count 1` |
|
|
105
117
|
|
|
118
|
+
미국주식 리소스는 `overseas` 아래에서 제공합니다.
|
|
119
|
+
|
|
120
|
+
| 그룹 | 예시 |
|
|
121
|
+
| --- | --- |
|
|
122
|
+
| `stocks` | `kiwoomcli overseas stocks info --exchange NASDAQ --code AAPL` |
|
|
123
|
+
| `quotes` | `kiwoomcli overseas quotes info --exchange NASDAQ --code AAPL` |
|
|
124
|
+
| `orderbooks` | `kiwoomcli overseas orderbooks list --exchange NASDAQ --code AAPL` |
|
|
125
|
+
| `candles` | `kiwoomcli overseas candles stock-daily --exchange NASDAQ --code AAPL` |
|
|
126
|
+
| `rankings` | `kiwoomcli overseas rankings today-volume-top --exchange nasdaq` |
|
|
127
|
+
| `sectors` | `kiwoomcli overseas sectors period-returns --exchange NASDAQ` |
|
|
128
|
+
| `investment-info` | `kiwoomcli overseas investment-info research --kind stock` |
|
|
129
|
+
| `accounts` | `kiwoomcli overseas accounts balance --exchange NASDAQ` |
|
|
130
|
+
| `orders` | `kiwoomcli overseas orders orderable-quantity --exchange NASDAQ --code AAPL --price 150` |
|
|
131
|
+
| `exchange` | `kiwoomcli overseas exchange rate --direction krw-to-usd` |
|
|
132
|
+
| `streams` | `kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1` |
|
|
133
|
+
|
|
134
|
+
전체 API 337개(OAuth 2, 국내주식 206, 미국주식 129)가 로컬 스펙과 CLI
|
|
135
|
+
맵에 포함됩니다. 정확한 옵션은 각 명령의 `-h` 출력으로 확인하세요.
|
|
136
|
+
|
|
137
|
+
미국주식 `--exchange` 값의 대소문자는 명령별 API 계약을 따릅니다. 종목·시세·
|
|
138
|
+
호가·캔들·계좌·스트림은 `AMEX|NASDAQ|NYSE`, 순위는
|
|
139
|
+
`all|nyse|nasdaq|amex`, 업종의 `period-returns`는
|
|
140
|
+
`ALL|NYSE|AMEX|NASDAQ`을 사용합니다. 항상 해당 명령의 `-h`를 확인하세요.
|
|
141
|
+
|
|
106
142
|
## 출력 형식
|
|
107
143
|
|
|
108
144
|
도메인 명령은 `--format`과 프로필/모드 선택자를 받습니다.
|
|
@@ -111,12 +147,16 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
111
147
|
--format pretty|json|jsonl|yaml
|
|
112
148
|
--profile NAME
|
|
113
149
|
--mode demo|real
|
|
150
|
+
--pages N
|
|
114
151
|
```
|
|
115
152
|
|
|
116
153
|
- `pretty`(기본값)는 사람이 읽기 좋은 들여쓰기 형식입니다.
|
|
117
154
|
- `json`은 에이전트가 파싱하기 좋은 한 줄 압축 출력입니다.
|
|
118
155
|
- `jsonl`은 한 줄에 JSON 레코드 하나씩 출력합니다(목록 행이나 스트림에 유용).
|
|
119
156
|
- `yaml`은 YAML 형식으로 출력합니다.
|
|
157
|
+
- `--pages`는 REST 연속조회 페이지 수입니다. 기본값은 1이며, 0은 서버가
|
|
158
|
+
제공하는 모든 페이지를 조회합니다. `spec` 명령에는 적용되지 않습니다.
|
|
159
|
+
- REST 명령의 `--named`는 응답 필드 코드를 스펙의 한글명으로 변환합니다.
|
|
120
160
|
|
|
121
161
|
안전장치가 적용된 계좌/주문 조회와 스트림에서는 출력 계층이 계좌 식별자를
|
|
122
162
|
마스킹합니다. 다만 주문번호(`ord_no`, `orig_ord_no` 등)는 `orders modify`/`cancel`
|
|
@@ -130,13 +170,14 @@ kiwoomcli spec apis [--group <text>] [--limit N] [--format pretty|json|yaml]
|
|
|
130
170
|
|
|
131
171
|
```sh
|
|
132
172
|
kiwoomcli domestic streams trades --code 005930 --count 1 --named --format json
|
|
173
|
+
kiwoomcli overseas streams trades --exchange NASDAQ --code AAPL --count 1 --named --format json
|
|
133
174
|
```
|
|
134
175
|
|
|
135
176
|
- `--count`는 `REAL` 데이터 메시지만 셉니다. `REG`/`REMOVE`/`SYSTEM`은 제어
|
|
136
177
|
메시지입니다.
|
|
137
178
|
- `--check`는 유한한 등록/수집을 수행하며, `REAL` 틱이 오지 않아도 정상 종료
|
|
138
179
|
합니다.
|
|
139
|
-
- `--named`는
|
|
180
|
+
- 스트림 명령의 `--named`는 키움 스펙 기반 내장 스키마로 `REAL` 프레임 FID를
|
|
140
181
|
변환합니다. 알 수 없는 FID는 `unknown` 아래에 보존됩니다.
|
|
141
182
|
|
|
142
183
|
장시간 구독을 저장하려면 파일로 출력하고 OS 도구로 프로세스를 백그라운드로
|
|
@@ -158,12 +199,15 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
|
|
|
158
199
|
|
|
159
200
|
## 주문 안전장치
|
|
160
201
|
|
|
161
|
-
주문 쓰기 명령(`orders buy/sell/modify/cancel`,
|
|
202
|
+
국내·미국주식 주문 쓰기 명령(`orders buy/sell/modify/cancel`,
|
|
203
|
+
`credit-*`, `gold-*`)과 미국주식 환전 신청(`overseas exchange request`)에는
|
|
162
204
|
안전장치가 적용됩니다.
|
|
163
205
|
|
|
164
206
|
- `--confirm`이 없으면 짧은 미전송 주문 요약을 출력하고 주문 API를 호출하지
|
|
165
207
|
않습니다.
|
|
166
208
|
- `--confirm`이 있으면 실제 엔드포인트로 전송합니다.
|
|
209
|
+
- `overseas exchange request`도 `--confirm`이 없으면 미전송 환전 확인만
|
|
210
|
+
출력하며, `--confirm`이 있어야 실제 환전 API를 호출합니다.
|
|
167
211
|
- 주문 유형별 가격 규칙은 전송 경로 이전에 검증됩니다. 예를 들어
|
|
168
212
|
`--order-type limit`에는 `--price`가 필요하고, `--order-type market`에는
|
|
169
213
|
`--price`를 넣으면 안 됩니다. 잘못된 주문 식별자는 전송 전에 보고됩니다.
|
|
@@ -177,13 +221,13 @@ Start-Process kiwoomcli -ArgumentList 'domestic streams trades --codes 005930,00
|
|
|
177
221
|
|
|
178
222
|
| 개념 | 옵션 | 예시 |
|
|
179
223
|
| --- | --- | --- |
|
|
180
|
-
| 종목/주식/업종/ETF/ELW 코드 | `--code
|
|
224
|
+
| 종목/주식/업종/ETF/ELW 코드 | `--code` | `--code 005930` |
|
|
181
225
|
| 인증 프로필 | `--profile` | `--profile demo-main` |
|
|
182
226
|
| 실행 모드 | `--mode` | `--mode demo` |
|
|
183
227
|
| 시장/거래소 선택 | `--market` | `--market kospi` |
|
|
184
228
|
| 수량 | `--qty` | `--qty 10` |
|
|
185
229
|
| 가격 | `--price` | `--price 70000` |
|
|
186
|
-
| 매수/매도 구분 | `--side` |
|
|
230
|
+
| 매수/매도 구분 | `--side` | 명령별 값은 `-h`에서 확인 |
|
|
187
231
|
| 주문 유형 | `--order-type` | `--order-type limit` |
|
|
188
232
|
| 주문 식별자 | `--order-id` | `--order-id 123` |
|
|
189
233
|
| 시작 / 종료 일자 | `--from` / `--to` | `--from 20260101 --to 20260529` |
|