Giter VIP home page Giter VIP logo

python-kis's Introduction

header

โœจ 1. ํŒŒ์ด์ฌ์šฉ ํ•œ๊ตญํˆฌ์ž์ฆ๊ถŒ API ์†Œ๊ฐœ

ํ•œ๊ตญํˆฌ์ž์ฆ๊ถŒ์˜ ํŠธ๋ ˆ์ด๋”ฉ OPEN API ์„œ๋น„์Šค๋ฅผ ํŒŒ์ด์ฌ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ฐ•๋ ฅํ•œ ์šด์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

1.1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŠน์ง•

๐Ÿ–‹๏ธ ๋ชจ๋“  ํ˜•์‹์— Typing

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค์— Typing์„ ์ ์šฉํ•˜์—ฌ, ํŒŒ์ด์ฌ์˜ ๋™์  ํƒ€์ดํ•‘์„ ๋ณด์™„ํ•ฉ๋‹ˆ๋‹ค. IDE์˜ ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด, ๊ณต์‹ ๋ฌธ์„œ ์—†์ด ๋”์šฑ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”— ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•œ ์‹ค์‹œ๊ฐ„ ํด๋ผ์ด์–ธํŠธ

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ ๋“ฑ์œผ๋กœ ์ธํ•ด ์ค‘๋‹จํ–ˆ์„ ๋•Œ, ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด์ „์— ๋“ฑ๋ก๋œ ์กฐํšŒ๋„ ์ž๋™์œผ๋กœ ์žฌ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ์‹œ์žฅ ์ข…๋ชฉ ์ž๋™ ํŒŒ์‹ฑ

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์ธ ์‹œ์žฅ๋ณ„ ์ข…๋ชฉ ์ •๋ณด๋ฅผ ์ž๋™์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ, SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์กฐํšŒ์™€ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งค์ผ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.


โš™๏ธ 2. ์‚ฌ์šฉ ์„ค๋ช…

2.1. ์„œ๋น„์Šค ์‹ ์ฒญ

  1. ํ•œ๊ตญํˆฌ์ž์ฆ๊ถŒ ๊ณ„์ขŒ์™€ ์•„์ด๋””๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. KIS ํŠธ๋ ˆ์ด๋”ฉ ์„œ๋น„์Šค๋Š” KIS Developers ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ์‹ ์ฒญ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

  1. ์„œ๋น„์Šค๋ฅผ ์‹ ์ฒญ์ด ์™„๋ฃŒ๋˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์•ฑ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

2.2. ๐Ÿ“ฆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํŒŒ์ด์ฌ 3.10์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

pip install python-kis
์‚ฌ์šฉ๋œ ๋ชจ๋“ˆ ๋ณด๊ธฐ
requests>=2.28.1
SQLAlchemy>=1.4.39
websocket-client>=1.4.1
pycryptodome>=3.15.0
colorlog>=6.7.0

2.3. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ

2.3.1. ์ž„ํฌํŠธ

ํ•˜๋„ ํด๋ž˜์Šค๊ฐ€ ๋งŽ์•„ from pykis import *๋กœ ์ž„ํฌํŠธ ํ•˜์ž.

ํด๋ž˜์Šค ๋„ค์ด๋ฐ ๊ทœ์น™์€ Kis + ๊ธฐ๋Šฅ๋ช… ์ด๋‹ˆ๊นŒ ์ถฉ๋Œ ํ•  ์ผ ์—†๋‹ค.

from pykis import *

2.3.2. PyKis ๊ฐ์ฒด ์ƒ์„ฑ

๋ชจ๋“  KIS API๋Š” PyKis ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜๋‚˜์˜ ํŒŒ์ด์ฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ๋Ÿฌ PyKis ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋‹ค ์ž˜ ๋˜๊ฒŒ ํ•ด๋†จ๋‹ค. ํ•˜๋‚˜๋งŒ ์“ฐ์ž.

kis = PyKis(
    # ์•ฑ ํ‚ค  ์˜ˆ) Pa0knAM6JLAjIa93Miajz7ykJIXXXXXXXXXX
    appkey=APPKEY,
    # ์•ฑ ์‹œํฌ๋ฆฟ  ์˜ˆ) V9J3YGPE5q2ZRG5EgqnLHn7XqbJjzwXcNpvY . . .
    appsecret=APPSECRET,
    # ๊ฐ€์ƒ ๊ณ„์ขŒ ์—ฌ๋ถ€
    virtual_account=True,
)
[10/04 15:53:30] INFO MARKET: sync kospi, download https://new.real.download.dws.co.kr/common/master/kospi_code.mst.zip
[10/04 15:53:30] INFO RTC websocket connected
[10/04 15:53:31] INFO MARKET: parseing kospi data... 1967 lines
[10/04 15:53:32] INFO MARKET: sync kosdaq, download https://new.real.download.dws.co.kr/common/master/kosdaq_code.mst.zip
[10/04 15:53:33] INFO MARKET: parseing kosdaq data... 1587 lines
[10/04 15:53:34] INFO MARKET: sync sector, download https://new.real.download.dws.co.kr/common/master/idxcode.mst.zip
[10/04 15:53:35] INFO MARKET: parseing sector data... 483 lines

