Skip to content

hyungyun/open-trading-api

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

[λ‹Ήμ‚¬μ—μ„œ μ œκ³΅ν•˜λŠ” μƒ˜ν”Œμ½”λ“œμ— λŒ€ν•œ μœ μ˜μ‚¬ν•­]

  • μƒ˜ν”Œ μ½”λ“œλŠ” ν•œκ΅­νˆ¬μžμ¦κΆŒ Open API(KIS Developers)λ₯Ό μ—°λ™ν•˜λŠ” μ˜ˆμ‹œμž…λ‹ˆλ‹€. κ³ κ°λ‹˜μ˜ 개발 뢀담을 μ€„μ΄κ³ μž 참고용으둜 제곡되고 μžˆμŠ΅λ‹ˆλ‹€.
  • μƒ˜ν”Œ μ½”λ“œλŠ” λ³„λ„μ˜ 곡지 없이 μ§€μ†μ μœΌλ‘œ μ—…λ°μ΄νŠΈλ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μƒ˜ν”Œ μ½”λ“œλ₯Ό ν™œμš©ν•˜μ—¬ μ œμž‘ν•œ κ³ κ°λ‹˜μ˜ ν”„λ‘œκ·Έλž¨μœΌλ‘œ μΈν•œ 손해에 λŒ€ν•΄μ„œλŠ” λ‹Ήμ‚¬μ—μ„œ μ±…μž„μ§€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

KIS Open API μƒ˜ν”Œ μ½”λ“œ μ €μž₯μ†Œ (LLM 지원)

1. μ œμž‘ μ˜λ„ 및 λŒ€μƒ

🎯 μ œμž‘ μ˜λ„

이 μ €μž₯μ†ŒλŠ” ChatGPT, Claude λ“± LLM(Large Language Model) 기반 μžλ™ν™” ν™˜κ²½κ³Ό Python 개발자 λͺ¨λ‘κ°€ ν•œκ΅­νˆ¬μžμ¦κΆŒ(Korea Investment & Securities) Open APIλ₯Ό μ‰½κ²Œ μ΄ν•΄ν•˜κ³  ν™œμš©ν•  수 μžˆλ„λ‘ κ΅¬μ„±λœ μƒ˜ν”Œ μ½”λ“œ λͺ¨μŒμž…λ‹ˆλ‹€.

  • examples_llm/: LLM이 단일 API κΈ°λŠ₯을 μ‰½κ²Œ νƒμƒ‰ν•˜κ³  ν˜ΈμΆœν•  수 μžˆλ„λ‘ κ΅¬μ„±λœ κΈ°λŠ₯ λ‹¨μœ„ μƒ˜ν”Œ μ½”λ“œ
  • examples_user/: μ‚¬μš©μžκ°€ μ‹€μ œ 투자 및 μžλ™λ§€λ§€ κ΅¬ν˜„μ— ν™œμš©ν•  수 μžˆλ„λ‘ μƒν’ˆλ³„λ‘œ ν†΅ν•©λœ API 호좜 예제 μ½”λ“œ

AI와 μ‚¬λžŒμ΄ λͺ¨λ‘ ν™œμš©ν•˜κΈ° μ‰¬μš΄ ꡬ쑰λ₯Ό μ§€ν–₯ν•©λ‹ˆλ‹€.

ν•œκ΅­νˆ¬μžμ¦κΆŒ Open API 포털 λ°”λ‘œκ°€κΈ°

πŸ‘€ λŒ€μƒ μ‚¬μš©μž

  • ν•œκ΅­νˆ¬μžμ¦κΆŒ Open APIλ₯Ό 처음 μ‚¬μš©ν•˜λŠ” Python 개발자
  • κΈ°μ‘΄ Open API μ‚¬μš©μž 쀑 μ½”λ“œ κ°œμ„  및 ꡬ쑰 ν•™μŠ΅μ΄ ν•„μš”ν•œ μ‚¬μš©μž
  • LLM 기반 μ½”λ“œ μ—μ΄μ „νŠΈλ₯Ό ν™œμš©ν•΄ μ’…λͺ© 검색, μ‹œμ„Έ 뢄석, μžλ™λ§€λ§€ 등을 κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” μ‚¬μš©μž

2. 폴더 ꡬ쑰 및 μ£Όμš” 파일 μ„€λͺ…

