make-quant-py/README.md
Ayuriel c9d4ef99af
All checks were successful
CI Build / build (push) Successful in 4s
feat: 로그인 추가
2025-03-31 11:32:02 +09:00

4.5 KiB

콴트 매니저 (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

인증 설정

애플리케이션은 streamlit-authenticator를 사용하여 로그인 기능을 제공합니다. 기본 계정은 다음과 같습니다:

  • 관리자: 아이디 admin, 비밀번호 adminpass
  • 일반 사용자: 아이디 user, 비밀번호 userpass

비밀번호 변경 또는 계정 추가를 위한 steps:

  1. src/config/generate_credentials.py 파일을 수정하여 원하는 계정 정보 입력
  2. 아래 명령어 실행:
    cd src/config
    python generate_credentials.py
    
  3. 생성된 credentials.yaml 파일을 확인하여 적용

모듈

데이터 수집

  • 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 패키지를 사용한 백테스트 기능 구현