์ดˆ๊ธฐ ์ƒ์„ฑ์‹œ ์‹œ์žฅ์ •๋ณด๋ฅผ ๋™๊ธฐํ™” ํ•œ๋‹ค. ์‹œ์žฅ ์ •๋ณด๋Š” $temp/.pykis-cache_market.{version}.db ์— ์ €์žฅ๋œ๋‹ค.

์‹œ์žฅ ์ •๋ณด๋Š” ๋งˆ์ง€๋ง‰ ๋™๊ธฐํ™” ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ 24์‹œ๊ฐ„๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ๋œ๋‹ค.

2.3.3. ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ

์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•ด PrettyTable๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋กœ PrettyTable์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

pip install prettytable

์ž”๊ณ ๋ฅผ ์กฐํšŒํ•ด๋ณด์ž.

from pykis import *
from prettytable import PrettyTable

kis = PyKis(
    # ์•ฑ ํ‚ค  ์˜ˆ) Pa0knAM6JLAjIa93Miajz7ykJIXXXXXXXXXX
    appkey=APPKEY,
    # ์•ฑ ์‹œํฌ๋ฆฟ  ์˜ˆ) V9J3YGPE5q2ZRG5EgqnLHn7XqbJjzwXcNpvY . . .
    appsecret=APPSECRET,
    # ๊ฐ€์ƒ ๊ณ„์ขŒ ์—ฌ๋ถ€
    virtual_account=True,
)

# ๋จผ์ € ๊ณ„์ขŒ ์Šค์ฝ”ํ”„๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
account = kis.account('50071022-01') # ๊ณ„์ขŒ๋ฒˆํ˜ธ ex) 50071022-01 ๋˜๋Š” 5007102201
# ์ด์ œ ์ž”๊ณ ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
balance = account.balance_all()

# ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
print(f'์˜ˆ์ˆ˜๊ธˆ: {balance.dnca_tot_amt:,}์› ํ‰๊ฐ€๊ธˆ: {balance.tot_evlu_amt:,} ์†์ต: {balance.evlu_pfls_smtl_amt:,}์›')

# ํ…Œ์ด๋ธ”์„ ์‹œ๊ฐํ™” ํ•˜๊ธฐ ์œ„ํ•ด PrettyTable์„ ์‚ฌ์šฉํ•œ๋‹ค.

table = PrettyTable(field_names=[
        '์ƒํ’ˆ๋ฒˆํ˜ธ', '์ƒํ’ˆ๋ช…', '๋ณด์œ ์ˆ˜๋Ÿ‰', '๋งค์ž…๊ธˆ์•ก',
        'ํ˜„์žฌ๊ฐ€', 'ํ‰๊ฐ€์†์ต์œจ', 'ํ‰๊ฐ€์†์ต',
    ], align='r',
)

# ์ž”๊ณ ๋ฅผ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•œ๋‹ค.
for stock in balance.stocks:
    table.add_row([
        stock.pdno,
        stock.prdt_name,
        f'{stock.hldg_qty:,}์ฃผ',
        f'{stock.pchs_amt:,}์›',
        f'{stock.prpr:,}์›',
        f'{stock.evlu_pfls_rt:.2f}%',
        f'{stock.evlu_pfls_amt:,}์›',
    ])

