--- description: Optuna/백테/장일 확인·그리드-실매정합·긴잡폴링 금지로 토큰·재실행 낭비 방지 alwaysApply: true --- # 파람서치·백테 운영 (토큰/재실행 절약) **파람서치 기본 경로 = Optuna** (`param_search_optuna.py`). 정합·검증 절차는 `.cursor/rules/live-backtest-optuna-parity.mdc`. 이 대화에서 실제로 낭비된 패턴을 반복하지 말 것. ## 1. 장일(거래일) 먼저 - `오늘`/`end=오늘`이 **주말·공휴일**이면 봉/틱 없음 → **최근 거래일**로 바꿔 한 번만 실행. - 달력 확인 없이 Optuna/백테를 돌리지 말 것. (예: 7/11 일요일이라 7/10으로 재실행한 낭비) ## 2. Optuna study / 그리드 변경 - categorical 그리드(축·값)를 바꾼 뒤 **같은 `--study-name` 재사용 금지**. - `CategoricalDistribution does not support dynamic value space` = study 충돌 → 즉시 **새 study-name**으로 1회만 재시작. 폴링하며 같은 실패를 반복하지 말 것. - 그리드 변경 후 기본 명령에 `--study-name <전략>__wide_` 포함. ## 3. 그리드 ⊃ 실매 DB 기본값 (실행 전) - Optuna/`--mode` 돌리기 전에 **현재 DB 실매 TRIGGER·청산 핵심 파라미터**가 해당 mode 그리드에 있는지 검사. - HTS SCAN 조건을 그리드에 넣으라고 강제하지 말 것 (이미 조건식이 거름 — `hts-condition-grids.mdc`). - 실매값이 그리드에 없으면 trial 전에 고치거나 보고. **빈 격자 trial 금지**. ## 4. DB 미적용 기본 - 사용자가 `--apply-best`/DB반영을 명시하지 않으면 **적용하지 말 것**. - 1일 Optuna best는 과적합 가능 → 적용 권고 전에 비교표만. ## 5. 긴 잡: 폴링 루프 금지 - Optuna/백테는 `nohup`+로그 경로만 안내. 에이전트 턴에서 `for + sleep`으로 수십 회 폴링하지 말 것. - 진행 확인은 로그 `tail` 1회 또는 완료 알림 후. 비교는 `scripts/append_tail_optuna_compare.py` 등 **기존 헬퍼 재사용** (인라인 비교 스크립트 재작성 금지). ## 6. 주말 HTS 종목수 - 주말 후보 증가 = 시장 호전으로 단정하지 말 것. 장외 이탈 없음/일봉 sticky가 기본 가설. DB 조회는 `db-adhoc-query-safety` 준수.