키움 REST API - 개인 투자자를 위한 알고리즘 트레이딩
1. 소개
안녕하세요, 주식과 프로그래밍에 관심 많은 평범한 개인 투자자입니다. 최근 키움증권이 출시한 키움 REST API를 직접 사용해보고 경험을 공유합니다.
이전에는 자동매매에 관심이 있어도 복잡한 설치와 환경 구성 때문에 시작이 어려웠는데요, 이번 REST API는 복잡한 설치 없이 주식 시세 조회와 자동매매 구현이 가능해졌습니다.
2. 기존 API와의 차이점
- 기존 API는 대부분 Windows 전용, 설치가 복잡하고 ActiveX 기반
- REST API는 Windows, Mac, Linux 모두 지원
- 설치 없이 HTTP 요청만으로 사용 가능
- Python, Java 등 다양한 언어로 코딩 가능
3. 장점 요약
- 접근성: OS 제한 없이 실행 가능
- 언어 지원: Python, Java 등 익숙한 언어 사용 가능
- 문서 제공: 공식 예제와 Q&A 게시판 운영
- AI 코딩 어시스턴트 (출시 예정): 전략 설명만으로 코드 자동 생성
4. 사용 전 준비사항
- 키움증권 계좌 개설
- REST API 신청 및 승인
- API 키와 시크릿 발급
- Python 3.6 이상 설치
- 필요한 라이브러리 설치:
pip install requests pandas
5. 키움 REST API 예제 (Python)
아래는 키움 REST API를 활용해 삼성전자(005930)의 일별 시세를 조회하는 간단한 예제입니다.
import requests
import pandas as pd
from datetime import datetime
# 토큰 발급
url = "https://api.kiwoom.com/oauth2/token"
data = {
"grant_type": "client_credentials",
"appkey": "your_app_key",
"appsecret": "your_app_secret"
}
headers = {"Content-Type": "application/json;charset=UTF-8"}
res = requests.post(url, headers=headers, json=data)
token = res.json().get("access_token")
# 일별 시세 조회
url = "https://api.kiwoom.com/api/dostk/chart"
headers = {
"authorization": f"Bearer {token}",
"Content-Type": "application/json;charset=UTF-8",
"api-id": "ka10081"
}
data = {
"stk_cd": "005930",
"base_dt": datetime.now().strftime("%Y%m%d"),
"upd_stkpc_tp": "1"
}
res = requests.post(url, headers=headers, json=data)
df = pd.DataFrame(res.json()["output"]["ka10081OutBlock1"])
print(df.head())
print("평균 종가:", df["stk_clpr"].astype(float).mean())
※ 주의: 위 코드의 appkey와 appsecret는 본인의 API 키로 바꾸어야 합니다.
6. 마무리
키움 REST API는 개인 투자자에게 자동매매의 문을 여는 유용한 도구입니다.
곧 출시될 AI 코드 어시스턴트와 함께라면 코딩이 익숙하지 않은 사람도 쉽게 전략을 구현할 수 있을 것입니다.
다음 글에서는 조건 기반 자동 매매 전략을 실제로 구현해보는 과정을 다뤄볼게요.
👉 자동화된 투자, 지금 시작해보세요!
댓글
댓글 쓰기