print(table)

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์˜ˆ์ˆ˜๊ธˆ: 7,799,675์› ํ‰๊ฐ€๊ธˆ: 10,071,255 ์†์ต: 70,165์›
+----------+----------------+----------+-----------+-----------+------------+-----------+
| ์ƒํ’ˆ๋ฒˆํ˜ธ |         ์ƒํ’ˆ๋ช… | ๋ณด์œ ์ˆ˜๋Ÿ‰ |  ๋งค์ž…๊ธˆ์•ก |    ํ˜„์žฌ๊ฐ€ | ํ‰๊ฐ€์†์ต์œจ |  ํ‰๊ฐ€์†์ต |
+----------+----------------+----------+-----------+-----------+------------+-----------+
|   004370 |           ๋†์‹ฌ |      3์ฃผ | 910,500์› | 298,000์› |     -1.81% | -16,500์› |
|   005305 |     ๋กฏ๋ฐ์น ์„ฑ์šฐ |      4์ฃผ | 274,900์› |  68,200์› |     -0.76% |  -2,100์› |
|   005935 |     ์‚ผ์„ฑ์ „์ž์šฐ |      4์ฃผ | 190,000์› |  51,000์› |      7.37% |  14,000์› |
|   034220 |   LG๋””์Šคํ”Œ๋ ˆ์ด |     20์ฃผ | 241,000์› |  13,550์› |     12.45% |  30,000์› |
|   053260 |       ๊ธˆ๊ฐ•์ฒ ๊ฐ• |     20์ฃผ | 145,800์› |   7,550์› |      3.57% |   5,200์› |
|   073240 |     ๊ธˆํ˜ธํƒ€์ด์–ด |      3์ฃผ |  10,215์› |   3,260์› |     -4.26% |    -435์› |
|   373220 | LG์—๋„ˆ์ง€์†”๋ฃจ์…˜ |      1์ฃผ | 429,000์› | 469,000์› |      9.32% |  40,000์› |
+----------+----------------+----------+-----------+-----------+------------+-----------+

ํˆฌ์ž ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜์ง€ ์•Š์€๊ฑธ?


2.3.4. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ

๐Ÿ“š ์˜ˆ์ œ ๋ชฉ๋ก

3. ๐Ÿ“ฆ ์ง€์›ํ•˜๋Š” API

๊ตญ๋‚ด ์ฃผ์‹ ์‹œ์žฅ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„ ๋ฌผ, ์˜ต์…˜ ๋“ฑ๊ณผ ์‹ ์šฉ์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

API ๊ธฐ๋Šฅ ์ง€์› ์—ฌ๋ถ€
OAuth์ธ์ฆ Hashkey โœ…
OAuth์ธ์ฆ ์ ‘๊ทผํ† ํฐ๋ฐœ๊ธ‰(P) โœ…
OAuth์ธ์ฆ ์ ‘๊ทผํ† ํฐํ๊ธฐ(P) โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ฃผ๋ฌธ(ํ˜„๊ธˆ) โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ฃผ๋ฌธ(์‹ ์šฉ) โŒ
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ฃผ๋ฌธ(์ •์ •์ทจ์†Œ) โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ •์ •์ทจ์†Œ๊ฐ€๋Šฅ์ฃผ๋ฌธ์กฐํšŒ โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ผ๋ณ„์ฃผ๋ฌธ์ฒด๊ฒฐ์กฐํšŒ โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ž”๊ณ ์กฐํšŒ โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ๋งค์ˆ˜๊ฐ€๋Šฅ์กฐํšŒ โœ…
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์˜ˆ์•ฝ์ฃผ๋ฌธ โŒ
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์˜ˆ์•ฝ์ฃผ๋ฌธ์ •์ •์ทจ์†Œ โŒ
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์˜ˆ์•ฝ์ฃผ๋ฌธ์กฐํšŒ โŒ
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ํ‡ด์ง์—ฐ๊ธˆ์ข…ํ•ฉ์ฃผ๋ฌธ โŒ
๊ตญ๋‚ด์ฃผ์‹์ฃผ๋ฌธ ์ฃผ์‹์ž”๊ณ ์กฐํšŒ_์‹คํ˜„์†์ต โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹œ์„ธ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์ฒด๊ฒฐ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์ผ์ž๋ณ„ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ํ˜ธ๊ฐ€ ์˜ˆ์ƒ์ฒด๊ฒฐ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ํˆฌ์ž์ž โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ํšŒ์›์‚ฌ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ELWํ˜„์žฌ๊ฐ€ ์‹œ์„ธ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ๊ตญ๋‚ด์ฃผ์‹๊ธฐ๊ฐ„๋ณ„์‹œ์„ธ(์ผ/์ฃผ/์›”/๋…„) โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ๊ตญ๋‚ด์ฃผ์‹์—…์ข…๊ธฐ๊ฐ„๋ณ„์‹œ์„ธ(์ผ/์ฃผ/์›”/๋…„) โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ๋‹น์ผ์‹œ๊ฐ„๋Œ€๋ณ„์ฒด๊ฒฐ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹œ๊ฐ„์™ธ์‹œ๊ฐ„๋ณ„์ฒด๊ฒฐ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹œ๊ฐ„์™ธ์ผ์ž๋ณ„์ฃผ๊ฐ€ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ฃผ์‹๋‹น์ผ๋ถ„๋ด‰์กฐํšŒ โœ…
๊ตญ๋‚ด์ฃผ์‹์‹œ์„ธ ์ƒํ’ˆ๊ธฐ๋ณธ์กฐํšŒ โœ…
์‹ค์‹œ๊ฐ„์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹ค์‹œ๊ฐ„์ฃผ์‹์ฒด๊ฒฐ๊ฐ€ โœ…
์‹ค์‹œ๊ฐ„์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹ค์‹œ๊ฐ„์ฃผ์‹ํ˜ธ๊ฐ€ โœ…
์‹ค์‹œ๊ฐ„์‹œ์„ธ ์ฃผ์‹ํ˜„์žฌ๊ฐ€ ์‹ค์‹œ๊ฐ„์ฃผ์‹์ฒด๊ฒฐํ†ต๋ณด โœ…
์‹ค์‹œ๊ฐ„์‹œ์„ธ ํ•ด์™ธ์ฃผ์‹ ์‹ค์‹œ๊ฐ„์ง€์—ฐ์ฒด๊ฒฐ๊ฐ€ โŒ
์‹ค์‹œ๊ฐ„์‹œ์„ธ ํ•ด์™ธ์ฃผ์‹ ์‹ค์‹œ๊ฐ„์ง€์—ฐํ˜ธ๊ฐ€ โŒ
์‹ค์‹œ๊ฐ„์‹œ์„ธ ํ•ด์™ธ์ฃผ์‹ ์‹ค์‹œ๊ฐ„์ฒด๊ฒฐํ†ต๋ณด โŒ
๊ตญ๋‚ด์„ ๋ฌผ์˜ต์…˜์ฃผ๋ฌธ * โŒ
๊ตญ๋‚ด์„ ๋ฌผ์˜ต์…˜์‹œ์„ธ * โŒ
ํ•ด์™ธ์ฃผ์‹์ฃผ๋ฌธ * โœ…
ํ•ด์™ธ์ฃผ์‹ํ˜„์žฌ๊ฐ€ * โŒ
ํ•ด์™ธ์„ ๋ฌผ์˜ต์…˜์ฃผ๋ฌธ * โŒ
ํ•ด์™ธ์„ ๋ฌผ์˜ต์…˜์‹œ์„ธ * โŒ

