Skip to content

seongwonM/AutoStockTrader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

140 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📈 바쁜 현대인들을 위한 주식 자동매매 시스템

📅 프로젝트 기간: 2024.03 - 2024.06
👨‍💻 팀원:

  • 송항영 (팀장, 프론트엔드/UI·UX 개발)
  • 문성원 (팀원, Transformer 기반 모델 구축/UI·UX 디자인)
  • 안정우 (팀원, 백엔드/DB 및 모델 결합)
  • 이승헌 (팀원, TimesNet 기반 모델 구축)

📌 프로젝트 개요

🔹 배경

📊 기술 발전으로 주식 시장이 더욱 활성화되었지만, 개인 투자자들은 시간 부족으로 인한 어려움을 겪고 있음.

  • 💡 딥러닝과 매매 전략을 결합하여 자동매매 시스템을 개발
  • 1시간 단위 데이터 분석을 통해 보다 세밀한 투자 전략 수립

🎯 목표

1시간 단위 데이터 수집 및 분석
기존 매매 전략 + AI 모델 결합
다양한 종목에 적용 가능한 일반화 모델 개발
바쁜 현대인들을 위한 자동매매 시스템 구현


프로젝트 차별점

기존 방식 본 프로젝트
📆 하루 단위 데이터 분석 ⏳ 1시간 단위 데이터 분석
🤖 단일 모델 (LSTM 등) 사용 🔀 결합 모델 (AI + 트레이딩 전략)
📉 단기 예측 모델 부족 📈 딥러닝 기반 최적화
🔄 고정된 투자 전략 🎯 사용자 맞춤 전략 제공
  • 📌 적용된 모델: LSTM, Transformer, TimesNet, DLinear
  • 📌 적용된 매매 전략: 변동성 돌파 전략, 이동 평균선 돌파 전략

🔍 프로젝트 알고리즘 (매매 전략)

📊 투자 전략 개요:
1️⃣ 변동성 돌파 전략 → 특정 변동성이 발생할 때 매수 신호 감지
2️⃣ AI 모델 (LSTM, Transformer) 예측 → 예측 종가를 기반으로 매매 여부 결정
3️⃣ 모델 결합 (Hybrid System) → 전략 기반 + AI 모델 예측 결합하여 최적 투자

  • 📌 매수 조건: 변동성 돌파 전략 + AI 모델 예측 종가 상승 예측 시 매수 📌 매도 조건: AI 모델 예측 종가 하락 예측 시 매도

🎥 시연 영상 및 UI 설명

  • 🛠 성장형 모델 (Transformer)고수익, 고위험 전략
  • 🛡 안정형 모델 (TimesNet)저위험, 안정적인 투자

실제 적용 사례:

  • 상승장 → 한화오션 종목 적용
  • 하락장 → 삼성공조 종목 적용
  • 실제 기간: 2024.06.07 ~ 2024.06.14

📌 UI 설명:

  • 사용자가 성장형 또는 안정형 투자 모델을 선택하여 자동매매 진행

📊 실험 결과 (투자 성과 비교)

종목 투자 전략 기존 Buy & Hold 프로젝트 모델 적용 후 수익 상승폭 트레이딩 횟수
한화오션 성장형 (Transformer) 7.54% 8.58% +1.04% 10회
한화오션 안정형 (TimesNet) 7.54% 8.38% +0.84% 8회
삼성공조 성장형 (Transformer) -10.238% 0.32% +10.565% 1회
삼성공조 안정형 (TimesNet) -10.238% 2.05% +12.288% 4회

전반적으로 기존 Buy & Hold 방식보다 수익률 향상
하락장에서 더욱 효과적으로 손실 방어 가능


🛠️ 사용 기술

  • 📌 개발 언어: Python
  • 📌 분석 도구: Pandas, Numpy, Scikit-learn, TensorFlow
  • 📌 머신러닝 모델: LSTM, Transformer, TimesNet, DLinear
  • 📌 데이터 시각화: Matplotlib, Seaborn
  • 📌 백엔드: Flask, FastAPI

📂 프로젝트 폴더 구조

📂 AutoStockTrader
│── 📜 README.md                 # 프로젝트 개요 문서
│
├── 📂 Autotrade                 # 자동매매 관련 코드
│   ├── 📂 autotrade_slackmassage  # 슬랙 알림 관련 모듈
│       ├── KoreaStockAutoTrade.py   # 한국 주식 자동매매 스크립트
│       ├── UsaStockAutoTrade.py     # 미국 주식 자동매매 스크립트
│       └── config.yaml              # 매매 설정 파일
│   └── AutoTrade(hour)_database.py  # 자동매매 데이터베이스 연동
│
├── 📂 UI                        # 사용자 인터페이스
│   └── UI.py                    # 기본 UI 구성 파일
│
├── 📂 data                      # 주가 데이터 및 크롤링된 데이터
│   ├── 📂 final_profit           # 최종 수익률 분석 데이터
│   ├── samsung_h.csv   # 삼성전자 주가 데이터 (1시간봉)
│   ├── samsung_m.csv.csv # 삼성전자 주가 데이터 (1분봉)
│   └── ...
│
├── 📂 files                     # 프로젝트 발표 자료 및 시연 영상
│   ├── 바쁜 현대인들을 위한 주식자동매매 프로그램 개발.pdf  # 프로젝트 발표 자료
│   └── 시연영상.mp4             # 자동매매 시스템 시연 영상
│
├── 📂 model                     # 머신러닝 & 딥러닝 모델 코드
│   ├── Dlinear.ipynb         # D-linear 기반 주가 예측 모델
│   ├── TimesNet_Final_0429.ipynb # TimesNet 모델 최적화
│   ├── Stock_Predict.ipynb        # Transformer 기반 모델
│   └── 최적화.ipynb             # LSTM 모델 최적화 코드
│
├── 📂 profit                    # 수익률 분석 및 투자 전략 성과 비교
│   └── profit_Volatility_Breakout_Strategy.ipynb  # 변동성 돌파 코드
│
├── 📂 streamlit                 # Streamlit 기반 웹 애플리케이션 코드
│   ├── 📂 secret                # 환경 변수 및 설정 파일
│       ├── app.py                    # 메인 Streamlit 앱
│       ├── database.py               # DB
│       ├── flask_server.py           # Flask 서버 연동
│       ├── trading.py                # 실시간 매매
│       ├── stock_prices.db           # 주가 정보
│       └── chg_close_loss.pth        # 딥러닝 model 가중치
└──

📎 관련 링크

📂 시연 영상 다운로드 (MP4)
🔗 프로젝트 보고서

🎯 프로젝트 의의 및 기대 효과

✔ 바쁜 현대인을 위한 자동매매 시스템 제공
✔ 기존 논문의 한계를 보완한 안정적이고 고수익 모델 개발
✔ 사용자 성향에 맞춰 맞춤형 알고리즘 적용 가능

🙌 감사합니다!

"이 프로젝트는 바쁜 현대인들이 보다 효율적인 투자를 할 수 있도록 돕는 것을 목표로 합니다."

About

바쁜 현대인들을 위한 주식 자동매매 프로그램 개발 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 89.9%
  • Python 10.1%