2.1. 폴더 ꡬ쑰

# ν”„λ‘œμ νŠΈ ꡬ쑰
.
β”œβ”€β”€ README.md                    # ν”„λ‘œμ νŠΈ μ„€λͺ…μ„œ
β”œβ”€β”€ docs/
β”‚   └── convention.md            # μ½”λ”© μ»¨λ²€μ…˜ κ°€μ΄λ“œ
β”œβ”€β”€ examples_llm/                  # LLM용 μƒ˜ν”Œ μ½”λ“œ
β”‚   β”œβ”€β”€ kis_auth.py              # 인증 곡톡 ν•¨μˆ˜
β”‚   β”œβ”€β”€ domestic_bond            # κ΅­λ‚΄μ±„κΆŒ
β”‚   β”‚   └── inquire_price        # API 단일 κΈ°λŠ₯별 폴더
β”‚   β”‚       β”œβ”€β”€ inquire_price.py         # ν•œμ€„ 호좜 파일 (예: μ±„κΆŒ 가격 쑰회)
β”‚   β”‚       └── chk_inquire_price.py     # ν…ŒμŠ€νŠΈ 파일 (예: μ±„κΆŒ 가격 쑰회 κ²°κ³Ό 검증)
β”‚   β”œβ”€β”€ domestic_futureoption    # κ΅­λ‚΄μ„ λ¬Όμ˜΅μ…˜
β”‚   β”œβ”€β”€ domestic_stock           # ꡭ내주식
β”‚   β”œβ”€β”€ elw                      # ELW
β”‚   β”œβ”€β”€ etfetn                   # ETF/ETN
β”‚   β”œβ”€β”€ overseas_futureoption    # ν•΄μ™Έμ„ λ¬Όμ˜΅μ…˜
β”‚   β”œβ”€β”€ overseas_price           # ν•΄μ™Έμ‹œμ„Έ
β”‚   └── overseas_stock           # 해외주식
β”œβ”€β”€ examples_user/                 # user용 μ‹€μ œ μ‚¬μš© 예제
β”‚   β”œβ”€β”€ kis_auth.py              # 인증 곡톡 ν•¨μˆ˜
β”‚   β”œβ”€β”€ domestic_bond            # κ΅­λ‚΄μ±„κΆŒ
β”‚   β”‚   β”œβ”€β”€ domestic_bond_functions.py        # (REST) 톡합 ν•¨μˆ˜ 파일 (λͺ¨λ“  API ν•¨μˆ˜ λͺ¨μŒ)
β”‚   β”‚   β”œβ”€β”€ domestic_bond_examples.py         # (REST) μ‹€ν–‰ 예제 파일 (ν•¨μˆ˜ μ‚¬μš©λ²•)
β”‚   β”‚   β”œβ”€β”€ domestic_bond_functions_ws.py     # (Websocket) 톡합 ν•¨μˆ˜ 파일
β”‚   β”‚   └── domestic_bond_examples_ws.py      # (Websocket) μ‹€ν–‰ 예제 파일
β”‚   β”œβ”€β”€ domestic_futureoption    # κ΅­λ‚΄μ„ λ¬Όμ˜΅μ…˜
β”‚   β”œβ”€β”€ domestic_stock           # ꡭ내주식
β”‚   β”œβ”€β”€ elw                      # ELW
β”‚   β”œβ”€β”€ etfetn                   # ETF/ETN
β”‚   β”œβ”€β”€ overseas_futureoption    # ν•΄μ™Έμ„ λ¬Όμ˜΅μ…˜
β”‚   β”œβ”€β”€ overseas_price           # ν•΄μ™Έμ‹œμ„Έ
β”‚   └── overseas_stock           # 해외주식
β”œβ”€β”€ legacy/                      # ꡬ μƒ˜ν”Œμ½”λ“œ 보관
β”œβ”€β”€ stock_info/                  # μ’…λͺ©μ •λ³΄νŒŒμΌ μ°Έκ³  데이터
β”œβ”€β”€ kis_devlp.yaml               # API μ„€μ • 파일 (κ°œμΈμ •λ³΄ μž…λ ₯ ν•„μš”)
β”œβ”€β”€ pyproject.toml               # (uv)ν”„λ‘œμ νŠΈ μ˜μ‘΄μ„± 관리
└── uv.lock                      # (uv)μ˜μ‘΄μ„± 락 파일

2.2. μ§€μ›λ˜λŠ” μ£Όμš” API μΉ΄ν…Œκ³ λ¦¬

  • μ•„λž˜ μΉ΄ν…Œκ³ λ¦¬ 및 폴더 κ΅¬μ‘°λŠ” examples_llm/, examples_user/ 폴더 λͺ¨λ‘ λ™μΌν•˜κ²Œ μ μš©λ©λ‹ˆλ‹€.
μΉ΄ν…Œκ³ λ¦¬ μ„€λͺ… 폴더λͺ…
ꡭ내주식 κ΅­λ‚΄ 주식 μ‹œμ„Έ, μ£Όλ¬Έ, μž”κ³  λ“± domestic_stock
κ΅­λ‚΄μ±„κΆŒ κ΅­λ‚΄ μ±„κΆŒ μ‹œμ„Έ, μ£Όλ¬Έ λ“± domestic_bond
κ΅­λ‚΄μ„ λ¬Όμ˜΅μ…˜ κ΅­λ‚΄ νŒŒμƒμƒν’ˆ κ΄€λ ¨ domestic_futureoption
해외주식 ν•΄μ™Έ 주식 μ‹œμ„Έ, μ£Όλ¬Έ λ“± overseas_stock
ν•΄μ™Έμ„ λ¬Όμ˜΅μ…˜ ν•΄μ™Έ νŒŒμƒμƒν’ˆ κ΄€λ ¨ overseas_futureoption
ELW ELW μ‹œμ„Έ API elw
ETF/ETN ETF, ETN μ‹œμ„Έ API etfetn

2.3. μ£Όμš” 파일 μ„€λͺ…

examples_llm/ - llm용 κΈ°λŠ₯ λ‹¨μœ„ μƒ˜ν”Œ μ½”λ“œ

API별 κ°œλ³„ 폴더 ꡬ쑰: 단일 API κΈ°λŠ₯을 독립 ν΄λ”λ‘œ λΆ„λ¦¬ν•˜μ—¬, LLM이 κ΄€λ ¨ μ½”λ“œλ₯Ό μ‰½κ²Œ 탐색할 수 μžˆλ„λ‘ ꡬ성

  • ν•œμ€„ 호좜 파일: [ν•¨μˆ˜λͺ…].py – 단일 κΈ°λŠ₯을 ν˜ΈμΆœν•˜λŠ” μ΅œμ†Œ λ‹¨μœ„ μ½”λ“œ (예: inquire_price.py)
  • ν…ŒμŠ€νŠΈ 파일: chk_[ν•¨μˆ˜λͺ…].py – 호좜 κ²°κ³Όλ₯Ό κ²€μ¦ν•˜λŠ” ν…ŒμŠ€νŠΈ μ‹€ν–‰ μ½”λ“œ (예: chk_inquire_price.py)

examples_user/ - μ‚¬μš©μžμš© 톡합 예제 μ½”λ“œ

μΉ΄ν…Œκ³ λ¦¬λ³„ κ°œλ³„ 폴더 ꡬ쑰: μΉ΄ν…Œκ³ λ¦¬(μƒν’ˆ)λ³„λ‘œ λͺ¨λ“  κΈ°λŠ₯을 ν†΅ν•©ν•˜μ—¬, μ‚¬μš©μžκ°€ μ‰½κ²Œ μƒ˜ν”Œ μ½”λ“œλ₯Ό νƒμƒ‰ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλ„λ‘ ꡬ성

  • 톡합 ν•¨μˆ˜ 파일: [μΉ΄ν…Œκ³ λ¦¬]_functions.py - ν•΄λ‹Ή μΉ΄ν…Œκ³ λ¦¬μ˜ λͺ¨λ“  API κΈ°λŠ₯이 ν†΅ν•©λœ ν•¨μˆ˜ λͺ¨μŒ
  • μ‹€ν–‰ 예제 파일: [μΉ΄ν…Œκ³ λ¦¬]_examples.py - μ‹€μ œ μ‚¬μš© 예제λ₯Ό 기반으둜 ν•œ μ‹€ν–‰ μ½”λ“œ
  • μ›Ήμ†ŒμΌ“ 톡합 ν•¨μˆ˜ 파일 및 μ‹€ν–‰ 예제 파일: [μΉ΄ν…Œκ³ λ¦¬]_functions_ws.py, [μΉ΄ν…Œκ³ λ¦¬]_examples_ws.py

