KIS-Agent — Korea Investment & Securities OpenAPI, jetzt mit nur einem `pip`
(github.com/Intrect-io)Ich habe das für alle gebaut, die schon einmal die offizielle Dokumentation der Korea Investment & Securities OpenAPI geöffnet und gleich wieder geschlossen haben.
Token-Management für die Authentifizierung, Abschätzen von Rate Limits, Entschlüsseln von Feldnamen wie stck_prpr, 100er-Paginierungsloops — ich habe mich gefragt, ob man das wirklich jedes Mal selbst schreiben muss, und deshalb alles in einen Wrapper gepackt.
Was ist möglich
Direkt im Terminal:
bashkis price 005930 # aktueller Kurs von Samsung Electronics
kis balance --holdings # Kontostand + gehaltene Titel
kis overseas NAS AAPL # NASDAQ AAPL
Im Code:
pythonagent = Agent(app_key=..., app_secret=..., account_no=...)
price = agent.get_stock_price("005930")
agent.order_stock_cash("buy", "005930", "03", "1", "0") # Marktorder Kauf
Als LLM-Agent-Tool:
Mit JSON-Ausgabe und Erkundung der kis-Schema-Typen lässt es sich direkt an GPT-/Claude-Tool-Calls anschließen.
Wichtige gelöste Punkte
Automatische Umwandlung von Feldnamen — stck_prpr → currentPrice. Es ist nicht nötig, die offizielle Antwort unverändert zu übernehmen
Integriertes Rate Limiting — gemessen 18 RPS / 900 RPM. Kein Nachjustieren erst nach Fehlern
Caching — bei wiederholten identischen Anfragen 80–95 % weniger API-Aufrufe
Umgehung des 100er-Limits — mit get_daily_price_all() automatische Erfassung des gesamten Zeitraums
96 TypedDict-Modelle — IDE-Autovervollständigung und Type Checker funktionieren vollständig
Unterstützter Umfang
Inland (KOSPI/KOSDAQ/NXT) · 9 ausländische Börsen (NASDAQ, NYSE, Tokio, Shanghai, Hongkong, Vietnam usw.) · in- und ausländische Futures und Optionen · WebSocket-Echtzeit-Streaming · Trendanalyse nach Investoren/Programmhandel/Wertpapierhäusern
Da das Projekt für die Automatisierung des persönlichen Tradings entstanden ist, sind vor allem die Dinge implementiert, die in der Praxis tatsächlich genutzt werden. Wenn in der offiziellen API vorhandene Funktionen fehlen, hinterlasst bitte ein Issue, dann ergänze ich sie.
Noch keine Kommentare.