퀀트투자 기법을 활용한 키움증권 API 기반 자동매매 시스템
Quant2Trade는 대학원 프로젝트로 진행된 키움증권 OpenAPI 기반의 Python 자동매매 시스템입니다. 학술적 연구 목적으로 개발되었으며, PyQt5를 이용한 직관적인 GUI와 멀티스레딩을 통해 안전하고 효율적인 주식 자동매매를 구현했습니다.
- 목적: 퀀트투자 기법 연구 및 알고리즘 트레이딩 시스템 구현
- 진행 기간: 대학원 과정 중 생성형 AI 프로젝트
- 연구 분야: 금융공학, 알고리즘 트레이딩, 시스템 개발
- 실시간 계좌평가잔고내역 조회
- 보유종목 현황 및 수익률 확인
- 매수가능금액 및 투자위험도 분석
- 실시간 주가 모니터링
- 설정된 조건에 따른 자동 매수/매도
- 손익실현 자동화 (익절/손절)
- 중복주문 방지 시스템
- 관심종목 추가/삭제
- 종목별 매매 조건 설정
- 매매 이력 저장 및 불러오기
- 주식 체결 정보 실시간 수신
- 호가잔량 정보 모니터링
- 장중 시세 변동 추적
- Python 3.x
- PyQt5 - GUI 프레임워크
- 키움증권 OpenAPI - 주식거래 API
- QThread - 멀티스레딩 처리
- Singleton Pattern - 키움 API 연결 관리
quant2trade/
├── Trading.py # 메인 GUI 프로그램
├── kiwoom.py # 키움증권 API 연결 클래스 (Singleton)
├── kiwoomType.py # 키움 API 상수 및 타입 정의
├── Qthread_1.py # 계좌평가잔고내역 조회 스레드
├── Qthread_2.py # 계좌 관리정보 조회 스레드
├── Qthread_3.py # 자동매매 실행 스레드
├── TRADER.ui # PyQt5 UI 파일
└── README.md # 프로젝트 설명서
- Windows 운영체제 (키움증권 API 제약)
- Python 3.7+ (32bit 버전 권장)
- 키움증권 계좌 및 OpenAPI 신청
- 키움증권 홈페이지 로그인
- 고객센터 → OpenAPI → API신청 메뉴 접속
- 모의투자 OpenAPI 신청서 작성 및 제출
- 승인 후 API키 발급 (보통 1-2일 소요)
- 발급받은 APP KEY 보관 (실제 거래 시 필요)
- 키움증권 HTS(영웅문S3) 실행
- 시스템 → OpenAPI → 계좌비밀번호 등록
- 모의투자:
0000입력 - 실거래: 실제 계좌비밀번호 입력
- 모의투자:
- 시스템 → OpenAPI → 조회비밀번호 등록
- 조회용 비밀번호 설정
- OpenAPI 접속 IP 등록
- HTS에서 시스템 → OpenAPI → 접속IP관리
- 현재 PC의 IP주소 등록 (최대 3개까지)
- 고정IP 권장 (유동IP 시 주기적 재등록 필요)
- 32bit Python 설치 (중요!)
# 32bit Python 확인 python -c "import platform; print(platform.architecture())"
- 키움 OpenAPI 모듈 설치
- 키움증권 HTS 설치 시 자동 설치됨
- 수동 설치: 키움 개발자센터
- 키움증권 HTS 로그인
- 모의투자 → 모의투자신청 메뉴
- 모의투자 계좌 개설 (가상자금 1억원 지급)
- 모의투자 계좌번호 확인 및 메모
pip install PyQt5
pip install PyQt5Singleton- 키움증권 HTS 로그인 (필수!)
- 모의투자 모드 전환 (안전한 테스트를 위해)
- 프로그램 실행:
python Trading.py- 자동 로그인 승인 후 계좌 선택
- 반드시 모의투자로 충분한 테스트 후 실거래 진행
- OpenAPI 이용약관 및 사용 가이드 숙지 필수
- API 호출 제한: 초당 5회, 분당 100회 (제한 초과 시 접속 차단)
- 장 중 시간(09:00~15:30) API 응답 지연 가능성
- API키 및 계좌정보 절대 공유 금지
- 계좌비밀번호는 코드에 하드코딩 금지
- 접속 IP 주기적 확인 및 관리
- 실거래 환경에서 검증되지 않은 코드 실행 금지
- 정기적인 비밀번호 변경 권장
- 1일 조회 한도: 계좌별 10,000건
- 실시간 등록: 최대 100종목
- 동시 접속: 계좌당 1개 프로그램만 가능
- 거래시간: 평일 09:00
15:30 (점심시간 12:0013:00 제외)
- 프로그램 실행 후 키움증권 자동 로그인
- 거래할 계좌 선택
- '종목추가' 버튼으로 거래 종목 추가
- 매수가격, 수량, 익절/손절 가격 설정
- '저장' 버튼으로 설정 저장
- '자동매매 시작' 버튼 클릭
- 실시간 모니터링 시작
- 설정 조건 달성 시 자동 주문 실행
- 매수 조건: 목표가 도달 시 자동 매수
- 익절 조건: 수익률 목표 달성 시 자동 매도
- 손절 조건: 손실 한도 도달 시 자동 매도
- 중복 주문 방지
- 일일 매매 한도 설정
- 투자금액 분산 관리
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 대학원 연구 목적으로 제작된 학술 프로젝트입니다. 교육 및 연구 목적으로 자유롭게 사용하실 수 있으며, 상업적 사용 시 키움증권 API 라이선스를 확인하시기 바랍니다.
- 본 프로그램은 대학원 연구 및 교육 목적으로 제작되었습니다
- 학술적 연구를 위한 프로토타입으로, 실제 투자 시 발생하는 모든 손실에 대해 개발자는 책임지지 않습니다
- 투자는 본인의 판단과 책임 하에 진행하시기 바랍니다
- 키움증권 API 사용 약관을 반드시 준수하시기 바랍니다
프로젝트에 대한 문의사항이 있으시면 GitHub Issues를 통해 연락주세요.