키움증권 자동 매매
1. 개요
키움증권에서 제공하는 OpenAPI를 활용하면 자동으로 주식 주문, 실시간 시세 조회 등이 가능한 자동 매매 프로그램을 만들 수 있습니다. 이 가이드는 Python 언어 기준으로 핵심 기능과 개발 흐름을 설명하며, 기초 자동 매매 구현에 초점을 맞춥니다.
2. 키움 OpenAPI 기본 이해
키움증권 OpenAPI는 COM 방식으로, 윈도우 환경과 ActiveX 기반입니다.
Python 연동은 pywin32 패키지 등으로 가능하며, 기본 COM 객체와 이벤트 제어를 통해 통신합니다.
로그인, 실시간 시세, 주문, 체결, 잔고 조회 등의 기능을 제공합니다.
3. 개발 환경 준비
키움증권 영웅문S Plus API 설치
Python 3.x 버전과 pywin32 패키지 설치 (pip install pywin32)
윈도우 OS 실행 환경
4. 주요 기능 구현 예시 코드 (Python)
python
import pythoncom
from win32com.client import Dispatch, DispatchWithEvents
class Kiwoom:
def __init__(self):
self.kiwoom = Dispatch("KHOPENAPI.KHOpenAPICtrl.1")
self.kiwoom.OnEventConnect.connect(self.on_event_connect)
self.login()
def login(self):
self.kiwoom.CommConnect() # 로그인 창 호출
def on_event_connect(self, err_code):
if err_code == 0:
print("로그인 성공")
# 이후 조회나 주문 기능 호출 가능
def get_stock_price(self, code):
# 주가 정보 요청 예시
price = self.kiwoom.GetMasterLastPrice(code)
return price
def send_order(self, order_type, code, quantity, price=0):
# 주문 유형 예: 1=신규매수, 2=신규매도
self.kiwoom.SendOrder("주문명", "0101", "사용자ID", order_type, code, quantity, price, "00", "")
if __name__ == "__main__":
pythoncom.CoInitialize()
api = Kiwoom()
# 실제 주문/조회 작업 여기에 추가
위 코드는 로그인, 단순 호가 조회, 기본 주문 보내기 기능의 뼈대입니다. 반드시 API 매뉴얼과 디버깅을 통해 상세 구현하세요.
5. 자동 매매 전략 간단 예
예: 5분 단위 가격이 전일 종가 대비 2% 이상 상승 시 매수
조건 생성 후 이벤트 기반 코드 추가로 실시간 대응 가능
6. 주의사항 및 법적 고지
주식 자동 매매는 리스크가 높고, 투자 손실 책임은 전적으로 본인에게 있습니다.
키움 OpenAPI 규약 및 증권거래법 등 관련 법규 준수해야 합니다.
연속 주문 제한, 속도 제한 등 API 제한 사항 숙지 필요
보안과 서버 안정성 확보 필수
7. 참고 자료
키움증권 공식 OpenAPI 홈페이지: https://developer.kiwoom.com/
Python COM 연동 관련 공식 문서 및 예제
커뮤니티 및 GitHub 공개 프로젝트 참고
8. FAQ
Q1: API 호출 제한은 어떻게 되나요?
A1: 키움증권 정책에 따라 호출 횟수와 속도 제한 존재, 반드시 문서 확인 필요
Q2: 실시간 이벤트 처리는 어떻게 구현하나요?
A2: COM 이벤트 핸들러 구현으로 처리 가능하며, 패키지 이벤트 지원 확인 권장
Q3: 외부 서버에서 실행 가능한가요?
A3: 원칙상 윈도우 OS환경 및 로그인 인증이 필요해 일반 클라우드 환경은 제한적
Q4: 자동 매매 전략 개발 시 주의해야 할 점은?
A4: 투자 위험 관리, API 호출 제한, 실시간 데이터 신뢰성 확보 등이 중요
Q5: 시험용 모의투자 환경은 있나요?
A5: 키움증권에서 모의투자 API 별도로 제공, 반드시 사용 권장

