ทำขึ้นมาสำหรับคนที่เคยเปิดเอกสารทางการของ OpenAPI จาก Korea Investment & Securities เพื่อจะใช้งาน แล้วก็ปิดมันลงไป
ทั้งการจัดการ authentication token, การคอยระวัง Rate Limit, การถอดรหัสชื่อฟิลด์อย่าง stck_prpr, และลูป pagination ทีละ 100 รายการ — รู้สึกว่าไม่ควรต้องเขียนเองใหม่ทุกครั้ง เลยรวมให้เป็น wrapper ไว้

ทำอะไรได้บ้าง
ใช้งานจากเทอร์มินัลได้ทันที:

kis price 005930           # ราคาปัจจุบันของ Samsung Electronics  
kis balance --holdings     # ยอดคงเหลือในบัญชี + หุ้นที่ถืออยู่  
kis overseas NAS AAPL      # AAPL ใน Nasdaq  

ใช้จากโค้ด:

agent = Agent(app_key=..., app_secret=..., account_no=...)  
price = agent.get_stock_price("005930")  
agent.order_stock_cash("buy", "005930", "03", "1", "0")  # ซื้อแบบราคาตลาด  

ใช้เป็นเครื่องมือสำหรับ LLM agent:
รองรับการแสดงผลแบบ JSON + การสำรวจชนิดข้อมูลของ kis schema จึงนำไปต่อกับ tool call ของ GPT/Claude ได้ทันที

จุดเด่นที่แก้ปัญหาไว้

แปลงชื่อฟิลด์อัตโนมัติ — stck_prprcurrentPrice ไม่จำเป็นต้องรับรูปแบบ response ทางการตรง ๆ
มี Rate Limiting ในตัว — วัดจากการใช้งานจริงที่ 18 RPS / 900 RPM ไม่ต้องรอให้พังก่อนแล้วค่อยปรับ
แคช — เมื่อมีการเรียกคำขอเดิมซ้ำ ลดการเรียก API ลงได้ 80~95%
หลบข้อจำกัด 100 รายการ — ใช้ get_daily_price_all() เพื่อดึงข้อมูลอัตโนมัติได้ครบทุกช่วงเวลา
มีโมเดล TypedDict 96 แบบ — IDE autocomplete และตัวตรวจสอบ type ใช้งานได้ครบ

ขอบเขตการรองรับ
ในประเทศ (KOSPI/KOSDAQ/NXT) · ต่างประเทศ 9 ตลาด (NASDAQ, NYSE, โตเกียว, เซี่ยงไฮ้, ฮ่องกง, เวียดนาม ฯลฯ) · ฟิวเจอร์สและออปชันทั้งในและต่างประเทศ · สตรีมมิงแบบเรียลไทม์ผ่าน WebSocket · การวิเคราะห์แนวโน้มนักลงทุน/การซื้อขายแบบโปรแกรม/ตามบริษัทหลักทรัพย์

เนื่องจากสร้างขึ้นมาเพื่อใช้ทำระบบเทรดอัตโนมัติส่วนบุคคล ฟังก์ชันที่ทำไว้จึงเน้นสิ่งที่ใช้งานจริงในการเทรดเป็นหลัก หากมีฟังก์ชันใน API ทางการที่ยังขาดไป ฝากเปิด issue ไว้ได้ แล้วจะเพิ่มให้ครับ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น