kis_auth.py - 인증 및 곡톡 κΈ°λŠ₯

  • 접근토큰 λ°œκΈ‰ 및 관리
  • API 호좜 곡톡 ν•¨μˆ˜
  • μ‹€μ „νˆ¬μž/λͺ¨μ˜νˆ¬μž ν™˜κ²½ μ „ν™˜ 지원
  • μ›Ήμ†ŒμΌ“ μ—°κ²° μ„€μ • κΈ°λŠ₯ 제곡

3. 사전 ν™˜κ²½μ„€μ • μ•ˆλ‚΄

3.1. Python ν™˜κ²½ μš”κ΅¬μ‚¬ν•­

  • Python 3.9 이상 ν•„μš”
  • uv νŒ¨ν‚€μ§€ λ§€λ‹ˆμ € μ‚¬μš© ꢌμž₯ (λΉ λ₯΄κ³  κ°„νŽΈν•œ μ˜μ‘΄μ„± 관리)

3.2. uv μ„€μΉ˜ 방법

  • κ°„νŽΈ 섀정을 μœ„ν•΄ uvλ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# μ„€μΉ˜ 확인
uv --version
# uv 0.x.x ... -> μ„€μΉ˜ μ™„λ£Œ

3.3. ν”„λ‘œμ νŠΈ 클둠 및 ν™˜κ²½ μ„€μ •

# μ €μž₯μ†Œ 클둠
git clone https://github.com/koreainvestment/open-trading-api
cd open-trading-api/kis_github

# uvλ₯Ό μ‚¬μš©ν•œ μ˜μ‘΄μ„± μ„€μΉ˜ - ν•œμ€„λ‘œ 끝
uv sync

3.4. KIS Open API μ‹ μ²­ 및 μ„€μ •

πŸ€ μ„œλΉ„μŠ€ μ‹ μ²­ μ•ˆλ‚΄ λ°”λ‘œκ°€κΈ°

  1. ν•œκ΅­νˆ¬μžμ¦κΆŒ κ³„μ’Œ κ°œμ„€ 및 ID μ—°κ²°
  2. ν•œκ΅­νˆ¬μžμ¦κΆŒ ν™ˆνŽ˜μ΄μ§€ or μ•±μ—μ„œ Open API μ„œλΉ„μŠ€ μ‹ μ²­
  3. μ•±ν‚€(App Key), μ•±μ‹œν¬λ¦Ώ(App Secret) λ°œκΈ‰
  4. λͺ¨μ˜νˆ¬μž 및 μ‹€μ „νˆ¬μž μ•±ν‚€ 각각 μ€€λΉ„

3.5. kis_devlp.yaml μ„€μ •

  • 본인의 계정 섀정을 μœ„ν•΄ kis_devlp.yaml νŒŒμΌμ„ μ—΄μ–΄ λ‹€μŒκ³Ό 같이 μˆ˜μ •ν•©λ‹ˆλ‹€.
  1. ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— μœ„μΉ˜ν•œ kis_devlp.yaml 파일 μ—΄κΈ°
  2. 앱킀와 μ•±μ‹œν¬λ¦Ώ 정보 μž…λ ₯
  3. HTS ID 정보 μž…λ ₯
  4. κ³„μ’Œλ²ˆν˜Έ 정보 μž…λ ₯ (μ•ž 8μžλ¦¬μ™€ λ’€ 2자리 ꡬ뢄)
  5. μ €μž₯ ν›„ λ‹«κΈ°
# μ‹€μ „νˆ¬μž
my_app: "여기에 μ‹€μ „νˆ¬μž μ•±ν‚€ μž…λ ₯"
my_sec: "여기에 μ‹€μ „νˆ¬μž μ•±μ‹œν¬λ¦Ώ μž…λ ₯"

# λͺ¨μ˜νˆ¬μž
paper_app: "여기에 λͺ¨μ˜νˆ¬μž μ•±ν‚€ μž…λ ₯"
paper_sec: "여기에 λͺ¨μ˜νˆ¬μž μ•±μ‹œν¬λ¦Ώ μž…λ ₯"

