refactor: enhance Optuna backtesting framework, optimize orderbook filtering, and update database management utilities.

This commit is contained in:
Your Name
2026-08-12 10:19:19 +09:00
parent cb7e5037a0
commit c6bd62a25f
218 changed files with 31613 additions and 759 deletions

View File

@@ -183,6 +183,18 @@ def get_momentum_defaults_from_db(db=None, *, env_row: Optional[Dict[str, Any]]
eod_enabled = force_eod
eod_hm = str(r.get("MOMENTUM_EOD_HM") or "15:20").strip() or "15:20"
portfolio_mode = True
# 수익구간 호가매도 (기본 OFF)
exit_ob_enabled = momentum_env_bool(r, "MOMENTUM_EXIT_OB_ENABLED", False)
exit_ob_ratio_min = momentum_env_float(r, "MOMENTUM_EXIT_OB_RATIO_MIN", 0.4)
exit_ob_ma_window = momentum_env_int(r, "MOMENTUM_EXIT_OB_MA_WINDOW", 5)
exit_ob_min_profit_pct = momentum_env_float(r, "MOMENTUM_EXIT_OB_MIN_PROFIT_PCT", 0.005)
exit_ob_min_hold_bars = momentum_env_int(r, "MOMENTUM_EXIT_OB_MIN_HOLD_BARS", 3)
# 손절호가 (기본 OFF)
stop_ob_enabled = momentum_env_bool(r, "MOMENTUM_STOP_OB_ENABLED", False)
stop_ob_ratio_min = momentum_env_float(r, "MOMENTUM_STOP_OB_RATIO_MIN", 0.4)
stop_ob_ma_window = momentum_env_int(r, "MOMENTUM_STOP_OB_MA_WINDOW", 5)
stop_ob_min_loss_pct = momentum_env_float(r, "MOMENTUM_STOP_OB_MIN_LOSS_PCT", 0.003)
stop_ob_min_hold_bars = momentum_env_int(r, "MOMENTUM_STOP_OB_MIN_HOLD_BARS", 2)
except Exception:
rsi_period, mom_rsi_min, mom_rsi_max = 3, 50.0, 80.0
mom_vol_mult, mom_vol_win, mom_time_end = 1.2, 5, 1530
@@ -205,6 +217,10 @@ def get_momentum_defaults_from_db(db=None, *, env_row: Optional[Dict[str, Any]]
skip_pre_sub = False
force_eod, portfolio_mode = False, True
eod_enabled, eod_hm = True, "15:20"
exit_ob_enabled, exit_ob_ratio_min, exit_ob_ma_window = False, 0.4, 5
exit_ob_min_profit_pct, exit_ob_min_hold_bars = 0.005, 3
stop_ob_enabled, stop_ob_ratio_min, stop_ob_ma_window = False, 0.4, 5
stop_ob_min_loss_pct, stop_ob_min_hold_bars = 0.003, 2
finally:
if own_db is not None:
try:
@@ -261,6 +277,18 @@ def get_momentum_defaults_from_db(db=None, *, env_row: Optional[Dict[str, Any]]
"force_eod_exit": eod_enabled,
"portfolio_mode": portfolio_mode,
"scan_interval_min": 1,
# 수익구간 호가매도
"exit_ob_enabled": exit_ob_enabled,
"exit_ob_ratio_min": exit_ob_ratio_min,
"exit_ob_ma_window": exit_ob_ma_window,
"exit_ob_min_profit_pct": exit_ob_min_profit_pct,
"exit_ob_min_hold_bars": exit_ob_min_hold_bars,
# 손절호가
"stop_ob_enabled": stop_ob_enabled,
"stop_ob_ratio_min": stop_ob_ratio_min,
"stop_ob_ma_window": stop_ob_ma_window,
"stop_ob_min_loss_pct": stop_ob_min_loss_pct,
"stop_ob_min_hold_bars": stop_ob_min_hold_bars,
}