feat: auto-detect first run in train_and_deploy.sh (365d full vs 35d upsert)
Made-with: Cursor
This commit is contained in:
18
README.md
18
README.md
@@ -106,26 +106,12 @@ docker compose logs -f cointrader
|
||||
|
||||
봇은 모델 파일이 없으면 ML 필터 없이 동작합니다. 최초 실행 전 또는 수동 재학습 시 아래 순서로 진행합니다.
|
||||
|
||||
### 최초 실행 (데이터 초기화)
|
||||
|
||||
`data/combined_15m.parquet`가 없을 때 1회만 실행합니다. 이후 매일 크론탭이 `train_and_deploy.sh`를 실행하면 35일치 신규 데이터가 자동으로 Upsert됩니다.
|
||||
|
||||
```bash
|
||||
# 최초 1회: 1년치 캔들 전체 수집 (OI/펀딩비는 최근 30일만 실제 값, 나머지 0.0)
|
||||
python scripts/fetch_history.py \
|
||||
--symbols XRPUSDT BTCUSDT ETHUSDT \
|
||||
--interval 15m \
|
||||
--days 365 \
|
||||
--no-upsert \
|
||||
--output data/combined_15m.parquet
|
||||
```
|
||||
|
||||
> 이후 매일 `train_and_deploy.sh` 실행 시 35일치 신규 데이터를 기존 parquet에 Upsert하여 OI/펀딩비 0.0 구간이 야금야금 채워집니다. 시간이 지날수록 실제 OI/펀딩비 값이 있는 학습 구간이 1달 → 2달 → 반년으로 늘어납니다.
|
||||
|
||||
### 전체 파이프라인 (권장)
|
||||
|
||||
맥미니에서 데이터 수집 → 학습 → LXC 배포까지 한 번에 실행합니다.
|
||||
|
||||
> **자동 분기**: `data/combined_15m.parquet`가 없으면 1년치(365일) 전체 수집, 있으면 35일치 Upsert로 자동 전환합니다. 서버 이전이나 데이터 유실 시에도 사람의 개입 없이 자동 복구됩니다.
|
||||
|
||||
```bash
|
||||
# LightGBM + Walk-Forward 5폴드 (기본값)
|
||||
bash scripts/train_and_deploy.sh
|
||||
|
||||
@@ -27,15 +27,27 @@ WF_SPLITS="${2:-5}" # 두 번째 인자: Walk-Forward 폴드 수 (0이면 건
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
echo "=== [1/3] 데이터 수집 (XRP + BTC + ETH 3심볼, 35일치 Upsert + OI/펀딩비) ==="
|
||||
# OI/펀딩비 API 제한(30일) + 버퍼 5일 = 35일치 신규 수집 후 기존 parquet에 Upsert
|
||||
# 최초 실행 시 data/combined_15m.parquet 없으면 35일치로 시작
|
||||
# 이후 매일: 35일치 신규 데이터로 기존 파일의 0.0 구간을 채우고 최신 행 추가
|
||||
mkdir -p data
|
||||
|
||||
PARQUET_FILE="data/combined_15m.parquet"
|
||||
|
||||
echo "=== [1/3] 데이터 수집 (XRP + BTC + ETH 3심볼 + OI/펀딩비) ==="
|
||||
if [ ! -f "$PARQUET_FILE" ]; then
|
||||
echo " [최초 실행] 기존 데이터 없음 → 1년치(365일) 전체 수집 (--no-upsert)"
|
||||
FETCH_DAYS=365
|
||||
UPSERT_FLAG="--no-upsert"
|
||||
else
|
||||
echo " [일반 실행] 기존 데이터 존재 → 35일치 Upsert (OI/펀딩비 0.0 구간 보충)"
|
||||
FETCH_DAYS=35
|
||||
UPSERT_FLAG=""
|
||||
fi
|
||||
|
||||
python scripts/fetch_history.py \
|
||||
--symbols XRPUSDT BTCUSDT ETHUSDT \
|
||||
--interval 15m \
|
||||
--days 35 \
|
||||
--output data/combined_15m.parquet
|
||||
--days "$FETCH_DAYS" \
|
||||
$UPSERT_FLAG \
|
||||
--output "$PARQUET_FILE"
|
||||
|
||||
echo ""
|
||||
echo "=== [2/3] 모델 학습 (23개 피처: XRP 13 + BTC/ETH 8 + OI/펀딩비 2) ==="
|
||||
|
||||
Reference in New Issue
Block a user