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