From 239b104a2b63420c4e310fab45cd5af795d40027 Mon Sep 17 00:00:00 2001 From: tkrmagid Date: Wed, 20 May 2026 15:46:23 +0900 Subject: [PATCH] =?UTF-8?q?docs(phase-1a):=20=EC=98=88=EC=B8=A1-=EC=8B=A4?= =?UTF-8?q?=EC=A0=9C=20=EB=A7=A4=EC=B9=AD=20=EC=A0=95=EC=B1=85=EC=9D=84=20?= =?UTF-8?q?"=EB=8B=A4=EC=9D=8C=20=EA=B1=B0=EB=9E=98=EC=9D=BC=20=EC=9E=A5?= =?UTF-8?q?=20=EC=A2=85=EB=A3=8C=20=ED=9B=84"=EB=A1=9C=20=ED=99=95?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사용자 확정: 예측 차트와 실제 차트 매칭은 다음 거래일 장이 끝나는 시점으로. - README.md: 매칭 배치 시각을 KRX 정규장 마감(15:30) 후 종가 확정 시점 (16:00 ~ 16:30 KST 사이) 으로 명시. 주말/공휴일은 다음 거래일로 이월. - scheduler.py docstring: Phase 4 슬롯을 "16:30 KST 평일 prediction_outcomes 매칭 배치" 로 구체화. 추론은 on-demand 만 사용한다는 점도 명시. 코드 동작 변화 없음(스케줄러는 아직 daily_batch 1개 잡만 등록). Phase 4 진입 시 이 정책대로 매칭 잡을 추가. Co-Authored-By: Claude Opus 4.7 --- README.md | 4 ++-- backend/app/pipelines/scheduler.py | 12 ++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 67b449f..221a93d 100644 --- a/README.md +++ b/README.md @@ -142,8 +142,8 @@ stock_chart_site/ ## 동작 모델 메모 - 예측 트리거: 사용자가 "예상차트 보기" 누른 종목에 대해 즉시 inference. 결과는 `predictions(user_triggered=TRUE)` 로 저장. -- 다음날 00:30 (또는 16:30) 배치: `user_triggered=TRUE` 인 예측 중 `target_date`가 도래한 것들에 대해 실제 가격과 매칭 → `prediction_outcomes` 적재. -- 주간 02:00: 종목/모델별 최근 30일 hit rate 기반으로 앙상블 가중치를 자동 보정. hit rate가 임계 미만이면 LGBM 재학습. +- 매칭 배치: 다음 거래일 장 종료 후 (KRX 정규장 마감 15:30, 종가 확정 후 16:00 ~ 16:30 KST 사이) `user_triggered=TRUE` 인 예측 중 `target_date == 오늘 거래일`인 행들에 대해 실제 종가/방향과 매칭 → `prediction_outcomes` 적재. 주말/공휴일이면 다음 거래일로 이월. +- 주간 02:00 (일요일): 종목/모델별 최근 30일 hit rate 기반으로 앙상블 가중치를 자동 보정. hit rate가 임계 미만이면 LGBM 재학습. ## 안전/한계 diff --git a/backend/app/pipelines/scheduler.py b/backend/app/pipelines/scheduler.py index 5abbd00..528a308 100644 --- a/backend/app/pipelines/scheduler.py +++ b/backend/app/pipelines/scheduler.py @@ -1,7 +1,15 @@ """APScheduler 기반 백그라운드 잡. -- 16:00 KST : daily_batch -- (Phase 4) 16:30: 모델 추론, 02:00 일요일: 주간 재학습 +- 16:00 KST 평일: daily_batch (시드 10종목 EOD/뉴스/공시/거시 갱신) +- (Phase 4) 16:30 KST 평일: prediction_outcomes 매칭 배치. + user_triggered=TRUE 예측 중 target_date == 당일 거래일 인 행을, + KRX 정규장 마감(15:30) 후 확정된 종가/방향과 매칭해 적재. + 주말/공휴일이 끼면 다음 거래일로 자연 이월(거래일이 아니면 매칭할 종가가 없으니 스킵). +- (Phase 4) 02:00 KST 일요일: 최근 30일 hit rate 기반 앙상블 가중치 보정, + 임계 미만 모델은 LGBM 재학습. + +예측 추론(inference) 자체는 사용자가 "예상차트 보기" 누른 시점에 on-demand 로만 돌고, +스케줄러에서는 돌리지 않음. FastAPI 기동 시점에 lifespan 으로 start, 종료 시 shutdown. """