티스토리 뷰
출처 : BST261AG, Ver.0.9
# 주가 예측 및 추천 알고리즘 상세 설명서
본 시스템은 과거 일별 데이터(Daily Candles)와 당일 오전(09:00~10:00) 분봉 데이터(Minute Candles)를 결합하여, 당일 10시 이후의 주가 방향과 향후 3일간의 흐름을 예측합니다. 전체 종목을 스캔하여 상승 확률이 가장 높은 상위 200개 종목을 추천하는 것을 목표로 합니다.
## 1. 데이터 처리 파이프라인 (Data Pipeline)
### 1-1. 원본 데이터 (Raw Data)
1. **일봉 데이터 (Daily)**: DB에서 조회. 시가(Open), 고가(High), 저가(Low), 종가(Close), 거래량(Volume).
2. **분봉 데이터 (Minute)**: 엑셀 등에서 조회. 당일 09:00부터 10:00까지의 1분 단위 주가 흐름.
### 1-2. 특성 공학 (Feature Engineering) - 1차 및 2차 데이터 생성
알고리즘은 원본 데이터를 그대로 사용하지 않고, 수학적 변환을 통해 '특징(Feature)'을 추출하여 학습합니다.
**[1차 데이터: 추세 및 현황]**
* **이동평균선 (Moving Averages)**: 5일, 20일, 50일, 100일, 200일 이동평균을 계산하여 중장기 추세를 파악합니다.
* **이격도 (Ratio)**: 현재 주가와 각 이동평균선 간의 비율(Close / MA)을 계산하여 과매수/과매도 구간을 판단합니다.
* **장중 초기 흐름 (Intraday Trend)**: 09:00~10:00 사이의 등락률, 거래량 합계, VWAP(거래량 가중 평균 가격) 등을 산출합니다.
**[2차 데이터: 변동성 및 신호 처리]**
* **변동성 (Volatility)**: 분 단위 수익률의 표준편차를 계산하여 주가의 흔들림 강도를 측정합니다.
* **FFT (고속 푸리에 변환) 분석**:
* **일봉 FFT (Daily FFT)**: 최근 60일간의 주가 파동을 주파수 도메인으로 변환하여, 중기적인 주가 사이클(진동 에너지, 지배 주기, 위상)을 추출합니다.
* **분봉 FFT (Intraday FFT)**: 당일 09:00~10:00 주가 흐름의 고주파 특성(노이즈 vs 추세성)을 분석합니다.
* **벡터 상관도 분석 (Vector Correlation)**:
* **가격-시간 상관도 (Price-Time Correlation)**: 최근 20일간 주가 흐름이 얼마나 직선적으로 상승/하락하고 있는지(추세 강도)를 측정합니다.
* **가격-거래량 상관도 (Price-Volume Correlation)**: 가격이 오를 때 거래량이 동반되는지(건전한 상승)를 수치화합니다.
## 2. 예측 모델링 (Predictive Modeling)
### 2-1. 학습 목표 (Target)
두 가지 관점에서 미래를 예측하도록 모델을 학습시킵니다.
1. **단기 예측 (Day Trading)**: 당일 10:00 가격 대비 **당일 종가**의 수익률 예측.
2. **중기 예측 (Swing Trading)**: 당일 종가 대비 **향후 3일 평균 주가**의 수익률 예측.
### 2-2. 알고리즘 경쟁 및 선택 (Model Competition)
다음 4가지 머신러닝 알고리즘을 동시에 학습시키고, 검증 데이터(Validation Set)에서 오차(RMSE)가 가장 작은 최적의 모델을 자동으로 선택합니다.
* **Linear Regression**: 선형적 관계 파악에 유리.
* **Ridge Regression**: 과적합 방지.
* **Random Forest**: 비선형 패턴 및 복합 조건(예: "변동성이 크면서 20일선을 돌파하면 상승") 학습에 강점.
* **Gradient Boosting**: 오차를 보정해가며 학습하여 높은 예측력을 보임 (주로 이 모델이 채택될 가능성이 높음).
## 3. 종목 스캔 및 추천 (Inference & Ranking)
### 3-1. 전체 종목 스캔
약 5,000개(코드상에서는 예시로 일부 적용) 종목에 대해 다음 과정을 수행합니다.
1. 데이터 로드: 해당 종목의 어제까지의 일봉 + 오늘 10시까지의 분봉.
2. 특징 추출: 위에서 정의한 1차, 2차 데이터를 실시간으로 계산.
3. 모델 예측: '당일 잔여 수익률' 및 '향후 3일 수익률' 예측값 산출.
### 3-2. 순위 선정 (Ranking)
* **정렬 기준**: 예측된 '당일 잔여 수익률(Pred_RestOfDay_Return)'이 높은 순서대로 정렬합니다. (필요 시 향후 3일 수익률과 가중 합산 가능)
* **최종 출력**: 상위 200개 종목을 추출하여 사용자에게 제시합니다.
## 4. 요약
이 알고리즘은 단순한 차트 패턴 분석을 넘어, **FFT와 같은 신호 처리 기법**을 통해 주가의 '파동 에너지'를 분석하고, **머신러닝**을 통해 통계적으로 가장 확률 높은 상승 패턴을 찾아내는 구조입니다.
'SWDesk > ArtificialIntelligence' 카테고리의 다른 글
| 주가 추정 알고리즘 실전 적용 및 고도화를 위한 작업 매뉴얼 (0) | 2026.01.31 |
|---|---|
| 주가 추정 고도화를 위한 상관관계 맵(Correlation Map) 구축 보고서 (0) | 2026.01.31 |
| 주가 추정 고도화를 위한 벡터 분석(Vector Analysis) 분석 방법론 (1) | 2026.01.30 |
| [Python] Head and Hands Gesture Detector, Ver.0.2 (0) | 2025.10.23 |
| [Python] Head and Hands Gesture Detector (0) | 2025.10.20 |
- Total
- Today
- Yesterday
- 아두이노
- 전압
- image
- 심심풀이
- 혁신
- 오블완
- 둎
- 전류
- 절연형
- 배프
- 허들
- Decorator
- arduino
- Innovation&Hurdles
- 치매방지
- 빌리칠드
- Innovations
- 혁신과허들
- Hurdles
- 심심풀이치매방지기
- Video
- BSC
- 티스토리챌린지
- 치매
- Innovations&Hurdles
- ServantClock
- BiliChild
- DYOV
- 빌리언트
- bilient
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |

