🤖 AI Automated Trading System (Windows Server Edition)

이 프로젝트는 **Python, PyTorch (Deep Learning), Ollama (LLM)**을 활용하여 한국 주식 시장(KIS)에서 자동으로 매매를 수행하는 고성능 AI 트레이딩 봇입니다.

🚀 Key Features

  • Multi-Process Architecture: 메인 서버(main_server.py)가 트레이딩 봇과 텔레그램 봇을 독립된 프로세스로 관리하여 안정성 확보.
  • Advanced AI Analysis: RTX 5070 Ti (16GB VRAM) 하드웨어 가속을 활용한 고성능 예측 모델 탑재.
  • Hybrid Strategy: 기술적 분석 + 뉴스 감성 분석(LLM) + 가격 예측(LSTM)을 결합한 복합 추론.
  • Telegram Control: 실시간 상태 조회, 리포트 수신, 프로세스 제어(/restart 등) 지원.
  • Safe Trading: 예수금 초과 매수 방지, 손절/익절 자동화, API 속도 제한(Throttling) 적용.

🏗️ System Architecture & Directory Structure

/
├── main_server.py          # [Entry Point] 프로세스 매니저 및 서버 실행
├── watchlist_manager.py    # [Automation] 매일 아침 종목 선정 및 Watchlist 갱신
├── modules/
│   ├── bot.py              # [Core] 메인 트레이딩 루프 및 사이클 관리
│   ├── config.py           # [Config] 환경 변수 및 상수 관리
│   ├── analysis/           # [Brain] 분석 모듈
│   │   ├── deep_learning.py  # PyTorch 기반 Attention-LSTM 모델
│   │   ├── technical.py      # RSI, 볼린저밴드 등 보조지표 계산
│   │   └── macro.py          # 거시경제(환율, 유가, 지수) 분석
│   ├── services/           # [I/O] 외부 서비스 연동
│   │   ├── kis.py            # 한국투자증권 API 클라이언트 (Throttling 적용)
│   │   ├── telegram.py       # 텔레그램 메시지 발송
│   │   ├── news.py           # 네이버 뉴스 크롤링
│   │   ├── ollama.py         # Local LLM (Llama 3) 인터페이스
│   │   └── telegram_bot/     # 텔레그램 봇 서버 (Interactive Mode)
│   ├── strategy/           # [Logic] 매수/매도 의사결정 로직
│   └── utils/              # [Util] IPC, 시스템 모니터링 등
├── data/                   # [Runtime Data] 실행 중 생성되는 데이터 (Git 제외)
│   ├── bot_ipc.json          # 프로세스 간 상태 공유
│   ├── watchlist.json        # 감시 대상 종목 리스트
│   └── daily_trade_history.json # 당일 매매 기록
└── tests/                  # 테스트 스크립트

🧠 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가 자동으로 감지 및 활성화됩니다.

3. Integrated Decision Making (Quant Strategy)

AI 모델의 예측 결과는 단독으로 쓰이지 않고, 다음 요소들과 결합되어 최종 매수 결정을 내립니다.

  1. Technical Score (40%): RSI, 거래량, 변동성 지표.
  2. News Sentiment (30%): Ollama(LLM)가 분석한 최신 뉴스 긍/부정 점수.
  3. AI Prediction (30% ~ 60%): LSTM 모델의 상승 예측 신뢰도.
    • AI Confidence가 85% 이상일 경우, AI 비중을 **60%**까지 동적으로 상향 조정.

🛠️ Setup & Installation

1. Prerequisites

  • Python 3.10+
  • NVIDIA GPU + CUDA Toolkit (Recommended for AI performance)
  • Ollama (Local LLM Server running on port 11434)

2. Installation

# Clone Repository
git clone <repository-url>

# Install Dependencies
pip install -r requirements.txt

3. Configuration (.env)

프로젝트 루트에 .env 파일을 생성하고 아래 정보를 입력하세요.

# 한국투자증권 (KIS)
KIS_APP_KEY=your_app_key
KIS_APP_SECRET=your_app_secret
KIS_ACCOUNT=12345678-01
KIS_IS_VIRTUAL=True  # True: 모의투자, False: 실전투자

# Telegram
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id

# AI Server
OLLAMA_API_URL=http://localhost:11434

4. Run

python main_server.py

⚠️ Disclaimer

본 소프트웨어는 투자를 보조하는 도구이며, 투자의 결과에 대한 책임은 전적으로 사용자에게 있습니다. AI의 예측은 100% 정확하지 않으며, 시장 상황에 따라 손실이 발생할 수 있습니다.

Description
No description provided
Readme 91 KiB
Languages
Python 100%