오픈소스 양적 분석 소프트웨어 기능 소개
출처: Dev.to
📈 다인자 종목선정 시스템 — 프로젝트 기능 소개
시청 주소: https://youtu.be/SpHsZdlyii8
A주 시장을 대상으로 하는 전 과정 양적 분석 플랫폼 — 인자 계산 · 머신러닝 · 포트폴리오 최적화 · 백테스트 검증 · 실시간 시세
| 지표 | 데이터 |
|---|---|
| Python 모듈 | 108 |
| 비즈니스 코드 | 15,600+ 행 |
| 서비스 모듈 | 30+ |
| API 블루프린트 | 14 |
| 내장 인자 | 12 |
다인자 종목선정 시스템은 양적 연구 전 과정을 포괄하는 분석 플랫폼으로, 데이터 관리부터 전략 백테스트까지 원스톱으로 수행합니다. 시스템은 Flask + SQLAlchemy + SocketIO 기술 스택을 사용하고, Parquet + SQLite 이중 저장 구조를 기반으로 하며, 외부 데이터베이스 의존성이 없고 클론만으로 실행할 수 있습니다.
- 실시간 시세 분석: 통다신(同达信) 분 데이터 연동, MACD, KDJ, RSI, 볼린저 밴드 등 기술 지표 실시간 계산
- 인자와 종목선정: 12개의 내장 인자 + 사용자 정의 인자 표현식 엔진, 화이트리스트 보안 검증 지원
- 머신러닝 모델링: XGBoost, LightGBM, RandomForest 세 가지 알고리즘의 완전한 모델 라이프사이클
- 포트폴리오 최적화: 등가 가중치, 평균‑분산, 위험 균형, 인자 중립 네 가지 고전적 최적화 방법
- 백테스트 검증: 단일 전략 및 다중 전략 백테스트, 풍부한 성과 지표(연환산 수익률, 샤프 비율, 최대 손실 등)
- 위험 관리: 포트폴리오 보유 관리, 실시간 가격 갱신, 위험 지표 모니터링, 경고 관리, 스트레스 테스트
HTTP / WebSocket → Blueprint (app/api/*.py) → Service (app/services/*.py) → ParquetDataReader (시세 데이터)
↕
SQLAlchemy Models (SQLite 애플리케이션 상태)
카테고리: 기술
| 구분 | 내용 |
|---|---|
| 백엔드 프레임워크 | Python 3.8–3.11, Flask, Flask‑SocketIO, Flask‑SQLAlchemy, Celery |
| 데이터 처리 | Pandas, NumPy, PyArrow, SciPy, Scikit‑learn |
| 머신러닝 | XGBoost, LightGBM, RandomForest, CVXPY |
| 프론트엔드 & 시각화 | Bootstrap 5, ECharts, Plotly, Matplotlib / MPLFinance |
| 데이터 소스 | 통다신(실시간 시세), Baostock(히스토리 데이터), Tushare(선택), Parquet 오프라인 데이터 패키지 |
| AI 역량 | Ollama(로컬 LLM), OpenAI API(선택), Text2SQL, Qwen2.5‑Coder |
API 블루프린트 접두사: /api/realtime-analysis/*
핵심 서비스
RealtimeIndicatorEngine(services/realtime_indicator_engine.py): 실시간 기술 지표 계산RealtimeTradingSignalEngine(services/realtime_trading_signal_engine.py): 다중 전략 거래 신호 생성 및 융합
기능 특성
| 기능 | 설명 |
|---|---|
| 실시간 지표 계산 | MACD, KDJ, RSI, 볼린저 밴드 등 고전 기술 지표의 실시간 계산 및 표시 지원 |
| 다중 전략 신호 생성 | 다양한 전략 기반 거래 신호 생성, 신호 융합 및 종합 판단 지원 |
| 신호 모니터링 | 거래 신호의 실시간 모니터링 및 히스토리 추적 |
| 전략 백테스트 | 생성된 신호에 대한 히스토리 백테스트 검증 |
| 섹터 분석 | 섹터 성과 통계 및 변동 감지 |
| 시장 심리 | 시장 심리 지표의 실시간 추적 |
데이터 소스: 통다신 분 시세 데이터, data/stock_minute/에 Parquet 형식으로 저장.
API 블루프린트 접두사: /api/ml-factor/*, /api
핵심 서비스
FactorEngine(services/factor_engine.py): 내장 인자 계산 및 사용자 정의 인자 관리FactorExpressionEngine(services/factor_expression_engine.py): 화이트리스트 검증 기반 사용자 정의 인자 공식 엔진StockScoringEngine(services/stock_scoring.py): 인자 점수와 ML 점수를 결합한 종목선정 엔진
| 차원 | 인자명 | 설명 |
|---|---|---|
| 모멘텀 | momentum_1d | 1일 모멘텀 |
| 모멘텀 | momentum_5d | 5일 모멘텀 |
| **모멘 |