refactor: enhance Optuna backtesting framework, optimize orderbook filtering, and update database management utilities.
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user