Skip to content

ohkst/jayttt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trading Workflow MCP Server

한국투자증권 OpenAPI를 기반으로 한 자동매매 워크플로우 시스템

🚀 주요 기능

  • 자연어 기반 워크플로우 생성: 자연어로 매매 전략을 설명하면 자동으로 워크플로우 생성
  • 실시간 시세 모니터링: WebSocket을 통한 실시간 주가 모니터링 및 매매 신호 감지
  • 자동 매매 실행: 설정된 조건에 따른 자동 매수/매도 실행
  • 웹 대시보드: 실시간 모니터링 및 워크플로우 관리 웹 인터페이스
  • 스케줄 기반 실행: 크론 표현식을 사용한 정기적 워크플로우 실행

📋 시스템 요구사항

  • Python 3.8+
  • 한국투자증권 OpenAPI 계정 (App Key, App Secret)

🛠 설치 및 설정

1. 의존성 설치

pip install -r requirements.txt

2. 환경 설정

env_example 파일을 .env로 복사하고 API 키 설정:

cp env_example .env

.env 파일을 편집하여 실제 API 키 입력:

KIS_APP_KEY=your_actual_app_key
KIS_APP_SECRET=your_actual_app_secret

3. 한국투자증권 OpenAPI 설정

  1. 한국투자증권 OpenAPI 사이트 접속
  2. 계정 생성 및 앱 등록
  3. App Key와 App Secret 발급
  4. .env 파일에 키 정보 입력

🚀 실행 방법

서버 시작

python main.py

도구 테스트

python main.py --test-tools

데모 워크플로우 실행

python main.py --demo

포트 지정

python main.py --port 8080

🌐 웹 대시보드

서버 시작 후 브라우저에서 접속:

📊 사용 예시

1. 자연어 워크플로우 생성

웹 대시보드에서 다음과 같이 입력:

매일 아침 9시에 거래량 순위 상위 30개 종목을 조회하고,
그 중에서 PER이 10 이하인 종목 5개를 선정하여,
시초가 대비 2% 이상 상승하는 경우 각각 20%씩 매수하고,
매매가격 대비 1% 하락하거나 2% 상승하는 경우 매도한다.

2. API를 통한 워크플로우 생성

curl -X POST "http://localhost:8000/workflow/create" \
     -H "Content-Type: application/json" \
     -d '{"text": "거래량 상위 종목 중 PER 10 이하 종목 매매"}'

3. 워크플로우 상태 조회

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             # 프로젝트 문서

🔧 주요 컴포넌트

1. KISApi (kis_api.py)

  • 한국투자증권 OpenAPI 연동
  • 토큰 관리, 시세 조회, 매매 주문 실행

2. Trading Tools (trading_tools.py)

  • StockDiscoveryTool: 종목 발굴 (거래량 순위, PER 필터링)
  • StockAnalysisTool: 주식 분석 (가격 움직임, 손익 분석)
  • TradingExecutionTool: 매매 실행 (매수/매도 주문)
  • MarketDataTool: 시장 데이터 (장 운영 시간 등)

3. Workflow Engine (workflow_engine.py)

  • 자연어를 워크플로우로 변환
  • 스케줄 기반 자동 실행
  • 단계별 실행 및 결과 추적

4. Realtime Monitor (realtime_monitor.py)

  • 실시간 시세 모니터링
  • 매매 신호 감지 및 자동 실행
  • 규칙 기반 모니터링 시스템

5. MCP Server (mcp_server.py)

  • FastAPI 기반 REST API
  • WebSocket 실시간 통신
  • 웹 대시보드 제공

🔒 보안 고려사항

  • API 키는 환경 변수로 관리
  • .env 파일은 .gitignore에 추가
  • 실제 거래 시 모의투자 환경에서 충분한 테스트 필요

⚠️ 주의사항

  1. 모의투자 환경 사용: 실제 거래 전 반드시 모의투자 환경에서 테스트
  2. 리스크 관리: 손실 한도 설정 및 포지션 크기 관리 필수
  3. API 제한: 한국투자증권 API 호출 제한 준수
  4. 시장 시간: 장 운영 시간 외 거래 불가

🐛 문제 해결

자주 발생하는 문제

  1. API 연결 실패

    • API 키 확인
    • 네트워크 연결 상태 확인
    • API 호출 제한 확인
  2. 토큰 만료

    • 자동으로 재발급되지만, 수동 재시작 필요한 경우 있음
  3. 웹 대시보드 접속 불가

    • 방화벽 설정 확인
    • 포트 충돌 확인

📈 향후 개선 계획

  • 더 정교한 자연어 처리 (LLM 통합)
  • 데이터베이스 연동 (거래 내역 저장)
  • 백테스팅 기능
  • 더 다양한 기술적 지표 추가
  • 모바일 앱 연동
  • 알림 시스템 (이메일, SMS, 슬랙)

🤝 기여하기

  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

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

📞 지원

문의사항이 있으시면 이슈를 등록해주세요.


⚠️ 투자 유의사항: 이 시스템은 교육 및 개발 목적으로 제작되었습니다. 실제 투자 시에는 충분한 검토와 테스트를 거쳐 사용하시고, 투자에 따른 손실은 사용자 본인의 책임입니다.

About

jayttt

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors