사람이 직접 매매하던 시대는 이미 저물었습니다.
투자의 본질과 시장을 꿰뚫는 인사이트는 여전히 변하지 않았지만, 초단위로 요동치는 가격과 왜곡된 흐름 속에서 개인이 손으로 매매한다는 것은 더 이상 효율적이지 않습니다.
이제는 나를 대신해, 잠든 동안에도 혹은 가족과 시간을 보내는 순간에도, 시장에서 단 1원이라도 놓치지 않고 챙겨줄 AI 트레이딩 엔진이 필요합니다. 내가 집중해야 할 더 중요한 일과 새로운 사업을 추진하는 동안, 내가 만든 엔진은 쉼 없이 시장에서 기회를 포착하고 내 자산을 불려나갈 것입니다.
나는 오랜 시간 투자의 길을 걸어왔습니다.
수많은 시행착오와 경험 속에서 배운 것은 단순한 수치나 지표만으로는 시장을 이길 수 없다는 사실이었습니다. “왜 이 종목인가? 왜 지금 사야 하는가? 왜 팔아야 하는가?”라는 질문의 답은 언제나 변동하는 시장 상황과 맥락 속에서 달라집니다.
5년 전, 자동 매매를 직접 만들어보려 했지만, 단순한 개발 역량만으로는 원하는 성과를 낼 수 없다는 벽을 마주했습니다. 그 후 수많은 책을 읽고, 실전 매매로 경험을 쌓으며, 투자 본질을 꿰뚫기 위한 공부와 시행착오를 거듭했습니다. 그리고 마침내, 깨달은 투자 철학과 노하우를 하나씩 **코드화하여 나를 대신할 기계적 투자자(AI)**를 만드는 여정에 들어섰습니다.
이번 페이지는 그 여정의 첫걸음으로, 키움 API를 활용하기 위한 기술적 준비 과정을 담고 있습니다.
import requests
import json
import os
# 비밀 오픈 금지
APPKEY = os.environ.get(“APPKEY”, “발급받은 APPKEY”)
SECRETKEY = os.environ.get(“SECRETKEY”, “발급받은 SECRETKEY”)
import requests
BASE = “https://api.kiwoom.com”
def get_token(appkey: str, secretkey: str) -> dict:
r = requests.post(
f”{BASE}/oauth2/token”,
headers={
“Content-Type”: “application/json;charset=UTF-8”,
“api-id”: “au10001”,
},
json={
“grant_type”: “client_credentials”,
“appkey”: APPKEY,
“secretkey”: SECRETKEY,
},
timeout=10,
)
r.raise_for_status()
return r.json()
def call_ka10001(token: str, stk_cd: str) -> dict:
r = requests.post(
f”{BASE}/api/dostk/stkinfo”,
headers={
“Content-Type”: “application/json;charset=UTF-8”,
“api-id”: “ka10001”,
“authorization”: f”Bearer {token}”,
},
json={“stk_cd”: stk_cd},
timeout=10,
)
r.raise_for_status()
return r.json()
if __name__ == “__main__”:
tok = get_token(APPKEY, SECRETKEY)
print(“TOKEN:”, tok[“token_type”], tok[“token”])
data = call_ka10001(tok[“token”], “005930”)
print(“KA10001:”, str(data)[:300], “…”)
📦 Kiwoom REST 자동매매 스타터와 고급사용 킷 (Python & n8n)
키움 API 이용 안내