Ayuriel 218bf72874
All checks were successful
CI Build / build (push) Successful in 5s
chore: 재구성한 example 삭제
2025-03-30 21:20:59 +09:00
2025-03-30 21:19:46 +09:00
2025-01-27 23:54:29 +09:00
2025-03-30 21:19:41 +09:00

콴트 매니저 (Quant Manager)

한국 주식 시장을 위한 퀀트 투자 도구입니다.

프로젝트 구조

make-quant-py/
├── data/                     # 데이터 수집 관련 코드
│   ├── krx.py                # 한국거래소 데이터 수집
│   ├── prices.py             # 가격 데이터 수집
│   ├── financial.py          # 재무제표 데이터 수집
│   └── crawling.py           # 웹 크롤링 유틸리티
├── db/                       # 데이터베이스 유틸리티
│   └── common.py             # DB 연결 및 쿼리 공통 기능
├── strategies/               # 전략 구현
│   ├── factors/              # 개별 요소 모듈
│   │   ├── value.py          # 가치 전략
│   │   ├── quality.py        # 퀄리티 전략
│   │   ├── momentum.py       # 모멘텀 전략
│   │   ├── f_score.py        # F-Score 전략
│   │   └── all_value.py      # 종합 가치 전략
│   ├── composite/            # 복합 전략 구현
│   │   ├── magic_formula.py  # 마법공식 전략
│   │   ├── multi_factor.py   # 멀티팩터 전략
│   │   ├── super_quality.py  # 슈퍼 퀄리티 전략
│   │   └── super_value_momentum.py # 슈퍼 밸류 모멘텀 전략
│   └── utils.py              # 전략 공통 유틸리티
├── backtest/                 # 백테스트 도구
│   └── engine.py             # 백테스트 구현
└── streamlit/                # Streamlit 웹 앱
    ├── app.py                # 메인 앱
    ├── pages/                # 개별 페이지
    │   ├── data_page.py      # 데이터 수집 페이지
    │   ├── quality_page.py   # 슈퍼 퀄리티 전략 페이지
    │   └── value_momentum_page.py # 밸류 모멘텀 전략 페이지
    └── components/           # 재사용 가능한 UI 컴포넌트
        └── charts.py         # 시각화 컴포넌트

설치 및 설정

필수 요구사항

  • Python 3.8 이상
  • MySQL 또는 MariaDB

Windows에서 필요한 빌드 도구:

  • Visual Studio Build Tools 2017 이상
    • Desktop development with C++ 워크로드 선택
    • (선택사항) Python development 워크로드 선택

가상환경 설정

가상환경 생성:

python -m venv .venv

가상환경 활성화:

  • Windows: .venv\Scripts\activate
  • Linux/Mac: . .venv/bin/activate

패키지 설치:

pip install -r requirements.txt

가상환경 종료:

deactivate

환경 변수 설정

프로젝트 루트에 .env 파일을 생성하고 다음 환경 변수를 설정하세요:

DB_USER=your_db_user
DB_PW=your_db_password
DB_HOST=localhost
DB_PORT=3306
DB_DB=your_db_name

실행 방법

Streamlit 앱 실행:

streamlit run src/app.py --server.port=20000

모듈

데이터 수집

  • data/krx.py: 한국거래소(KRX)에서 주식 데이터를 수집합니다.
  • data/prices.py: 네이버 금융에서 주가 데이터를 수집합니다.
  • data/financial.py: FnGuide에서 재무제표 데이터를 수집합니다.

투자 전략

개별 요소 전략

  • strategies/factors/value.py: PER, PBR 등 가치 지표 기반 전략
  • strategies/factors/quality.py: ROE, GPA 등 퀄리티 지표 기반 전략
  • strategies/factors/momentum.py: 주가 모멘텀 기반 전략
  • strategies/factors/f_score.py: Piotroski의 F-Score 계산 전략

복합 전략

  • strategies/composite/magic_formula.py: Joel Greenblatt의 마법공식 전략
  • strategies/composite/multi_factor.py: 다중 요소 통합 전략
  • strategies/composite/super_quality.py: F-Score와 GP/A를 결합한 슈퍼 퀄리티 전략
  • strategies/composite/super_value_momentum.py: 가치와 모멘텀을 결합한 전략

백테스트

  • backtest/engine.py: bt 패키지를 사용한 백테스트 기능 구현
Description
No description provided
Readme 264 KiB
Languages
Python 98%
Shell 1.4%
Dockerfile 0.6%