5분봉 ML/DL 분석
목차
- 분석 목표
- 1시간봉 vs 5분봉 비교
- Tree-Based 모델 성능
- Deep Learning 모델 성능
- Walk-Forward Validation
- Top 20 중요 피처
- 왜 5분봉 ML이 작동하지 않는가?
- 결론 및 권장사항
- 추가 실험 제안
분석 목표
5분봉 데이터에서 SL(손절) vs TP(익절) 거래를 사전에 예측할 수 있는가?
데이터셋
| 항목 | 값 |
|---|---|
| 전략 설정 | MA48, TP2%, SL1.5% |
| 총 샘플 수 | 620 거래 |
| SL (Label=1) | 340 (54.8%) |
| TP (Label=0) | 280 (45.2%) |
| 피처 수 | 177개 |
1시간봉(165개)보다 3.8배 많은 샘플을 확보했으나, 클래스 분포가 더 균형적입니다.
1시간봉 vs 5분봉 비교
| 항목 | 1시간봉 | 5분봉 |
|---|---|---|
| 샘플 수 | 165 | 620 |
| 클래스 비율 (SL:TP) | 77:23 | 55:45 |
| 최고 AUC (Tree) | 0.62 | 0.55 |
| 최고 AUC (DL) | 0.64 | 0.48 |
| 예측력 | 의미있음 | 예측력 없음 |
5분봉은 ML 예측에 적합하지 않습니다.
샘플 수는 4배 많지만, 예측력(AUC)은 오히려 감소했습니다. 이는 5분봉의 높은 노이즈로 인한 것입니다.
Tree-Based 모델 성능
| Model | Accuracy | Precision | Recall | F1 | AUC-ROC |
|---|---|---|---|---|---|
| XGBoost | 56.5% | 53.7% | 61.0% | 0.57 | 0.55 |
| RandomForest | 42.7% | 41.4% | 49.2% | 0.45 | 0.47 |
| LightGBM | 41.9% | 41.3% | 52.5% | 0.46 | 0.42 |
| LogisticRegression | 46.0% | 43.9% | 49.2% | 0.46 | 0.41 |
XGBoost가 AUC 0.55로 가장 높지만, 0.55는 랜덤 추측(0.5)과 거의 차이가 없습니다.
Deep Learning 모델 성능
| Model | Accuracy | Precision | Recall | F1 | AUC-ROC |
|---|---|---|---|---|---|
| MultiScaleCNN | 47.6% | 47.6% | 100% | 0.64 | 0.48 |
| CandleCNN | 47.6% | 44.8% | 44.1% | 0.44 | 0.48 |
| BiLSTM | 48.4% | 45.6% | 44.1% | 0.45 | 0.45 |
모든 DL 모델의 AUC가 0.5 미만 또는 근접합니다. 이는 모델이 SL/TP를 구분하지 못함을 의미합니다.
Walk-Forward Validation
| Model | AUC-ROC (mean ± std) |
|---|---|
| XGBoost | 0.56 ± 0.05 |
| RandomForest | 0.52 ± 0.05 |
| LightGBM | 0.52 ± 0.05 |
| LogisticRegression | 0.46 ± 0.03 |
Walk-forward에서도 XGBoost가 최선이지만, 실전 적용에는 여전히 불충분합니다.
Top 20 중요 피처
| 순위 | 피처 | 중요도 | 카테고리 |
|---|---|---|---|
| 1 | candle_body_pct_last | 29.76 | 캔들 패턴 |
| 2 | price_change_5_last | 28.85 | 모멘텀 |
| 3 | ultimate_osc_std | 22.57 | 오실레이터 |
| 4 | ma_100_dist_pct_last | 22.56 | 이평선 이격도 |
| 5 | vol_ma_ratio_std | 21.57 | 거래량 |
| 6 | vol_change_std | 21.21 | 거래량 |
| 7 | rsi_slope_std | 20.02 | 모멘텀 |
| 8 | adx_std | 18.77 | 추세 |
| 9 | lower_shadow_pct_mean | 17.39 | 캔들 패턴 |
| 10 | ma_50_dist_pct_std | 17.15 | 이평선 이격도 |
| 11 | candle_body_pct_mean | 17.02 | 캔들 패턴 |
| 12 | vwap_dist_pct_std | 16.76 | 가격 위치 |
| 13 | ma_200_slope_std | 16.56 | 이평선 기울기 |
| 14 | atr_pct_std | 16.10 | 변동성 |
| 15 | adx_slope_last | 15.78 | 추세 |
1시간봉 vs 5분봉 피처 비교
| 1시간봉 Top 피처 | 5분봉 Top 피처 |
|---|---|
ma_100_dist_pct | candle_body_pct |
ma_400_dist_pct | price_change_5 |
bb_width_std | ultimate_osc_std |
price_change_3 | ma_100_dist_pct |
피처 중요도 패턴이 다릅니다:
- 1시간봉: 이평선 이격도 중심
- 5분봉: 캔들 패턴 + 단기 모멘텀 중심
5분봉에서는 장기 추세보다 단기 가격 움직임이 더 중요합니다.
왜 5분봉 ML이 작동하지 않는가?
1. 노이즈 대비 신호 비율
1시간봉: 신호 > 노이즈 → 패턴 학습 가능
5분봉: 노이즈 >> 신호 → 패턴 학습 어려움
2. 시장 미세구조
- 5분봉에서는 랜덤 변동이 SL/TP 결과를 좌우
- 기술적 지표의 예측력이 단기에서 급격히 감소
- HFT/알고리즘 거래의 노이즈가 지배적
3. 피처 유효성
| 피처 유형 | 1시간봉 | 5분봉 |
|---|---|---|
| 장기 MA 이격도 | 유효 | 약함 |
| BB 폭 | 유효 | 약함 |
| 캔들 패턴 | 보통 | 보통 |
| RSI/MACD | 유효 | 약함 |
결론 및 권장사항
ML 기반 필터 적용
ML 필터는 1시간봉에서만 사용하세요.
타임프레임 ML 필터 적용 권장도 1시간봉 O (AUC 0.62) 권장 5분봉 X (AUC 0.55) 비권장
5분봉 전략 운용
5분봉에서 ML 없이 운용 시:
- 단순 규칙 기반 진입/청산만 사용
- 리스크 관리에 집중 (적은 TP/SL)
- 포지션 크기 축소
하이브리드 접근
# 1시간봉에서 ML 필터로 진입 여부 결정
if hourly_ml_filter.predict(hourly_features) == "TP_LIKELY":
# 5분봉에서 정밀 진입 타이밍 결정
wait_for_5m_entry_signal()
추가 실험 제안
- 피처 엔지니어링: 5분봉 전용 피처 개발 (HFT 시그널, 호가창 데이터)
- 앙상블: 1시간봉 + 5분봉 모델 결합
- 시간대 필터: 변동성 높은 시간대만 분석
- 대안 모델: Transformer 기반 시계열 모델 시도