한국투자증권 KIS API
자동매매 제작
한국투자증권 KIS Developers API 기반 자동매매 프로그램을 맞춤 제작합니다. 국내주식, 해외주식(미국·홍콩·일본 등), 선물·옵션 모두 지원하는 현대적 REST API로, 키움보다 구조가 깔끔하고 클라우드 서버 배포에 유리합니다. 알고랩(AlgoLab)이 국내·해외주식 KIS API 자동매매 70건+ 제작 경험 반영.
/oauth2/tokenP로 access_token을 얻은 뒤 tr_id 헤더로 업무를 지정해 호출합니다. 키움과 달리 Windows·32bit 제약이 없어 리눅스 서버와 클라우드에서 그대로 돌아가고, 국내주식과 해외주식을 하나의 API로 처리합니다. 대신 해외주식 시장가 주문 불가, 해외 호출 한도가 매우 엄격하다는 제약이 있습니다. 발급 절차만 먼저 보시려면 → KIS API 발급 30분 가이드.
KIS API 자동매매 주요 유형
- 국내주식 + TradingView 웹훅 연동 — Pine Script 시그널을 KIS REST 로 실거래 집행
- 해외주식 자동매매 — 애플·테슬라·엔비디아 등 지정가 기반 자동매매 (시장가 제약 대응)
- 미국 나스닥 선물 자동매매 — 24시간 돌아가는 나스닥 선물에 TradingView 시그널 연결
- 국내주식 스크리닝 자동매매 — 시총 상위·거래대금 상위 종목 대상 지표 기반
- 해외주식 배당주 리밸런싱 — 주간·월간 주기로 포트폴리오 자동 조정
- 매매일지 자동화 — 모든 체결 내역을 Google Sheets·엑셀로 자동 기록
기술 구조
| 항목 | 사양 |
|---|---|
| API 문서 | apiportal.koreainvestment.com (KIS Developers) |
| 인증 | OAuth 2.0 (Access Token, 24시간 유효, 자동 갱신 로직 필수) |
| 언어 | Python 3.10+ 64bit (Windows·Linux·macOS·클라우드 모두 가능) |
| Rate Limit (국내) | 초당 20회 (실전 투자), 초당 2회 (모의 투자) |
| Rate Limit (해외) | 초당 1회만 허용 (매우 엄격 — 1초 딜레이 필수) |
| 실시간 시세 | WebSocket (별도 승인 필요, 계정당 41개 종목 한도) |
| 모의투자 | 도메인·tr_id·APP KEY가 모두 별도 (openapivts…:29443 vs openapi…:9443) |
※ 호출 한도·승인 조건 등 위 수치는 한국투자증권 정책에 따라 변경될 수 있습니다. 최신 스펙은 KIS Developers 포털에서 확인하세요.
해외주식 시장가 주문 불가 — 중요: KIS API 해외주식은 오직 지정가만 가능합니다. 시장가 효과가 필요하면 현재 호가 대비 슬리피지를 반영한 지정가를 넣어야 합니다. 알고랩 봇은 이를 자동으로 처리합니다 (예: 롱 진입 시 현재가 +0.2% 지정가, 숏 진입 시 -0.2%).
KIS API는 실제로 어떻게 호출하나
맡기시더라도 무엇이 오가는지는 알고 계시는 편이 좋습니다. KIS API 호출은 항상 같은 3단계입니다 — ① APP KEY·APP SECRET으로 토큰 발급 → ② 헤더에 tr_id를 실어 업무 호출 → ③ 응답의 rt_cd로 성공·실패 판정.
① 접근토큰 발급
import requests, json
BASE = "https://openapi.koreainvestment.com:9443" # 실전투자
res = requests.post(f"{BASE}/oauth2/tokenP",
headers={"content-type": "application/json"},
data=json.dumps({
"grant_type": "client_credentials",
"appkey": APP_KEY, # KIS Developers에서 발급
"appsecret": APP_SECRET,
}), timeout=10)
token = res.json()["access_token"] # 유효기간 24시간 — 캐시 필수
토큰은 발급 요청을 짧은 간격으로 반복하면 차단되므로 반드시 파일이나 캐시에 저장해 두고 만료 직전에만 재발급해야 합니다. 이 갱신 로직을 빠뜨리면 봇이 하루 뒤에 조용히 멈춥니다.
② 주문 호출 — tr_id가 업무를 지정합니다
headers = {
"content-type": "application/json",
"authorization": f"Bearer {token}",
"appkey": APP_KEY,
"appsecret": APP_SECRET,
"tr_id": "TTTC0802U", # 국내주식 현금 매수(실전) / 모의는 VTTC0802U
"custtype": "P", # 개인
}
body = {"CANO": CANO, "ACNT_PRDT_CD": "01", "PDNO": "005930",
"ORD_DVSN": "01", "ORD_QTY": "1", "ORD_UNPR": "0"} # 01 = 시장가
③ 응답 판정
{"rt_cd":"0","msg_cd":"APBK0013","msg1":"주문 전송 완료 되었습니다."}
{"rt_cd":"1","msg_cd":"EGW00201","msg1":"초당 거래건수를 초과하였습니다."}
rt_cd가 "0"이면 성공, 그 외는 실패이고 원인은 msg_cd에 찍힙니다. 실무에서 자주 보는 코드와 대처는 → KIS API 에러코드 11가지. 모의에서 실전으로 넘길 때 바꿔야 하는 항목은 → KIS 모의투자 실전 전환 6가지.
※ tr_id와 파라미터 규격은 KIS 공지로 변경될 수 있습니다. 실제 개발 시 KIS Developers 포털의 해당 API 문서에서 최종 확인하세요.
핵심 기능 구성 요소
- OAuth 자동 갱신: Access Token 만료 감지 후 백그라운드 재발급
- 국내·해외 모듈 분리: 엔드포인트·Rate Limit·주문 타입이 다르므로 별도 모듈로 관리
- 지정가 자동 산출: 해외주식 시장가 대안용 슬리피지 기반 지정가 계산
- Rate Limiter: 국내 초당 20회 / 해외 초당 1회 엄격 준수
- 실시간 시세 WebSocket: 41개 한도 내 종목 동적 등록·해제
- 체결·잔고 동기화: 주기적 폴링 + 체결 후 즉시 동기화
- 클라우드 배포 가이드: AWS Lightsail / Oracle Cloud 무료 티어 배포 옵션
제작 비용·기간 가이드
| 유형 | 예상 비용 | 제작 기간 |
|---|---|---|
| 국내주식 단순 지표 기반 | 80~150만원 | 7~10일 |
| 국내주식 + TradingView 웹훅 연동 | 150~250만원 | 10~14일 |
| 해외주식 자동매매 (지정가 슬리피지 포함) | 150~280만원 | 10~16일 |
| 나스닥 선물 + 트레이딩뷰 양방향 | 200~350만원 | 14~18일 |
| 복합(백테스팅 + GUI + 클라우드 배포) | 300~500만원 | 18~28일 |
자주 묻는 질문
API 신청은 어떻게 하나요?
KIS Developers(apiportal.koreainvestment.com) 회원가입 → 계좌 연결 → API 신청. 실전 투자 API는 별도 승인 절차(1~2일), 모의 투자 API 는 즉시 사용 가능합니다. 알고랩 제작 시 신청 가이드를 제공합니다.
KIS APP KEY와 APP SECRET은 무엇인가요?
KIS Developers에서 앱을 등록하면 나오는 한 쌍의 인증 문자열입니다. APP KEY가 앱 식별자, APP SECRET이 비밀키이며, 이 둘로 /oauth2/tokenP를 호출해 24시간짜리 access_token을 받습니다. 실전용과 모의투자용이 각각 별도로 발급되므로 서로 바꿔 쓸 수 없고, 코드에 직접 적지 말고 환경변수나 별도 설정 파일로 분리해 보관해야 합니다. 발급 화면 순서는 KIS API 발급 30분 가이드에 정리돼 있습니다.
왜 키움 대신 KIS API 를 쓰나요?
키움은 Windows + Python 32bit 고정이라 클라우드 서버 배포·macOS·Linux 사용이 불가합니다. KIS API는 현대적 REST 라 어떤 환경에서든 돌아가고, 해외주식까지 하나의 API로 커버됩니다. 단, 해외 시장가 불가 · Rate Limit 엄격 등 제약도 있습니다.
24시간 VPS 에서 돌릴 수 있나요?
가능합니다. KIS API는 HTTP REST 라 AWS·Oracle·Cloudflare 등 어디서든 동작합니다. 배포 가이드를 납품에 포함합니다. 다만 OAuth Access Token 24시간 주기 갱신만 빠뜨리지 않으면 됩니다.
모의투자로 먼저 테스트 가능한가요?
네. 다만 모의투자는 실전과 도메인·tr_id·APP KEY가 모두 다릅니다(모의 openapivts…:29443 / 실전 openapi…:9443, tr_id는 모의가 V·실전이 T로 시작). 알고랩은 설정 한 곳만 바꾸면 전환되도록 제작하며, 1~2주 모의투자 검증 후 실거래 전환을 권장합니다. 전환 시 확인할 항목은 KIS 모의투자 실전 전환 6가지에 정리했습니다.
제작 사례
KIS API 자동매매 실제 제작 사례는 포트폴리오에서 확인하실 수 있습니다.
전략 아이디어부터 바로 상담해보세요
국내·해외 중 어디에 집중할지, 모의·실전 중 뭘로 시작할지도 상담에서 함께 정합니다.
알고랩이 24시간 빠르게 답변드립니다.