한국투자증권 OpenAPI를 기반으로 한 자동매매 워크플로우 시스템
- 자연어 기반 워크플로우 생성: 자연어로 매매 전략을 설명하면 자동으로 워크플로우 생성
- 실시간 시세 모니터링: WebSocket을 통한 실시간 주가 모니터링 및 매매 신호 감지
- 자동 매매 실행: 설정된 조건에 따른 자동 매수/매도 실행
- 웹 대시보드: 실시간 모니터링 및 워크플로우 관리 웹 인터페이스
- 스케줄 기반 실행: 크론 표현식을 사용한 정기적 워크플로우 실행
- Python 3.8+
- 한국투자증권 OpenAPI 계정 (App Key, App Secret)
pip install -r requirements.txtenv_example 파일을 .env로 복사하고 API 키 설정:
cp env_example .env.env 파일을 편집하여 실제 API 키 입력:
KIS_APP_KEY=your_actual_app_key
KIS_APP_SECRET=your_actual_app_secret- 한국투자증권 OpenAPI 사이트 접속
- 계정 생성 및 앱 등록
- App Key와 App Secret 발급
.env파일에 키 정보 입력
python main.pypython main.py --test-toolspython main.py --demopython main.py --port 8080서버 시작 후 브라우저에서 접속:
- 대시보드: http://localhost:8000/dashboard
- API 문서: http://localhost:8000/docs
웹 대시보드에서 다음과 같이 입력:
매일 아침 9시에 거래량 순위 상위 30개 종목을 조회하고,
그 중에서 PER이 10 이하인 종목 5개를 선정하여,
시초가 대비 2% 이상 상승하는 경우 각각 20%씩 매수하고,
매매가격 대비 1% 하락하거나 2% 상승하는 경우 매도한다.
curl -X POST "http://localhost:8000/workflow/create" \
-H "Content-Type: application/json" \
-d '{"text": "거래량 상위 종목 중 PER 10 이하 종목 매매"}'curl "http://localhost:8000/workflow/{workflow_id}"┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 웹 대시보드 │ │ MCP 서버 │ │ 한국투자증권 │
│ │◄──►│ │◄──►│ OpenAPI │
│ - 워크플로우 관리│ │ - 워크플로우 엔진│ │ │
│ - 실시간 모니터링│ │ - 실시간 모니터 │ │ - 시세 조회 │
│ - 매매 현황 │ │ - 자동 매매 │ │ - 매매 실행 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
jayttt/
├── main.py # 메인 실행 파일
├── config.py # 설정 관리
├── kis_api.py # 한국투자증권 API 연동
├── trading_tools.py # 매매 도구들
├── workflow_engine.py # 워크플로우 엔진
├── mcp_server.py # MCP 서버 (FastAPI)
├── realtime_monitor.py # 실시간 모니터링
├── requirements.txt # 의존성 목록
├── env_example # 환경 변수 예시
└── README.md # 프로젝트 문서
- 한국투자증권 OpenAPI 연동
- 토큰 관리, 시세 조회, 매매 주문 실행
- StockDiscoveryTool: 종목 발굴 (거래량 순위, PER 필터링)
- StockAnalysisTool: 주식 분석 (가격 움직임, 손익 분석)
- TradingExecutionTool: 매매 실행 (매수/매도 주문)
- MarketDataTool: 시장 데이터 (장 운영 시간 등)
- 자연어를 워크플로우로 변환
- 스케줄 기반 자동 실행
- 단계별 실행 및 결과 추적
- 실시간 시세 모니터링
- 매매 신호 감지 및 자동 실행
- 규칙 기반 모니터링 시스템
- FastAPI 기반 REST API
- WebSocket 실시간 통신
- 웹 대시보드 제공
- API 키는 환경 변수로 관리
.env파일은.gitignore에 추가- 실제 거래 시 모의투자 환경에서 충분한 테스트 필요
- 모의투자 환경 사용: 실제 거래 전 반드시 모의투자 환경에서 테스트
- 리스크 관리: 손실 한도 설정 및 포지션 크기 관리 필수
- API 제한: 한국투자증권 API 호출 제한 준수
- 시장 시간: 장 운영 시간 외 거래 불가
-
API 연결 실패
- API 키 확인
- 네트워크 연결 상태 확인
- API 호출 제한 확인
-
토큰 만료
- 자동으로 재발급되지만, 수동 재시작 필요한 경우 있음
-
웹 대시보드 접속 불가
- 방화벽 설정 확인
- 포트 충돌 확인
- 더 정교한 자연어 처리 (LLM 통합)
- 데이터베이스 연동 (거래 내역 저장)
- 백테스팅 기능
- 더 다양한 기술적 지표 추가
- 모바일 앱 연동
- 알림 시스템 (이메일, SMS, 슬랙)
- 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
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
문의사항이 있으시면 이슈를 등록해주세요.