Files
kis_bot/logs/optuna_web_latest_job.txt
Your Name 2041790658 feat(옵투나): 로그 모달 + 사후합격 카드 확장 + 과적합 Y안
룰 19 사용자 요청 4건 (2026-09-06):

[UI 1] 옵투나 실시간 로그 모달
- backtest.html: 「크게 보기」 버튼 + bootstrap 모달 (max-xl · scrollable)
- backtest.js: optunaOpenLogModal/RefreshLogModal/FilterLogModal
- backend: /api/optuna/log/<job_id>?lines=N 신설 (50~5000줄 tail)
- 3초 auto-refresh · 스크롤 하단 유지 · 실시간 검색 필터
- 원인: 기존 pre#opt_log_tail 은 25줄만 tail → pruned 잔뜩이면 완료 로그 밀림

[UI 2] 사후합격 Top5 카드 파라미터 확장 + 한글 캡션
- optuna_web_jobs.py _ob_whip_ui_from_params: 11개 새 필드 flat 추출
  - 핵심진입: entry_drop_rate/vol_mult/high_chase
  - 핵심청산: exit_min_hold_sec/cooldown_min/max_loss_krw
  - RSI: rsi_period/oversold/overbought
  - 어깨: shoulder_min_high/cut_pct
- backtest.js optunaCalcStats/optunaFormatAvgHtml:
  - keys 배열 확장 (기존 10 → 21)
  - 모든 영문 옆 한글 캡션 (spr→(스프레드) 등)
  - 그룹별 조건부 렌더 (해당 파라미터 있을 때만)

[백엔드 3] 과적합 계산기 Y안 (optuna_common.py)
- 팩터 1 표본 장일: max 40 → 25 (1일 백테도 견고성으로 상쇄 가능)
- 팩터 5 PnL 고원 재해석: 동일 PnL & 파라미터 다양성 계산
  - 다양 (핵심 파라미터 unique_ratio >= 50%) → 감점 -8 (견고)
  - 좁음 → 유지 +12 (TPE 몰빵)
- 팩터 6 신설 param_stability: gated pool 파라미터 mode_share
  - 5개+ ≥60% → -15 (매우 견고)
  - 3~4개 ≥60% → -8 (다소 견고)

[호환 4] 옛 잡 자동 재파싱 fallback (backtest_web.py)
- _inject_extended_params_fallback():
  - result_summary.top5_gated 각 row 에 확장 파라미터 재파싱
  - overfit_diagnostics Y안 재계산
  - top5_gated/top5_stable/compare_rows 각 row 의 overfit_risk_pct 재계산
- /api/optuna/status, /api/optuna/topn 양쪽 적용
- 옛 result JSON 을 재파싱하여 trial_number 매칭

검증:
- 실측 재계산: 옛 잡 (1일·5거래·100%WR) 40% → 25%·상대적으로낮음
- 브라우저 CDP: 배지 27% · 팩터 6 param_stability 노출
- 로그 모달: 174줄·19.8KB·검색·auto-scroll 확인
- 사후합격 카드: 핵심진입/청산/RSI/어깨 그룹 + 한글 캡션 렌더
- 실매 코어 스모크 통과 (test_live_execution_validation 최종:통과 · 완결)

전략 범위: 4전략 공통 (스캘핑/돌파/모멘텀/꼬리) — 공통 optuna_common
- 파라미터 flat 추출은 스캘핑 위주지만 다른 전략에서 해당 파라미터 있으면 자동 표시
- 과적합 Y안은 전략 무관 (전 전략 동일 로직)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 21:07:13 +09:00

2 lines
32 B
Plaintext

opt_20260906_205103_refine_scal