feat(옵투나·웹): 후처리 재탐색·ob_modes·적용감사·수집통계

- Optuna web jobs/TPE/apply snapshot·틱로더 정합, jobs limit·감사로그
- 백테 UI 호가모드·후보 적용 흐름, feed_collect_stats API/탭
- 가설검증·교차검증 룰, 4전략 스모크·OB slot41 진단 스크립트

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Your Name
2026-08-27 15:23:44 +09:00
parent 5e44b86f8b
commit 8fbba264ba
30 changed files with 2973 additions and 186 deletions

View File

@@ -23,10 +23,14 @@ from typing import Any, Dict, List
import optuna
from kis_trader.backtest.optuna_tpe_common import (
ORDERBOOK_TPE_AXIS_KEYS,
RATCHET_TPE_AXIS_KEYS,
WHIPSAW_TPE_AXIS_KEYS,
r1,
r2,
suggest_orderbook_entry_tpe,
suggest_ratchet_tiers_pct,
suggest_whipsaw_tpe,
)
from kis_trader.backtest.param_search_momentum import _momentum_combo_grid_valid
@@ -67,7 +71,12 @@ _MOMENTUM_BASE_KEYS: List[str] = [
"setup_vol_max_mult",
"setup_bear_bars_min",
]
MOMENTUM_TPE_AXIS_KEYS: List[str] = list(_MOMENTUM_BASE_KEYS) + list(RATCHET_TPE_AXIS_KEYS)
MOMENTUM_TPE_AXIS_KEYS: List[str] = (
list(_MOMENTUM_BASE_KEYS)
+ list(RATCHET_TPE_AXIS_KEYS)
+ list(ORDERBOOK_TPE_AXIS_KEYS)
+ list(WHIPSAW_TPE_AXIS_KEYS)
)
def momentum_tpe_axis_keys() -> List[str]:
@@ -177,6 +186,9 @@ def suggest_momentum_params_tpe(
else:
combo["skip_hts_scan_dupes"] = False
combo.update(suggest_orderbook_entry_tpe(trial))
combo.update(suggest_whipsaw_tpe(trial))
if not _momentum_combo_grid_valid(combo):
raise optuna.TrialPruned("momentum invalid combo")
return combo