# HTS ID(KIS Developers 고객 ID) - 체결톡보, λ‚˜μ˜ 쑰건 λͺ©λ‘ 확인 등에 μ‚¬μš©λ©λ‹ˆλ‹€.
my_htsid: "μ‚¬μš©μž HTS ID"

# κ³„μ’Œλ²ˆν˜Έ μ•ž 8자리
my_acct_stock: "μ¦κΆŒκ³„μ’Œ 8자리"
my_acct_future: "μ„ λ¬Όμ˜΅μ…˜κ³„μ’Œ 8자리"
my_paper_stock: "λͺ¨μ˜νˆ¬μž μ¦κΆŒκ³„μ’Œ 8자리"
my_paper_future: "λͺ¨μ˜νˆ¬μž μ„ λ¬Όμ˜΅μ…˜κ³„μ’Œ 8자리"

# κ³„μ’Œλ²ˆν˜Έ λ’€ 2자리
my_prod: "01" # μ’…ν•©κ³„μ’Œ
# my_prod: "03" # κ΅­λ‚΄μ„ λ¬Όμ˜΅μ…˜ κ³„μ’Œ
# my_prod: "08" # ν•΄μ™Έμ„ λ¬Όμ˜΅μ…˜ κ³„μ’Œ
# my_prod: "22" # μ—°κΈˆμ €μΆ• κ³„μ’Œ
# my_prod: "29" # ν‡΄μ§μ—°κΈˆ κ³„μ’Œ

# User-Agent(κΈ°λ³Έκ°’ μ‚¬μš© ꢌμž₯, λ³€κ²½ λΆˆν•„μš”)
my_agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

3.6. kis_auth.py μ„€μ • 경둜 μˆ˜μ •

  • kis_auth.py의 config_root 경둜λ₯Ό 본인 ν™˜κ²½μ— 맞게 μˆ˜μ •ν•΄μ€λ‹ˆλ‹€. λ°œκΈ‰λœ 토큰 파일이 μ €μž₯될 경둜둜, 제3μžκ°€ μ°ΎκΈ° 어렡도둝 μ„€μ •ν•˜λŠ”κ²ƒμ„ ꢌμž₯ν•©λ‹ˆλ‹€.
# kis_auth.py 39번째 쀄
# windows - C:\Users\μ‚¬μš©μžμ΄λ¦„\KIS\config
# Linux/macOS - /home/μ‚¬μš©μžμ΄λ¦„/KIS/config
# config_root = os.path.join(os.path.expanduser("~"), "KIS", "config")
config_root = os.path.join(os.path.expanduser("~"), "폴더 경둜", "config")

3.7. μ‹€ν–‰νŒŒμΌ λ‚΄ 인증 μ„€μ • κ²€ν† 

  • μ‹€ν–‰ν•˜λ €λŠ” νŒŒμΌμ—μ„œ 인증 κ΄€λ ¨ 섀정을 κ²€ν†  ν˜Ήμ€ λ³€κ²½ν•΄μ€λ‹ˆλ‹€. ꡭ내주식 κΈ°λŠ₯ 전체λ₯Ό μ΄μš©ν•˜μ‹œλ €λ©΄, domestic_stock/domestic_stock_examples.py νŒŒμΌμ„ ν™•μΈν•΄μ£Όμ„Έμš”. ka.auth() ν•¨μˆ˜μ˜ svr, product λ§€κ°œλ³€μˆ˜λ₯Ό μ•„λž˜μ™€ 같이 μˆ˜μ •ν•˜λ©΄ μ‹€μ „ν™˜κ²½(prod)μ—μ„œ μœ„νƒκ³„μ’Œ(-01)둜 λ§€λ§€ ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.
import kis_auth as ka

# μ‹€μ „νˆ¬μž 인증
ka.auth(svr="prod", product="01") # λͺ¨μ˜νˆ¬μž: svr="vps"

4. μƒ˜ν”Œ μ½”λ“œ μ‹€ν–‰

4.1. μƒ˜ν”Œ μ½”λ“œ μ‹€ν–‰

  • examples_user κΈ°μ€€
# ꡭ내주식 μƒ˜ν”Œ μ½”λ“œ μ‹€ν–‰ (examples_user/domestic_stock/)
python domestic_stock_examples.py # REST 방식
python domestic_stock_examples_ws.py  # Websocket 방식 

domestic_stock_examples.pyμ—λŠ” μ—¬λŸ¬ ν•¨μˆ˜κ°€ ν¬ν•¨λ˜μ–΄ μžˆμœΌλ―€λ‘œ, μ‚¬μš©ν•˜λ €λŠ” ν•¨μˆ˜λ§Œ 남기고 λ‚˜λ¨Έμ§€λŠ” 주석 μ²˜λ¦¬ν•œ ν›„, μž…λ ₯값을 μˆ˜μ •ν•˜μ—¬ ν˜ΈμΆœν•΄ μ£Όμ„Έμš”.

  • examples_llm κΈ°μ€€
# ꡭ내주식 > μ£Όμ‹ν˜„μž¬κ°€ μ‹œμ„Έ μƒ˜ν”Œ μ½”λ“œ μ‹€ν–‰ (examples_llm/domestic_stock/inquire_price/)
python chk_inquire_price.py

examples_llm 은 각 κΈ°λŠ₯λ³„λ‘œ κ°œλ³„ μ‹€ν–‰ 파일(chk_*.py)이 λΆ„λ¦¬λ˜μ–΄ μžˆμ–΄, νŠΉμ • κΈ°λŠ₯만 ν…ŒμŠ€νŠΈν•˜κ³ μž ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.

4.2. 예제 μ½”λ“œ μƒ˜ν”Œ (examples_user)

# REST API 호좜 예제 - domestic_stock_examples.py
import sys
import logging
import pandas as pd
sys.path.extend(['..', '.'])

import kis_auth as ka
from domestic_stock_functions import *

# λ‘œκΉ… μ„€μ •
logging.basicConfig(level=logging.INFO, format='%(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

# 인증
ka.auth()
trenv = ka.getTREnv()

# μ‚Όμ„±μ „μž ν˜„μž¬κ°€ μ‹œμ„Έ 쑰회
result = inquire_price(env_dv="real", fid_cond_mrkt_div_code="J", fid_input_iscd="005930")
print(result)
# μ›Ήμ†ŒμΌ“ 호좜 예제 - domestic_stock_examples_ws.py
import sys
import logging
import pandas as pd
sys.path.extend(['..', '.'])

import kis_auth as ka
from domestic_stock_functions_ws import *

# λ‘œκΉ… μ„€μ •
logging.basicConfig(level=logging.INFO, format='%(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

# 인증
ka.auth()
ka.auth_ws()
trenv = ka.getTREnv()

# μ›Ήμ†ŒμΌ“ μ„ μ–Έ
kws = ka.KISWebSocket(api_url="/tryitout")

# μ‚Όμ„±μ „μž, skν•˜μ΄λ‹‰μŠ€ μ‹€μ‹œκ°„ ν˜Έκ°€ ꡬ독
kws.subscribe(request=asking_price_krx, data=["005930", "000660"])

5. 문제 ν•΄κ²° κ°€μ΄λ“œ

토큰 였λ₯˜ μ‹œ

import kis_auth as ka

# 토큰 μž¬λ°œκΈ‰ - 1λΆ„λ‹Ή 1회 λ°œκΈ‰λ©λ‹ˆλ‹€.
ka.auth(svr="prod")  # λ˜λŠ” "vps"

μ„€μ • 파일 였λ₯˜ μ‹œ

  • kis_devlp.yaml 파일의 μ•±ν‚€, μ•±μ‹œν¬λ¦Ώμ΄ μ˜¬λ°”λ₯Έμ§€ 확인
  • κ³„μ’Œλ²ˆν˜Έ ν˜•μ‹μ΄ λ§žλŠ”μ§€ 확인 (μ•ž 8자리 + λ’€ 2자리)
  • μ‹€μ‹œκ°„ μ‹œμ„Έ(WebSocket) 이용 쀑 β€˜No close frame received’ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” 경우, kis_devlp.yaml에 μž…λ ₯ν•˜μ‹  HTS IDκ°€ μ •ν™•ν•œμ§€ 확인

μ˜μ‘΄μ„± 였λ₯˜ μ‹œ

# μ˜μ‘΄μ„± μž¬μ„€μΉ˜
uv sync --reinstall

πŸ“§ λ¬Έμ˜μ‚¬ν•­

About

Korea Investment & Securities Open API Github

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.1%
  • C# 2.0%
  • Other 0.9%