Skip to content

퀀트투자 기법을 활용한 오토 트레이딩 프로그램 개발

Notifications You must be signed in to change notification settings

NeuralVibe/quant2trade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quant2Trade 🚀

퀀트투자 기법을 활용한 키움증권 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 설정

1. OpenAPI 신청 및 키 발급

  1. 키움증권 홈페이지 로그인
  2. 고객센터 → OpenAPI → API신청 메뉴 접속
  3. 모의투자 OpenAPI 신청서 작성 및 제출
  4. 승인 후 API키 발급 (보통 1-2일 소요)
  5. 발급받은 APP KEY 보관 (실제 거래 시 필요)

2. IP 등록 및 보안 설정

  1. 키움증권 HTS(영웅문S3) 실행
  2. 시스템 → OpenAPI → 계좌비밀번호 등록
    • 모의투자: 0000 입력
    • 실거래: 실제 계좌비밀번호 입력
  3. 시스템 → OpenAPI → 조회비밀번호 등록
    • 조회용 비밀번호 설정
  4. OpenAPI 접속 IP 등록
    • HTS에서 시스템 → OpenAPI → 접속IP관리
    • 현재 PC의 IP주소 등록 (최대 3개까지)
    • 고정IP 권장 (유동IP 시 주기적 재등록 필요)

3. 개발 환경 설정

  1. 32bit Python 설치 (중요!)
    # 32bit Python 확인
    python -c "import platform; print(platform.architecture())"
  2. 키움 OpenAPI 모듈 설치

4. 모의투자 계좌 신청

  1. 키움증권 HTS 로그인
  2. 모의투자 → 모의투자신청 메뉴
  3. 모의투자 계좌 개설 (가상자금 1억원 지급)
  4. 모의투자 계좌번호 확인 및 메모

📦 의존성 설치

pip install PyQt5
pip install PyQt5Singleton

🚀 실행 방법

  1. 키움증권 HTS 로그인 (필수!)
  2. 모의투자 모드 전환 (안전한 테스트를 위해)
  3. 프로그램 실행:
python Trading.py
  1. 자동 로그인 승인 후 계좌 선택

⚠️ 주의사항

🔐 키움증권 API 사용 전 필독

  • 반드시 모의투자로 충분한 테스트 후 실거래 진행
  • OpenAPI 이용약관 및 사용 가이드 숙지 필수
  • API 호출 제한: 초당 5회, 분당 100회 (제한 초과 시 접속 차단)
  • 장 중 시간(09:00~15:30) API 응답 지연 가능성

🛡️ 보안 및 안전 수칙

  • API키 및 계좌정보 절대 공유 금지
  • 계좌비밀번호는 코드에 하드코딩 금지
  • 접속 IP 주기적 확인 및 관리
  • 실거래 환경에서 검증되지 않은 코드 실행 금지
  • 정기적인 비밀번호 변경 권장

⚡ API 제한사항

  • 1일 조회 한도: 계좌별 10,000건
  • 실시간 등록: 최대 100종목
  • 동시 접속: 계좌당 1개 프로그램만 가능
  • 거래시간: 평일 09:0015:30 (점심시간 12:0013:00 제외)

📚 사용법

1. 로그인 및 계좌 설정

  • 프로그램 실행 후 키움증권 자동 로그인
  • 거래할 계좌 선택

2. 종목 설정

  • '종목추가' 버튼으로 거래 종목 추가
  • 매수가격, 수량, 익절/손절 가격 설정
  • '저장' 버튼으로 설정 저장

3. 자동매매 시작

  • '자동매매 시작' 버튼 클릭
  • 실시간 모니터링 시작
  • 설정 조건 달성 시 자동 주문 실행

🔧 설정 옵션

매매 조건 설정

  • 매수 조건: 목표가 도달 시 자동 매수
  • 익절 조건: 수익률 목표 달성 시 자동 매도
  • 손절 조건: 손실 한도 도달 시 자동 매도

리스크 관리

  • 중복 주문 방지
  • 일일 매매 한도 설정
  • 투자금액 분산 관리

🤝 기여하기

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 라이선스

이 프로젝트는 대학원 연구 목적으로 제작된 학술 프로젝트입니다. 교육 및 연구 목적으로 자유롭게 사용하실 수 있으며, 상업적 사용 시 키움증권 API 라이선스를 확인하시기 바랍니다.

⚖️ 면책 조항

  • 본 프로그램은 대학원 연구 및 교육 목적으로 제작되었습니다
  • 학술적 연구를 위한 프로토타입으로, 실제 투자 시 발생하는 모든 손실에 대해 개발자는 책임지지 않습니다
  • 투자는 본인의 판단과 책임 하에 진행하시기 바랍니다
  • 키움증권 API 사용 약관을 반드시 준수하시기 바랍니다

📞 문의

프로젝트에 대한 문의사항이 있으시면 GitHub Issues를 통해 연락주세요.


⚠️ 투자 경고: 주식투자는 원금 손실의 위험이 있으니 신중하게 결정하시기 바랍니다.

About

퀀트투자 기법을 활용한 오토 트레이딩 프로그램 개발

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages