# πŸ€– AI Automated Trading System (Windows Server Edition) 이 ν”„λ‘œμ νŠΈλŠ” **Python, PyTorch (Deep Learning), Ollama (LLM)**을 ν™œμš©ν•˜μ—¬ ν•œκ΅­ 주식 μ‹œμž₯(KIS)μ—μ„œ μžλ™μœΌλ‘œ λ§€λ§€λ₯Ό μˆ˜ν–‰ν•˜λŠ” κ³ μ„±λŠ₯ AI νŠΈλ ˆμ΄λ”© λ΄‡μž…λ‹ˆλ‹€. **ProcessPoolExecutor 기반의 병렬 처리**와 **λ…λ¦½λœ ν…”λ ˆκ·Έλž¨ 봇 ν”„λ‘œμ„ΈμŠ€**λ₯Ό 톡해 높은 μ•ˆμ •μ„±κ³Ό 응닡 속도λ₯Ό 보μž₯ν•©λ‹ˆλ‹€. ## πŸš€ Key Features * **Multi-Process Architecture**: 메인 μ„œλ²„, νŠΈλ ˆμ΄λ”© 봇, ν…”λ ˆκ·Έλž¨ 봇이 각각 λ…λ¦½λœ ν”„λ‘œμ„ΈμŠ€λ‘œ μ‹€ν–‰λ˜μ–΄ μƒν˜Έ 간섭을 μ΅œμ†Œν™”ν•©λ‹ˆλ‹€. * **Advanced AI Analysis**: **RTX 5070 Ti (16GB VRAM)** ν•˜λ“œμ›¨μ–΄ 가속을 ν™œμš©ν•œ **Attention-LSTM** λͺ¨λΈμ΄ μ£Όκ°€λ₯Ό μ˜ˆμΈ‘ν•©λ‹ˆλ‹€. * **Process Management System**: * **Zombie Killer**: μ„œλ²„ μ‹œμž‘ μ‹œ 이전에 μ’…λ£Œλ˜μ§€ μ•Šμ€ μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€λ₯Ό μžλ™μœΌλ‘œ κ°μ§€ν•˜κ³  μ œκ±°ν•©λ‹ˆλ‹€. * **PID Tracking**: μ‹€ν–‰ 쀑인 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ˜ IDλ₯Ό `pids.txt` νŒŒμΌμ— μ‹€μ‹œκ°„μœΌλ‘œ κΈ°λ‘ν•˜μ—¬ 식별을 λ•μŠ΅λ‹ˆλ‹€. * **Reliable Telegram Bot**: * **HTML Parsing**: λ§ˆν¬λ‹€μš΄ μ—λŸ¬λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ•ˆμ •μ μΈ HTML 포맷을 μ‚¬μš©ν•˜μ—¬ λ©”μ‹œμ§€λ₯Ό μ „μ†‘ν•©λ‹ˆλ‹€. * **Interactive Commands**: `/status`, `/portfolio`, `/exec` λ“± λ‹€μ–‘ν•œ λͺ…λ Ήμ–΄λ‘œ 봇을 μ‹€μ‹œκ°„ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. * **Auto-Recovery**: `ProcessPoolExecutor`의 μ›Œμ»€ ν”„λ‘œμ„ΈμŠ€κ°€ 좩돌(OOM λ“±)ν•  경우 μžλ™μœΌλ‘œ κ°μ§€ν•˜κ³  μž¬μ‹œμž‘ν•©λ‹ˆλ‹€. --- ## πŸ—οΈ System Architecture & Directory Structure ```plaintext / β”œβ”€β”€ main_server.py # [Entry Point] ν”„λ‘œμ„ΈμŠ€ λ§€λ‹ˆμ € 및 FastAPI μ„œλ²„ β”œβ”€β”€ pids.txt # [Runtime] μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ ID λͺ©λ‘ (μžλ™ 관리) β”œβ”€β”€ modules/ β”‚ β”œβ”€β”€ bot.py # [Core] 메인 νŠΈλ ˆμ΄λ”© 봇 (μŠ€μΌ€μ€„λŸ¬ & μƒνƒœ λ¨Έμ‹ ) β”‚ β”œβ”€β”€ config.py # [Config] ν™˜κ²½ λ³€μˆ˜ 및 μƒμˆ˜ 관리 β”‚ β”œβ”€β”€ analysis/ # [Brain] AI 뢄석 λͺ¨λ“ˆ β”‚ β”‚ β”œβ”€β”€ deep_learning.py # PyTorch 기반 Attention-LSTM λͺ¨λΈ β”‚ β”‚ β”œβ”€β”€ technical.py # RSI, λ³Όλ¦°μ €λ°΄λ“œ λ“± λ³΄μ‘°μ§€ν‘œ 계산 β”‚ β”‚ └── macro.py # κ±°μ‹œκ²½μ œ(ν™˜μœ¨, μœ κ°€, μ§€μˆ˜) 뢄석 β”‚ β”œβ”€β”€ services/ # [I/O] μ™ΈλΆ€ μ„œλΉ„μŠ€ 연동 β”‚ β”‚ β”œβ”€β”€ kis.py # ν•œκ΅­νˆ¬μžμ¦κΆŒ API (Throttling 적용) β”‚ β”‚ β”œβ”€β”€ telegram_bot/ # [Independent] 독립 ν”„λ‘œμ„ΈμŠ€ ν…”λ ˆκ·Έλž¨ 봇 β”‚ β”‚ β”œβ”€β”€ news.py # 넀이버 λ‰΄μŠ€ 크둀링 β”‚ β”‚ └── ollama.py # Local LLM (Llama 3) μΈν„°νŽ˜μ΄μŠ€ β”‚ β”œβ”€β”€ strategy/ # [Logic] 맀수/맀도 μ˜μ‚¬κ²°μ • ν”„λ‘œμ„ΈμŠ€ β”‚ β”‚ └── process.py # μ›Œμ»€ ν”„λ‘œμ„ΈμŠ€μš© 뢄석 ν•¨μˆ˜ (병렬 처리) β”‚ └── utils/ # [Util] μœ ν‹Έλ¦¬ν‹° β”‚ β”œβ”€β”€ process_tracker.py # PID 좔적 및 μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€ 정리 β”‚ β”œβ”€β”€ ipc.py # ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신 (IPC) β”‚ └── monitor.py # μ‹œμŠ€ν…œ λ¦¬μ†ŒμŠ€ λͺ¨λ‹ˆν„°λ§ └── ... ``` --- ## 🧠 AI Learning Structure (Deep Learning) λ³Έ μ‹œμŠ€ν…œμ€ λ‹¨μˆœν•œ μ•Œκ³ λ¦¬μ¦˜ λ§€λ§€λ₯Ό λ„˜μ–΄, **Deep Learning**을 톡해 μ‹œμž₯의 νŒ¨ν„΄μ„ μ‹€μ‹œκ°„μœΌλ‘œ ν•™μŠ΅ν•©λ‹ˆλ‹€. ### 1. Model: Attention-LSTM (High Capacity) * **Architecture**: LSTM(Long Short-Term Memory) + **Attention Mechanism** * **Input**: 졜근 60일(μ•½ 3κ°œμ›”)κ°„μ˜ μ£Όκ°€(μ’…κ°€) μ‹œκ³„μ—΄ 데이터 * **Core Logic**: * **Feature Extraction**: 4-Layer Stacked LSTM (Hidden Size: 512)이 μ‹œκ³„μ—΄ νŠΉμ§• μΆ”μΆœ. * **Attention Layer**: κ³Όκ±° 60일 쀑 ν˜„μž¬ μ˜ˆμΈ‘μ— κ°€μž₯ μ€‘μš”ν•œ μ‹œμ μ— κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬. * **Adaptive Training**: μ’…λͺ©λ³„λ‘œ 맀일 μ‹€μ‹œκ°„ ν•™μŠ΅(Online Learning)을 μˆ˜ν–‰ν•˜μ—¬ μ΅œμ‹  νŠΈλ Œλ“œ 반영. ### 2. Hardware Acceleration (RTX 5070 Ti) * **CUDA Optimization**: PyTorchλ₯Ό 톡해 GPU 가속 ν™œμ„±ν™”. * **Specs**: Batch Size 64, Epochs 200, Precision FP32. * μ„œλ²„ μ‹œμž‘ μ‹œ `High Performance Mode`κ°€ μžλ™μœΌλ‘œ 감지 및 ν™œμ„±ν™”λ©λ‹ˆλ‹€. * **OOM Protection**: GPU λ©”λͺ¨λ¦¬ 보호λ₯Ό μœ„ν•΄ 병렬 μ›Œμ»€ 수λ₯Ό 2개둜 μ œν•œν•˜κ³ , μ›Œμ»€ 좩돌 μ‹œ μžλ™ μž¬μ‹œμž‘ν•©λ‹ˆλ‹€. --- ## πŸ› οΈ Usage & Troubleshooting ### 1. Installation ```bash # Clone & Install git clone pip install -r requirements.txt # Start Server python main_server.py ``` ### 2. Process Management (`pids.txt`) μ„œλ²„κ°€ μ‹€ν–‰λ˜λ©΄ `pids.txt` νŒŒμΌμ— ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘μ΄ κΈ°λ‘λ©λ‹ˆλ‹€. ```text 58360: Main Server (Uvicorn Worker) 72028: Trading Bot Main 66488: Telegram Bot Standalone 16372: Trading Bot Worker ... ``` * **CPU μ‚¬μš©λŸ‰μ΄ λΉ„μ •μƒμ μœΌλ‘œ 높을 λ•Œ**: μž‘μ—… κ΄€λ¦¬μžλ‚˜ `Get-Process python`으둜 ν™•μΈν•œ PIDκ°€ `pids.txt`에 μ—†λ‹€λ©΄ **μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€**μž…λ‹ˆλ‹€. * **μžλ™ 정리**: `main_server.py`λ₯Ό λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ μ‹œμž‘ μ‹œ μžλ™μœΌλ‘œ μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ°Ύμ•„ μ’…λ£Œν•©λ‹ˆλ‹€. ### 3. Telegram Commands * `/start`: 봇 μ‹œμž‘ 및 λͺ…λ Ήμ–΄ μ•ˆλ‚΄ * `/status`: ν˜„μž¬ 봇 μƒνƒœ, μ‹œμž₯ μ§€μˆ˜, AI λͺ¨λΈ μƒνƒœ 쑰회 * `/portfolio`: ν˜„μž¬ 보유 μ’…λͺ© 및 수읡λ₯  쑰회 * `/system`: CPU/GPU μ‚¬μš©λŸ‰ 및 ν”„λ‘œμ„ΈμŠ€ μƒνƒœ 확인 * `/restart`: 봇 ν”„λ‘œμ„ΈμŠ€ μž¬μ‹œμž‘ (μ—…λ°μ΄νŠΈ 반영 μ‹œ 유용) * `/stop`: 봇 μ’…λ£Œ --- ## ⚠️ Disclaimer λ³Έ μ†Œν”„νŠΈμ›¨μ–΄λŠ” 투자λ₯Ό λ³΄μ‘°ν•˜λŠ” 도ꡬ이며, 투자의 결과에 λŒ€ν•œ μ±…μž„μ€ μ „μ μœΌλ‘œ μ‚¬μš©μžμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€. AI의 μ˜ˆμΈ‘μ€ 100% μ •ν™•ν•˜μ§€ μ•ŠμœΌλ©°, μ‹œμž₯ 상황에 따라 손싀이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨μ˜νˆ¬μž ν™˜κ²½μ—μ„œ μΆ©λΆ„ν•œ ν…ŒμŠ€νŠΈ ν›„ μ‚¬μš©ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.