→ 모든 데이터가 open: 시가 / high: 고가 / low: 저가 / close: 종가 / volume: 거래량 속성을 가짐
⇒ 총 90일, 129600개의 데이터, 38개의 column
| 데이터 종류 | SEQUENCE_LENGTH (과거 데이터 길이) |
FUTURE_HORIZON (미래 예측 시점) |
전략 및 해설 |
|---|---|---|---|
| 1분봉 | 30, 60, 120, 180 | ||
| (30분 ~ 3시간) | 5, 10, 15, 30, 60 | ||
| (5분 ~ 1시간) | **단기 매매(스캘핑/데이트레이딩)**에 적합. 비교적 짧은 과거 데이터로 가까운 미래의 가격 변동을 예측하여 빠른 매매를 노립니다. | ||
| 1시간봉 | 24, 48, 72, 168 | ||
| (1일 ~ 1주일) | 4, 8, 12, 24 | ||
| (4시간 ~ 1일) | 스윙 트레이딩에 적합. 며칠간의 추세를 보고 앞으로 몇 시간 또는 하루 뒤의 방향성을 예측하여 포지션을 유지하는 전략에 사용됩니다. |
1분봉 데이터 기준 SEQUENCE_LENGTH=120(2시간), FUTURE_HORIZON=30(30분 뒤 예측) 을 선택
LSTM
model = Sequential([
Input(shape=(SEQUENCE_LENGTH, num_features)),
LSTM(units=50, return_sequences=True),
Dropout(0.2),
LSTM(units=50, return_sequences=False),
Dropout(0.2),
Dense(units=25),
Dense(units=1)
])
Bidirectional LSTM
from tensorflow.keras.layers import Bidirectional
model = Sequential([
Input(shape=(SEQUENCE_LENGTH, num_features)),
Bidirectional(LSTM(units=50, return_sequences=True)),
Dropout(0.2),
Bidirectional(LSTM(units=50, return_sequences=False)),
Dropout(0.2),
Dense(units=25),
Dense(units=1)
])