KIS-Agent — l’OpenAPI de Korea Investment & Securities, désormais avec un simple pip
(github.com/Intrect-io)Créé pour celles et ceux qui ont déjà ouvert puis refermé la documentation officielle en voulant utiliser l’OpenAPI de Korea Investment & Securities.
Gestion des jetons d’authentification, surveillance du Rate Limit, déchiffrage de noms de champs comme stck_prpr, boucle de pagination par 100 éléments — je me suis demandé s’il fallait vraiment réécrire tout ça à chaque fois, donc j’en ai fait un wrapper.
Qu’est-ce que ça permet ?
Directement dans le terminal :
kis price 005930 # cours actuel de Samsung Electronics
kis balance --holdings # solde du compte + positions détenues
kis overseas NAS AAPL # AAPL sur le Nasdaq
Dans le code :
agent = Agent(app_key=..., app_secret=..., account_no=...)
price = agent.get_stock_price("005930")
agent.order_stock_cash("buy", "005930", "03", "1", "0") # achat au marché
Comme outil pour agent LLM :
Grâce à la sortie JSON et à l’exploration des types du schéma kis, il peut être branché directement sur les tool calls de GPT/Claude.
Principaux points résolus
Conversion automatique des noms de champs — stck_prpr → currentPrice. Plus besoin de recevoir la réponse officielle telle quelle
Rate Limiting intégré — 18 RPS / 900 RPM mesurés en conditions réelles. Pas besoin d’ajuster après coup quand ça casse
Cache — réduction de 80 à 95 % des appels API lors de requêtes identiques répétées
Contournement de la limite de 100 éléments — collecte automatique sur toute la période avec get_daily_price_all()
96 modèles TypedDict — autocomplétion IDE et vérificateurs de types fonctionnent entièrement
Périmètre pris en charge
Corée (KOSPI/KOSDAQ/NXT) · 9 places boursières à l’international (NASDAQ, NYSE, Tokyo, Shanghai, Hong Kong, Vietnam, etc.) · contrats à terme et options en Corée et à l’international · streaming temps réel via WebSocket · analyse des tendances par investisseurs / trading programmé / société de courtage
Comme le projet a été conçu pour l’automatisation du trading personnel, l’implémentation se concentre surtout sur les fonctionnalités réellement utilisées en conditions réelles. S’il manque des fonctions présentes dans l’API officielle, ouvrez une issue et je les ajouterai.
Aucun commentaire pour le moment.