4. โœจ Changelog

1.0.6

  • ์ƒํ’ˆ๊ธฐ๋ณธ์กฐํšŒ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ถ„๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํŒŒ์ผ์— ๋‚˜๋‰˜์–ด์žˆ๋˜ Version, ์ ‘์† URL, API Rate Limit ๋“ฑ์˜ ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ __env__.py๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ์™ธ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ธฐ์กด HTTP Error, RT_CD Error๋ฅผ ๋ชจ๋‘ ValueError๋กœ ์ฒ˜๋ฆฌํ•˜๋˜ ๊ตฌ์กฐ์—์„œ ๊ฐ๊ฐ์˜ KisHTTPError, KisAPIError ์˜ˆ์™ธ ๊ฐ์ฒด๋กœ ๋‚˜๋ˆ„์—ˆ๊ณ , rt_cd, msg_cd ๋“ฑ์˜ ๋ณ€์ˆ˜๋ฅผ ์˜ˆ์™ธ ๊ฐ์ฒด์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ์—‘์„ธ์Šคํ† ํฐ ๋ฐœ๊ธ‰ Thread Safe ์—‘์„ธ์Šค ํ† ํฐ์ด ๋ฐœ๊ธ‰๋˜์–ด์žˆ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ๋กœ KisAccessToken.ensure() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด Thread Lock ๋˜์ง€ ์•Š๊ณ  ๋‹ค์ˆ˜๊ฐ€ KisAccessToken.issue()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1.0.5

  • RTClient์—์„œ ์›น์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์„ ๋•Œ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜๋ชป๋˜๋Š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • RTClient์—์„œ ์žฌ์—ฐ๊ฒฐ์‹œ ์‹ค์‹œ๊ฐ„ ์กฐํšŒ๊ฐ€ ๋ณต๊ตฌ๋˜์ง€ ์•Š๋Š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  • ํœด์žฅ์ผ ์กฐํšŒ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•ด์™ธ ์ฃผ์‹ ์ฃผ๋ฌธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•ด์™ธ ๋ฏธ์ฒด๊ฒฐ ์กฐํšŒ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1.0.4

1.0.3

1.0.2

  • API ์ดˆ๋‹น ์š”์ฒญ ์ œํ•œ์„ ๋„˜์–ด๋ฒ„๋ฆฌ๋Š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • period_price ์‘๋‹ต ๋ฐ์ดํ„ฐ์˜ stck_fcam๊ฐ’ float์œผ๋กœ ๋ณ€๊ฒฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • utils.KRXMarketOpen ๊ณตํœด์ผ ๋ฐ์ดํ„ฐ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

License

MIT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.